summaryrefslogtreecommitdiff
path: root/include/linux
AgeCommit message (Collapse)Author
2016-12-14drm/bridge/sii8620: rename files according to mainlineAndrzej Hajda
The patch synchronizes file names with mainline. Change-Id: I6aa491f2d7858f90055e7ea9bce00e8bb7db50e2 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14drm/bridge/sii8620: rename symbol namesAndrzej Hajda
The patch renames variables and defines to match these in mainline. Change-Id: Iec05a4477001d57aa09fc34e1eec2c330f84253d Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14kdbus: Remove kdbus Linux Security Module hooksKarol Lewandowski
This commit removes support for kdbus-LSM hooks as policy decisions are handled solely by userspace (libdbuspolicy library). This commit reverts following: - 802de9506 ("lsm: smack: smack callbacks for kdbus security hooks") - f13b7e7bd ("kdbus: use LSM hooks in kdbus code") - 067afa709 ("lsm: smack: Make ipc/kdbus includes visible so smack callbacks could see them") - 442f047fd ("lsm: make security_file_receive available for external modules") - 3b556db4b ("lsm: kdbus security hooks") Change-Id: Iae90cdb9577a9e706288b28d70bd57574398276e Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2016-12-14cpuidle: Do not access cpuidle_devices when !CONFIG_CPU_IDLECatalin Marinas
The cpuidle_devices per-CPU variable is only defined when CPU_IDLE is enabled. Commit c8cc7d4de7a4 ("sched/idle: Reorganize the idle loop") removed the #ifdef CONFIG_CPU_IDLE around cpuidle_idle_call() with the compiler optimising away __this_cpu_read(cpuidle_devices). However, with CONFIG_UBSAN && !CONFIG_CPU_IDLE, this optimisation no longer happens and the kernel fails to link since cpuidle_devices is not defined. This patch introduces an accessor function for the current CPU cpuidle device (returning NULL when !CONFIG_CPU_IDLE) and uses it in cpuidle_idle_call(). Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Cc: 4.5+ <stable@vger.kernel.org> # 4.5+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> [Backport from mainline to fix build error for CONFIG_UBSAN && ! CONFIG_CPU_IDLE] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Change-Id: I447cd7f1076903bc036eb0e832d9cabba91099b7
2016-12-14thermal: devfreq_cooling: use a thermal_cooling_device for register and ↵Javi Merino
unregister Be consistent with what other cooling devices do and return a struct thermal_cooling_device * on register. Also, for the unregister, accept a struct thermal_cooling_device * as parameter. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> [jy0922.shim: apply mainline patch] Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2016-12-14thermal: Add devfreq coolingØrjan Eide
Add a generic thermal cooling device for devfreq, that is similar to cpu_cooling. The device must use devfreq. In order to use the power extension of the cooling device, it must have registered its OPPs using the OPP library. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Ørjan Eide <orjan.eide@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> [jy0922.shim: apply from mainline with fixup of fuzz] Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2016-12-14thermal: remove devfreq coolingJoonyoung Shim
Remove local old driver to apply original mainline driver for devfreq cooling. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2016-12-14PM / devfreq: comments for get_dev_status usage updatedMyungJoo Ham
With the introduction of devfreq_update_stats(), governors are not recommended to use get_dev_status() directly. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> [jy0922.shim: apply mainline patch] Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2016-12-14PM / devfreq: cache the last call to get_dev_status()Javi Merino
The return value of get_dev_status() can be reused. Cache it so that other parts of the kernel can reuse it instead of having to call the same function again. Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> [jy0922.shim: apply mainline patch] Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2016-12-14thermal: extend the cooling device API to include power informationJavi Merino
Add three optional callbacks to the cooling device interface to allow them to express power. In addition to the callbacks, add helpers to identify cooling devices that implement the power cooling device API. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Signed-off-by: Javi Merino <javi.merino@arm.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> [jy0922.shim: apply mainline patch] Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
2016-12-14Revert "PM: devfreq: Add the prototype of update_devfreq() to export"Sylwester Nawrocki
This temporarily reverts commit d70aa318b6a80780e3134d8a07303fa72b95576b, which will be re-applied after applying soem mainline commits. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
2016-12-14nfc: change driver from neard interface to legacy sec-nfcJihoon Jung
This enable the legacy nfc driver instead of neard interface. It is required for nfc-manager and lsi nfc plugin implementation. Change-Id: Ia77f105262e5c4899806e6310be6ae9cbc013ec9 Signed-off-by: Jihoon Jung <jh8801.jung@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2016-12-14signal: move the "sig < SIGRTMIN" check into siginmask(sig)Oleg Nesterov
All the users of siginmask() must ensure that sig < SIGRTMIN. sig_fatal() doesn't and this is wrong: UBSAN: Undefined behaviour in kernel/signal.c:911:6 shift exponent 32 is too large for 32-bit type 'long unsigned int' the patch doesn't add the neccesary check to sig_fatal(), it moves the check into siginmask() and updates other callers. Link: http://lkml.kernel.org/r/20160517195052.GA15187@redhat.com Reported-by: Meelis Roos <mroos@linux.ee> Signed-off-by: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> [Backport from mainline to remove UBSAN warning in sending signal] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Change-Id: Icb12de70772b563ba112f5f6e490731e4db119d1
2016-12-14spi: s3c64xx: add the BROKEN_CS case when setting up the transferAndi Shyti
The CS line might be disconneced ("broken"), therefore unused. In this case, the device doesn't need to wait for the user to handle the CS line for selecting the slave. The data will then be automatically transferred without taking the CS line status into account. Change-Id: Ibddf87721b7d882efbdad9c978b79a3e19189b3e Signed-off-by: Andi Shyti <andi.shyti@samsung.com> Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
2016-12-14bitops.h: correctly handle rol32 with 0 byte shiftSasha Levin
ROL on a 32 bit integer with a shift of 32 or more is undefined and the result is arch-dependent. Avoid this by handling the trivial case of roling by 0 correctly. The trivial solution of checking if shift is 0 breaks gcc's detection of this code as a ROL instruction, which is unacceptable. This bug was reported and fixed in GCC (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57157): The standard rotate idiom, (x << n) | (x >> (32 - n)) is recognized by gcc (for concreteness, I discuss only the case that x is an uint32_t here). However, this is portable C only for n in the range 0 < n < 32. For n == 0, we get x >> 32 which gives undefined behaviour according to the C standard (6.5.7, Bitwise shift operators). To portably support n == 0, one has to write the rotate as something like (x << n) | (x >> ((-n) & 31)) And this is apparently not recognized by gcc. Note that this is broken on older GCCs and will result in slower ROL. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Sasha Levin <sasha.levin@oracle.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> [Backport from mainline to fix ubsan report] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Change-Id: I47fcb9807778615fff4972fa92dc7b3143e0ef3d
2016-12-14UBSAN: run-time undefined behavior sanity checkerAndrey Ryabinin
UBSAN uses compile-time instrumentation to catch undefined behavior (UB). Compiler inserts code that perform certain kinds of checks before operations that could cause UB. If check fails (i.e. UB detected) __ubsan_handle_* function called to print error message. So the most of the work is done by compiler. This patch just implements ubsan handlers printing errors. GCC has this capability since 4.9.x [1] (see -fsanitize=undefined option and its suboptions). However GCC 5.x has more checkers implemented [2]. Article [3] has a bit more details about UBSAN in the GCC. [1] - https://gcc.gnu.org/onlinedocs/gcc-4.9.0/gcc/Debugging-Options.html [2] - https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html [3] - http://developerblog.redhat.com/2014/10/16/gcc-undefined-behavior-sanitizer-ubsan/ Issues which UBSAN has found thus far are: Found bugs: * out-of-bounds access - 97840cb67ff5 ("netfilter: nfnetlink: fix insufficient validation in nfnetlink_bind") undefined shifts: * d48458d4a768 ("jbd2: use a better hash function for the revoke table") * 10632008b9e1 ("clockevents: Prevent shift out of bounds") * 'x << -1' shift in ext4 - http://lkml.kernel.org/r/<5444EF21.8020501@samsung.com> * undefined rol32(0) - http://lkml.kernel.org/r/<1449198241-20654-1-git-send-email-sasha.levin@oracle.com> * undefined dirty_ratelimit calculation - http://lkml.kernel.org/r/<566594E2.3050306@odin.com> * undefined roundown_pow_of_two(0) - http://lkml.kernel.org/r/<1449156616-11474-1-git-send-email-sasha.levin@oracle.com> * [WONTFIX] undefined shift in __bpf_prog_run - http://lkml.kernel.org/r/<CACT4Y+ZxoR3UjLgcNdUm4fECLMx2VdtfrENMtRRCdgHB2n0bJA@mail.gmail.com> WONTFIX here because it should be fixed in bpf program, not in kernel. signed overflows: * 32a8df4e0b33f ("sched: Fix odd values in effective_load() calculations") * mul overflow in ntp - http://lkml.kernel.org/r/<1449175608-1146-1-git-send-email-sasha.levin@oracle.com> * incorrect conversion into rtc_time in rtc_time64_to_tm() - http://lkml.kernel.org/r/<1449187944-11730-1-git-send-email-sasha.levin@oracle.com> * unvalidated timespec in io_getevents() - http://lkml.kernel.org/r/<CACT4Y+bBxVYLQ6LtOKrKtnLthqLHcw-BMp3aqP3mjdAvr9FULQ@mail.gmail.com> * [NOTABUG] signed overflow in ktime_add_safe() - http://lkml.kernel.org/r/<CACT4Y+aJ4muRnWxsUe1CMnA6P8nooO33kwG-c8YZg=0Xc8rJqw@mail.gmail.com> [akpm@linux-foundation.org: fix unused local warning] [akpm@linux-foundation.org: fix __int128 build woes] Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Sasha Levin <sasha.levin@oracle.com> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Michal Marek <mmarek@suse.cz> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Yury Gribov <y.gribov@samsung.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Konstantin Khlebnikov <koct9i@gmail.com> Cc: Kostya Serebryany <kcc@google.com> Cc: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> [backport from mainline for UBSAN] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Change-Id: I216cb2d9dbfd9fc9e70b8e4515a0e34fcb68822f
2016-12-14cpufreq-dt: add 'boost' mode frequencies supportBartlomiej Zolnierkiewicz
Add 'boost' mode frequencies support: - add boost-opps binding to cpufreq-dt driver bindings - make cpufreq_init() adjust freq_table accordingly - fix set_target() to handle boost frequencies - add boost_supported field to struct cpufreq_dt_platform_data - set dt_cpufreq_driver.boost_supported in dt_cpufreq_probe() This patch makes cpufreq-dt driver aware of 'boost' mode frequencies and prepares it for adding support for Exynos4x12 'boost' support. boost-opps binding is currently limited to cpufreq-dt but once there is a need for cpufreq wide and/or generic Linux device support for 'boost' mode cpufreq-dt can be updated to handle the new code without changing the binding itself. The decision to make 'boost' mode support limited to cpufreq-dt driver for now was taken because 'boost' mode is currently a niche feature and code needed for parsing boost-opps binding is minimal and simple. More generic (i.e. separate 'boost' OPPs list in struct device and generic cpufreq convertion of them to freq_table format) support would need far more code and effort to make it work. Doing it without a demonstrated real need would be on overengineering IMHO. Cc: Tomasz Figa <tomasz.figa@gmail.com> Cc: Mike Turquette <mturquette@linaro.org> Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Cc: Thomas Abraham <thomas.ab@samsung.com> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2016-12-14cpufreq / OPP: allow allocation of extra table entries in freq_tableBartlomiej Zolnierkiewicz
Prefix dev_pm_opp_init_cpufreq_table() with "__" and add a wrapper for it to keep current users unchanged. Then add an extra_opps parameter to __dev_pm_opp_init_cpufreq_table() to allow allocation of extra table entries in freq_table. This patch is a preparation for adding 'boost' mode frequencies support to cpufreq-dt driver. Cc: Tomasz Figa <tomasz.figa@gmail.com> Cc: Mike Turquette <mturquette@linaro.org> Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Cc: Thomas Abraham <thomas.ab@samsung.com> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2016-12-14clk: add CLK_RECALC_NEW_RATES clock flag for Exynos cpu clock supportBartlomiej Zolnierkiewicz
This flag is needed to fix the issue with wrong dividers being setup by Common Clock Framework when using the new Exynos cpu clock support. The issue happens because clk_core_set_rate_nolock() calls clk_calc_new_rates(clk, rate) before both pre/post clock notifiers have a chance to run. In case of Exynos cpu clock support pre/post clock notifiers are registered for mout_apll clock which is a parent of armclk cpu clock and dividers are modified in both pre and post clock notifier. This results in wrong dividers values being later programmed by clk_change_rate(top). To workaround the problem CLK_RECALC_NEW_RATES flag is added and it is set for mout_apll clock later so the correct divider values are re-calculated after both pre and post clock notifiers had run. For example when using "performance" governor on Exynos4210 Origen board the cpufreq-dt driver requests to change the frequency from 1000MHz to 1200MHz and after the change state of the relevant clocks is following: Without use of CLK_GET_RATE_NOCACHE flag: fout_apll rate: 1200000000 fout_apll_div_2 rate: 600000000 mout_clkout_cpu rate: 600000000 div_clkout_cpu rate: 600000000 clkout_cpu rate: 600000000 mout_apll rate: 1200000000 armclk rate: 1200000000 mout_hpm rate: 1200000000 div_copy rate: 300000000 div_hpm rate: 300000000 mout_core rate: 1200000000 div_core rate: 1200000000 div_core2 rate: 1200000000 arm_clk_div_2 rate: 600000000 div_corem0 rate: 300000000 div_corem1 rate: 150000000 div_periph rate: 300000000 div_atb rate: 300000000 div_pclk_dbg rate: 150000000 sclk_apll rate: 1200000000 sclk_apll_div_2 rate: 600000000 With use of CLK_GET_RATE_NOCACHE flag: fout_apll rate: 1200000000 fout_apll_div_2 rate: 600000000 mout_clkout_cpu rate: 600000000 div_clkout_cpu rate: 600000000 clkout_cpu rate: 600000000 mout_apll rate: 1200000000 armclk rate: 1200000000 mout_hpm rate: 1200000000 div_copy rate: 200000000 div_hpm rate: 200000000 mout_core rate: 1200000000 div_core rate: 1200000000 div_core2 rate: 1200000000 arm_clk_div_2 rate: 600000000 div_corem0 rate: 300000000 div_corem1 rate: 150000000 div_periph rate: 300000000 div_atb rate: 240000000 div_pclk_dbg rate: 120000000 sclk_apll rate: 150000000 sclk_apll_div_2 rate: 75000000 Without this change cpufreq-dt driver showed ~10 mA larger energy consumption when compared to cpufreq-exynos one when "performance" cpufreq governor was used on Exynos4210 SoC based Origen board. This issue was probably meant to be workarounded by use of CLK_GET_RATE_NOCACHE and CLK_DIVIDER_READ_ONLY clock flags in the original Exynos cpu clock patchset (in "[PATCH v12 6/6] clk: samsung: remove unused clock aliases and update clock flags" patch) but usage of these flags is not sufficient to fix the issue observed. Cc: Thomas Abraham <thomas.ab@samsung.com> Cc: Tomasz Figa <tomasz.figa@gmail.com> Cc: Mike Turquette <mturquette@linaro.org> Cc: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2016-12-14x86/kasan, mm: introduce generic kasan_populate_zero_shadow()Andrey Ryabinin
Introduce generic kasan_populate_zero_shadow(shadow_start, shadow_end). This function maps kasan_zero_page to the [shadow_start, shadow_end] addresses. This replaces x86_64 specific populate_zero_shadow() and will be used for ARM64 in follow on patches. Signed-off-by: Andrey Ryabinin <ryabinin.a.a@gmail.com>
2016-12-14x86/kasan: define KASAN_SHADOW_OFFSET per architectureAndrey Ryabinin
Current definition of KASAN_SHADOW_OFFSET in include/linux/kasan.h will not work for upcomming arm64, so move it to the arch header. Signed-off-by: Andrey Ryabinin <ryabinin.a.a@gmail.com>
2016-12-14input: touchscreen: fts: added touch key functionalityAndi Shyti
The ST Microelectronics FTM3BD56 touch screen device has a key functinality to simulate the "phone" and the "back" button from Android phone devices. This patch adds this functionality as boards like TM2E are using it instead of having separate device for the touch key. The patch adds in the device tree a boolean property "touch-key-connected" that, if present, enables the touch property in the device and in the driver. The driver, itself, when "touch-key-connected" present, generates an input event that reports actions on the "phone" and on the "back" key: when the phone button is pressed or released: type EV_KEY code KEY_PHONE (169) value 1/0 (pressed or released) when the back button is pressed or released: type EV_KEY code KEY_BACK (158) value 1/0 (pressed or released) When discovering the deice, look for event name "sec_touchkey". Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
2016-12-14kmsg: add ioctl for adding and deleting kmsg* devicesMarcin Niesluchowski
There is no possibility to add/delete kmsg* buffers from userspace. Adds following ioctl for main kmsg device adding and deleting additional kmsg devices: * KMSG_CMD_BUFFER_ADD * KMSG_CMD_BUFFER_DEL Change-Id: Ibc3c959957a545b09de4bbcb35533b690ba31fb5 Signed-off-by: Marcin Niesluchowski <m.niesluchow@samsung.com>
2016-12-14kmsg: add function for adding and deleting additional buffersMarcin Niesluchowski
Additional kmsg buffers should be created and deleted dynamically. Adding two functions * kmsg_sys_buffer_add() creates additional kmsg buffer returning minor * kmsg_sys_buffer_del() deletes one based on provided minor Change-Id: Ibb85543b830ecd186e8cf7ebdf560f72c0bba83c Signed-off-by: Marcin Niesluchowski <m.niesluchow@samsung.com>
2016-12-14kmsg: add additional buffers support to memory classMarcin Niesluchowski
Memory class does not support additional kmsg buffers. Add additional kmsg buffers support to: * devnode() callback of "mem" class * file operations of major "mem" character device Change-Id: I15b6c79435b4dc18422a9bd6836bd9c7a87ad60a Signed-off-by: Marcin Niesluchowski <m.niesluchow@samsung.com> Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
2016-12-14printk: guard the amount written per line by devkmsg_read()Tejun Heo
devkmsg_read() uses 8k buffer and assumes that the formatted output message won't overrun which seems safe given LOG_LINE_MAX, the current use of dict and the escaping method being used; however, we're planning to use devkmsg formatting wider and accounting for the buffer size properly isn't that complicated. This patch defines CONSOLE_EXT_LOG_MAX as 8192 and updates devkmsg_read() so that it limits output accordingly. Change-Id: Ic8579ddcd55294a38561e9e8b28449c067600db1 Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Kay Sievers <kay@vrfy.org> Cc: Petr Mladek <pmladek@suse.cz>
2016-12-14lsm: kdbus security hooksPaul Osmialowski
This is combination of work by Karol Lewandowski and Paul Moore on LSM hooks for kdbus. Originates from: git://git.infradead.org/users/pcmoore/selinux (branch: working-kdbus) commit: 7050f206a79564886938d0edc4e1e9da5972c72d https://github.com/lmctl/linux.git (branch: kdbus-lsm-v4.for-systemd-v212) commit: a9fe4c33b6e5ab25a243e0590df406aabb6add12 Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com> Signed-off-by: Paul Moore <pmoore@redhat.com> Signed-off-by: Paul Osmialowski <p.osmialowsk@samsung.com>
2016-12-14mfd: sec-core: Disable buck voltage reset on watchdog falling edgeKrzysztof Kozlowski
The WRSTBI bit (disabled by default but enabled by bootloader), when set, is responsible for resetting voltages to default values of certain bucks on falling edge of Warm Reset Input pin from AP. However on some boards (with S2MPS13) the pin is pulled down so any suspend will effectively trigger the reset of bucks supplying the power to the little and big cores. In the same time when resuming, these bucks must provide voltage greater or equal to voltage before suspend to match the frequency chosen by cpufreq. If voltage (default value of voltage after reset) is lower than one set by cpufreq before suspend, then system will hang during resuming. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2016-12-14thermal: consistently use int for trip tempWei Ni
The commit 17e8351a7739 consistently use int for temperature, however it missed a few in trip temperature and thermal_core. In current codes, the trip->temperature used "unsigned long" and zone->temperature used"int", if the temperature is negative value, it will get wrong result when compare temperature with trip temperature. This patch can fix it. Signed-off-by: Wei Ni <wni@nvidia.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com> [backport from mainline to fix previous backported commit] Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2016-12-14thermal: consistently use int for temperaturesSascha Hauer
The thermal code uses int, long and unsigned long for temperatures in different places. Using an unsigned type limits the thermal framework to positive temperatures without need. Also several drivers currently will report temperatures near UINT_MAX for temperatures below 0°C. This will probably immediately shut the machine down due to overtemperature if started below 0°C. 'long' is 64bit on several architectures. This is not needed since INT_MAX °mC is above the melting point of all known materials. Consistently use a plain 'int' for temperatures throughout the thermal code and the drivers. This only changes the places in the drivers where the temperature is passed around as pointer, when drivers internally use another type this is not changed. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Jean Delvare <jdelvare@suse.de> Reviewed-by: Lukasz Majewski <l.majewski@samsung.com> Reviewed-by: Darren Hart <dvhart@linux.intel.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Peter Feuerer <peter@piie.net> Cc: Punit Agrawal <punit.agrawal@arm.com> Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: Jean Delvare <jdelvare@suse.de> Cc: Peter Feuerer <peter@piie.net> Cc: Heiko Stuebner <heiko@sntech.de> Cc: Lukasz Majewski <l.majewski@samsung.com> Cc: Stephen Warren <swarren@wwwdotorg.org> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: linux-acpi@vger.kernel.org Cc: platform-driver-x86@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-omap@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org Cc: Guenter Roeck <linux@roeck-us.net> Cc: Rafael J. Wysocki <rjw@rjwysocki.net> Cc: Maxime Ripard <maxime.ripard@free-electrons.com> Cc: Darren Hart <dvhart@infradead.org> Cc: lm-sensors@lm-sensors.org Signed-off-by: Zhang Rui <rui.zhang@intel.com>
2016-12-14spi: backport spi driver from android-ll, now isp-spi worksMarek Szyprowski
remove spi isp dead code Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
2016-12-14soc: samsung: pm_domain: Support pm_domain creation notification.Jonghwa Lee
For some drivers which is probed earlier than pm_domain creation, it provides a interface to get notification. Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
2016-12-14arm64: dma-iommu: rebase dma-iommu to kernel 4.1Hyungwon Hwang
In Linux kernel 4.1, iommu_domain_alloc() is introduced.This patch rebases dma-iommu codes to make the driver use the function. Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
2016-12-14trace: ramdump: add to support ramdump mode for exynos5433sungguk.na
This patch adds to support ramdump mode for exynos5433. Change-Id: I7e833273315dab3116a5e6100c01f1f7ce965067 Signed-off-by: sungguk.na <sungguk.na@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
2016-12-14thermal: devfreq_cooling: Add generic devfreq cooling device implementaionChanwoo Choi
This patch add the generic devfreq cooling device based on devfreq framework. The devfreq device is used as cooling device. Cc: Zhang Rui <rui.zhang@intel.com> Cc: Eduardo Valentin <edubezval@gmail.com> Cc: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-12-14PM: devfreq: Add the prototype of update_devfreq() to exportChanwoo Choi
This patch add simply the protoptye of update_devfreq() to devfreq.h header file to export it. The some device driver (e.g., thermal cooling device) may use the update_devfreq() to update the range of supported frequency of devfreq device. Cc: MyungJoo Ham <myungjoo.ham@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-12-14soc: samsung: exynos-pmu: Support conditional reboot modeJonghwa Lee
Traditional exynos bootloader checks PMU's inform registers at booting to support various conditional reboot mode. Depends on the value of inform registers, the behavior after reboot would be varied. Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
2016-12-14LOCAL / cpufreq: pass: Add nr_running data to load_table debugfs entryChanwoo Choi
This patch add 'nr_running' data to load_table debugfs entry. This data is used to judge current CPUs state. - /sys/kernel/debug/cpufreq/cpu0/load_table Time(ms) Old Freq(Hz) New Freq(Hz) NR_running CPU0 CPU1 1175715 200000 200000 54 15 9 1175802 200000 200000 261 72 54 1175900 200000 800000 214 96 64 1176005 800000 400000 195 29 37 1176100 400000 200000 205 42 35 1176200 200000 200000 288 93 66 1176302 200000 200000 193 61 88 1176400 200000 200000 204 65 75 1176570 200000 200000 223 27 17 1176695 200000 200000 0 2 1 1176830 200000 200000 0 4 3 1176900 200000 200000 100 17 22 1177000 200000 200000 228 60 90 1177100 200000 800000 257 96 83 1177200 800000 600000 194 59 50 1177300 600000 400000 168 29 56 1177410 400000 300000 181 38 55 1177500 300000 300000 118 37 75 1177750 300000 200000 165 16 25 1177800 200000 200000 100 22 15 Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-12-14LOCAL / sched: Add nr_running_cpumask() to get the number of running tasks ↵Chanwoo Choi
of per-cluster This patch adds the nr_running_cpumask() function to get the number of runing tasks of per-cluster. Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-12-14LOCAL / cpufreq: stats: Add 'load_table' debugfs file to show accumulated ↵Chanwoo Choi
data of CPUs This patch add new 'load_table' debugfs file to show previous accumulated data of CPUs load as following path and add CPUFREQ_LOADCHECK notification to CPUFREQ_TRANSITION_NOTIFIER notifier chain. - /sys/kernel/debug/cpufreq/cpuX/load_table When governor calculates CPUs load on dbs_check_cpu(), governor send CPUFREQ_LOADCHECK notification with CPUs load, so that cpufreq_stats accumulates calculated CPUs load on 'load_table' storage. This debugfs file is used to judge the correct system state or determine suitable system resource according to current CPUs load on user-space. This debugfs file include following data: - Measurement point of time - CPU frequency - Per-CPU load Changes since v6: - Remove unnecessary memory free/allocation operation on cpufreq_stats_reset_debugfs() - Get correct index of cpu_debugfs[] array according to cpu number - Reset 'load_table' data when cpufreq governor is changed or updated because specific governor(e.g., performance/powersave) haven't used 'load_table; debugfs file. Changes since v5: - Determine index value of policy->cpu_debugfs[] according to cpumask_weight(policy->cpus) value - Bug fix, store 'policy->cpu' to 'freq->cpu' before notify CPUFREQ_LOADCHECK notification Changes since v4: - Reset the data of CPUs load when cpufreq governor is changed - Move code about creating debugfs directory to below first patch : [PATCH 1/2] cpufreq: Add debugfs directory for cpufreq Changes since v3: - Extend a range of accumulated data (10 ~ 1000) - Add unit information of time/freq and align 'Time' field as left for readability - Use CONFIG_CPU_FREQ_STAT depdendency instead of CONFIG_CPU_FREQ_STAT_DETATILS - Initialize load of offline CPUx as zero(0) - Create/remove debugfs root directory on cpufreq_stats_init/exit() because debugfs root is used on all CPUs. Changes since v2: - Code clean according to Viresh Kumar's comment - Show both old frequency and new frequency on 'load_table' debugfs file - Change debufs file patch as below old: /sys/kernel/debugfs/cpufreq/load_table new: /sys/kernel/debugfs/cpufreq/cpuX/load_table Changes since v1: - Set maximum storage size to save CPUs load on Kconfig - Use spinlock to synchronize read/write operation for CPUs load - Use local variable instead of global variable(struct cpufreq_freqs *freqs) - Use pointer of data structure to get correct size of data structure in sizeof() macro instead of structure name : sizeof(struct cpufreq_freqs) -> sizeof(*stat->load_table) - Change time unit from nanosecond to microsecond - Remove unnecessary memory copy Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-12-14LOCAL / cpufreq: Add debugfs directory for cpufreqChanwoo Choi
This patch create debugfs root directory and child directory according to the number of CPUs for CPUFreq as below debugfs directory path: - /sys/kernel/debug/cpufreq/cpuX If many CPUs share only one cpufreq policy, other CPUs(except for first CPU) create a symbolic link for debugfs directory of CPU0. - link: /sys/kernel/debug/cpufreq/cpu[1-(N-1)] -> /sys/kernel/debug/cpufreq/cpu0 And then cpufreq may need to create debugfs specific file below of debugfs directory of cpufreq. (e.g., /sys/kernel/debug/cpufreq/cpu0/load_table) Changes since v6: - Use 'policy->related_cpus' instead of 'policy->cpus' when getting the number of CPUs included in the same package - Get correct index of cpu_debugfs[] array according to cpu number - Refactoring cpufreq_move_debugfs_dir() / cpufreq_create_debugfs_symlink() - Use for_each_cpu() to support multi cluster instead of for_each_present_cpu() Changes since v5: - Refactoring patch v4 - Create again symbolic link of debugfs directory when first CPU dev is removed (In this case, many CPUs share only one cpufreq policy) Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-12-14sii8620: cleaning of MHL related macrosAndrzej Hajda
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14sii8620: add support to RAP commandsAndrzej Hajda
Request Action Protocol is required to enable CBUS mode in MHL3. Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14sii8620: MHL definition changesAndrzej Hajda
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
2016-12-14sii8620: add driverAndrzej Hajda
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> [k.kozlowski: rebased on 4.1] Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2016-12-14LOCAL / input: touchscreen: add mms128 touchscreen driverBeomho Seo
This patch is mms128 touchscreen driver. Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
2016-12-14LOCAL / power: charger-manager: Add battery state update functionBeomho Seo
This patch add battery state update function. It provides battery status, capacity, voltage and temperature. Signed-off-by: Beomho Seo <beomho.seo@samsung.com> [k.kozlowski: rebased on 4.1] Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2016-12-14LOCAL / nfc: add sec_nfc driverRobert Baldyga
Driver ported from Android 5.0 kernel. Signed-off-by: Robert Baldyga <r.baldyga@samsung.com> [k.kozlowski: rebased on 4.1] Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
2016-12-14soc: samsung: exynos_pd: Notify power domain status changing.Jonghwa Lee
Add notification mechanism in exynos's power domain driver, to let external driver which has interest in the specific power domain know the power domain's status is changing. Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
2016-12-14local/include: add the wlan_plat header fileJaehoon Chung
This header file should be used for Wifi. (This patch is workaround) Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>