platform/kernel/linux-exynos.git
7 years agodrm/exynos/gsc: Add resolution check and error handling 27/140227/10
Hoegeun Kwon [Thu, 20 Jul 2017 04:25:49 +0000 (13:25 +0900)]
drm/exynos/gsc: Add resolution check and error handling

If the gscaler device tries to rotate the screen with a resolution
other than a multiple of 4 and 8, a kernel panic [1] occurs because of
referring unallocated memory areas. The cause of this problem is that
multiples of the resolution must be a multiple of 4, 8 each
horizontally and vertically. It is related to the hardware limit of
gscaler.

Add error handling to check that each horizontal and vertical
resolution is not a multiple of 4 and 8.

[1]
   BUG: failure at drivers/iommu/exynos-iommu.c:425/exynos_sysmmu_irq()!
   Kernel panic - not syncing: BUG!
   CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.1.36-00004-gfbfeb5b-dirty #215
   Hardware name: Samsung TM2 board (DT)
   Call trace:
   [<ffffffc00008a008>] dump_backtrace+0x0/0x12c
   [<ffffffc00008a148>] show_stack+0x14/0x1c
   [<ffffffc000a5c818>] dump_stack+0x84/0xa8
   [<ffffffc000a589d4>] panic+0xf0/0x234
   [<ffffffc00045c4c0>] exynos_sysmmu_irq+0x68/0x78
   [<ffffffc0000e8ab4>] handle_irq_event_percpu+0x78/0x290
   [<ffffffc0000e8d18>] handle_irq_event+0x4c/0x78
   [<ffffffc0000eb9c0>] handle_fasteoi_irq+0xe4/0x198
   [<ffffffc0000e8050>] generic_handle_irq+0x34/0x4c
   [<ffffffc0000e83a4>] __handle_domain_irq+0x88/0xf0
   [<ffffffc000082418>] gic_handle_irq+0x34/0x84
   Exception stack(0xffffffc001097da0 to 0xffffffc001097ed0)
   7da0: 010a1000 ffffffc0 00000000 00000080 01097ef0 ffffffc0 00086974 ffffffc0
   7dc0: 00000000 00000000 01097f00 ffffffc0 00000001 00000000 00000000 00000000
   7de0: 00000000 00000000 98e93c98 ffffffc0 6abd3580 00000018 99087c98 ffffffc0
   7e00: 010af230 ffffffc0 01097e40 ffffffc0 ffffb3a1 00000000 00a72988 ffffffc0
   7e20: f1efd6f4 00000000 f1efd708 00000000 f1efe290 00000000 00000000 00000000
   7e40: 0010cfa0 ffffffc0 00000000 00000000 00000000 00000000 010a1000 ffffffc0
   7e60: 0122a000 ffffffc0 00a71000 ffffffc0 00000000 00000000 00000000 00000000
   7e80: 010891b0 ffffffc0 0108a740 ffffffc0 01083be0 ffffffc0 00f54000 ffffffc0
   7ea0: 00000000 00000000 01097ef0 ffffffc0 00086970 ffffffc0 01097ef0 ffffffc0
   7ec0: 00086974 ffffffc0 60000145 00000000
   [<ffffffc000085700>] el1_irq+0x80/0xf8
   [<ffffffc0000d9d50>] cpu_startup_entry+0x290/0x458
   [<ffffffc000a5702c>] rest_init+0x84/0x8c
   [<ffffffc000fe9984>] start_kernel+0x398/0x3ac

Change-Id: I5e81a5217a0eaa12e8645cbe4fe118661decc037
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agoclk: samsung: exynos5433: Correct typos in SoC name 71/143171/2
Marek Szyprowski [Wed, 9 Aug 2017 00:38:47 +0000 (09:38 +0900)]
clk: samsung: exynos5433: Correct typos in SoC name

This patch fixes simple typos in Exynos5433 clocks driver. The SoC name
was referred a few times as '5443' instead of '5433'.

Change-Id: Ie0507e195a323b134af0cb0c775637755b128df7
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
[cw00.choi: Apply mainline patch as backporting]
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
7 years agoclk: samsung: exynos5433: Add data for 250MHz and 278MHz PLL rates 70/143170/2
Marek Szyprowski [Thu, 26 Jan 2017 12:37:53 +0000 (13:37 +0100)]
clk: samsung: exynos5433: Add data for 250MHz and 278MHz PLL rates

Default clock configuration applied by the bootloader for TM2 and TM2e
boards includes 250MHz and 278MHz rate for DISP PLL clock. To ensure
such configuration for those boards with 'assigned-clock-*' properties,
parameters for those two additional rates are needed.

Change-Id: I637f105f7141bb5854f1f78cacc215eb7c447621
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
[cw00.choi: Apply mainline patch as backporting]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoclk: samsung: exynos5433: Add IDs for PHYCLK_MIPIDPHY0_* clocks 69/143169/2
Marek Szyprowski [Wed, 9 Aug 2017 00:36:41 +0000 (09:36 +0900)]
clk: samsung: exynos5433: Add IDs for PHYCLK_MIPIDPHY0_* clocks

Add missing identifiers for phyclk_mipidphy0_bitclkdiv8_phy and
phyclk_mipidphy0_rxclkesc0_phy clocks. Access to those clocks is needed
to setup initial clock configuration for display subsystem in device tree
in order to avoid dependency on the configuration left by the bootloader.

Change-Id: I808ec0e89d38e55e6ca5839bf365dce7b694af27
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
[cw00.choi: Apply mainline patch as backporting]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoclk: samsung: exynos5433: Set NoC (Network On Chip) clocks as critical 68/143168/1
Chanwoo Choi [Thu, 8 Dec 2016 04:58:07 +0000 (13:58 +0900)]
clk: samsung: exynos5433: Set NoC (Network On Chip) clocks as critical

The ACLK_BUS0/1/2 are used for NoC (Network on Chip). If NoC's clocks are
disabled, the system halt happens. Following clocks must be always enabled:
 - CLK_ACLK_BUS0_400 : NoC's bus clock for PERIC/PERIS/FSYS/MSCL,
 - CLK_ACLK_BUS1_400 : NoC's bus clock for MFC/HEVC/G3D,
 - CLK_ACLK_BUS2_400 : NoC's bus clock for GSCL/DISP/G2D/CAM0/CAM1/ISP.

This patch also adds the CLK_SET_RATE_PARENT flag to the CLK_SCLK_JPEG_MSCL
because this clock should be used for bus frequency scaling. This clock need
to be changed on the fly with CLK_SET_RATE_PARENT flag.

Change-Id: I37661bb8c4d8c36d96464df6eeb2927be1065a2a
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
[cw00.choi: Apply mainline patch as backporting]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoclk: exynos5433: Mark some clocks as critical 67/143167/1
Marek Szyprowski [Fri, 18 Nov 2016 10:04:18 +0000 (11:04 +0100)]
clk: exynos5433: Mark some clocks as critical

Some parent clocks of the Exynos5433 CMUs must be always enabled to access
any register in the given CMU or devices connected to it. For the time
being, until a proper solution based on runtime PM is applied, mark those
clocks as critical (instead of ignore unused) to prevent disabling them.

Change-Id: Icf0955a6a357acd90865512d326da04974ba9ed9
Reported-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Tested-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
[cw00.choi: Apply mainline patch as backporting]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoclk: exynos5433: Fix parent clocks for FSYS block 66/143166/1
Marek Szyprowski [Thu, 17 Nov 2016 11:42:52 +0000 (12:42 +0100)]
clk: exynos5433: Fix parent clocks for FSYS block

The proper parent clock for FSYS block is "aclk_fsys_200"
according to the Exynos5433 reference manual.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
[cw00.choi: Apply mainline patch as backporting]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Change-Id: I02f8fad8004de987d0f85fae6269af0a7b71225a

7 years agoclk: WARN_ON about to disable a critical clock 65/143165/1
Lee Jones [Wed, 9 Aug 2017 00:50:03 +0000 (09:50 +0900)]
clk: WARN_ON about to disable a critical clock

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/1455225554-13267-3-git-send-email-mturquette@baylibre.com
[cw00.choi: Fix the merge conflict and apply mainline patch]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Change-Id: Ibf56e2d41935224629097b50c7856e19349c82ad

7 years agoclk: Allow clocks to be marked as CRITICAL 64/143164/1
Lee Jones [Wed, 9 Aug 2017 00:47:55 +0000 (09:47 +0900)]
clk: Allow clocks to be marked as CRITICAL

Critical clocks are those which must not be gated, else undefined
or catastrophic failure would occur.  Here we have chosen to
ensure the prepare/enable counts are correctly incremented, so as
not to confuse users with enabled clocks with no visible users.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/1455225554-13267-2-git-send-email-mturquette@baylibre.com
[cw00.choi: Fix the merge conflict and apply the mainline patch]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Change-Id: Ic4ec2959426dc4a424bf71bdc6b725dd9022616c

7 years agoRevert "Revert "usb: core: lpm: set lpm_capable for root hub device"" 15/125315/11 accepted/tizen/unified/20170807.152205 submit/tizen/20170807.013143
Dongwoo Lee [Fri, 14 Apr 2017 03:36:30 +0000 (12:36 +0900)]
Revert "Revert "usb: core: lpm: set lpm_capable for root hub device""

This reverts commit 'dc463ecea9d0 ("Revert "usb: core: lpm: set lpm_capable
for root hub device"")'

The original commit was reverted because it makes the USB port is not
working on Odroid-XU4. But now PHY tuning resolves this problem, so it
will be restored.

Change-Id: I59cdd3a6bf2f0fce06dce88a4f7844a82ed1eab5
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agousb: host: xhci-plat: Tune PHY after xhci reset 14/125314/10
Dongwoo Lee [Tue, 11 Apr 2017 05:32:44 +0000 (14:32 +0900)]
usb: host: xhci-plat: Tune PHY after xhci reset

It tunes PHY to enable USB 3.0 super-speed mode.

Since xhci reset clears PHY CR port settings, PHY should be re-tuned
after xhci reset completes.

Change-Id: I1ab574c592d1a64b2735773b387687997647d89a
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agophy: exynos5-usbdrd: Add USB 3.0 super-speed mode tune 13/125313/9
Dongwoo Lee [Wed, 22 Mar 2017 04:54:50 +0000 (13:54 +0900)]
phy: exynos5-usbdrd: Add USB 3.0 super-speed mode tune

It implements PHY tune operation to activate USB 3.0 super-speed mode.

Change-Id: I56971effacc2d3383b1fc55c2e73f76f54d603a0
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agophy: core: Add PHY tune operation 12/125312/6
Dongwoo Lee [Fri, 7 Apr 2017 06:22:18 +0000 (15:22 +0900)]
phy: core: Add PHY tune operation

PHY framework currently provides phy_init to set initial state of
registers, powers and clocks but it is always called before xhci is
probed. However, some PHYs might need to adjust their configuration
during its operation because of h/w characteristics (or problem).
To resolve this problem, it provides tune operation to generic PHY
framework.

Change-Id: I74b0104d6ecada8c4274036c69497b9368e7f38a
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agoarm64: dts: exynos5433: Enable exynos-avs on the tm2 and tm2e boards 75/136275/3
Wook Song [Wed, 28 Jun 2017 08:57:08 +0000 (17:57 +0900)]
arm64: dts: exynos5433: Enable exynos-avs on the tm2 and tm2e boards

This patch adds the exynos-avs device nodes to the exynos5433-tm2 and
exynos5433-tm2e board dts files. The vdd-supply property required by
each exynos-avs device is also added to the corresponding device node.

Change-Id: Ia4ae2bd0624bb97d98157820fdae93bf4dace6a0
Signed-off-by: Wook Song <wook16.song@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoarm64: dts: exynos5433: Add exynos-avs device node 74/136274/3
Wook Song [Wed, 28 Jun 2017 06:18:06 +0000 (15:18 +0900)]
arm64: dts: exynos5433: Add exynos-avs device node

This patch adds exynos AVS device tree node for Exynos5433. Since the
AVS device driver for Exynos5433 requries the phandle of the syscon node
for chipid register set, this patch also adds the "syscon" compatible
property to the exynos-chipid binding node.

Change-Id: Icef5aba65fac3864553ebdac233181015bb2f393
Signed-off-by: Wook Song <wook16.song@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoPM / AVS: exynos-avs: Add Adaptive Voltage Scaling (AVS) device driver 50/111950/11
Wook Song [Tue, 24 Jan 2017 08:10:54 +0000 (17:10 +0900)]
PM / AVS: exynos-avs: Add Adaptive Voltage Scaling (AVS) device driver

In Exynos SoC, Adaptive Supply Voltage (ASV) is a technique, which
provides sets of voltage values optimized to the SoC revision variations
for given operating frequencies of devices such as CPU, GPU, and BUS.
For each given operating frequency of the device, there is an ASV group
number, which indicates the SoC revision variaion. By using the ASV
group number, it is possible to identify which one is the most suitable
set of voltages. In general, the ASV group numbers are decided at the
manufactoring time and we can get these numbers by reading specific
memory addresses mapped to a special read-only region.

This patch adds a dt-based common device driver for ASV support in
Exynos SoC. Since the ASV technique can be also viewed as a Adaptive
Voltage Scaling (AVS) feature, we let this device driver be included in
drivers/power/avs directory. This common device driver supports basic
operations to read the ASV group number and replace the OPP table of the
device with the optimized one by using the ASV group number.

In the current version of the AVS common device driver, instead of
supporting all the resource types, CPU-related resource types are
supported. It will be extended to support other types of resources such
as GPU and BUS.

For the specific SoC support by using this common device driver, this
patch also adds a device driver for Exynos5433 SoC. In the case of
Exynos5433 SoC, there are four vesions of the OPP tables for each
resource. Since each OPP table contains 16 sets of voltages for 16 ASV
groups, 64 sets of operating points are required to only support the
Little cluster. Therefore, in the current implementation, this
Exynos5433-specific device driver only supports the optimized OPP table
for the ASV group number of 8 in version 2 of the OPP table (which is
the latest version). It will be also extended to supprot all of the 16
ASV groups in the OPP table version 2 soon.

Change-Id: Ie4d7e810a42c1cbcad7c6af9a77cce0964e104bb
Signed-off-by: Wook Song <wook16.song@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoPM / AVS: exynos-avs: Add binding document for exynos-avs 49/111949/7
Wook Song [Tue, 24 Jan 2017 07:47:16 +0000 (16:47 +0900)]
PM / AVS: exynos-avs: Add binding document for exynos-avs

This patch adds a device tree binding document describing the exynos AVS
device driver.

Change-Id: I6f40e5ee9d9c796f3318dbfd71448c63f9467f8e
Signed-off-by: Wook Song <wook16.song@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agolocal/net: bcm4358: fix misleading-indentation build warning 47/137947/1 accepted/tizen/4.0/unified/20170816.012918 accepted/tizen/unified/20170711.180931 submit/tizen/20170711.010212 submit/tizen_4.0/20170811.094300
Seung-Woo Kim [Mon, 10 Jul 2017 10:33:46 +0000 (19:33 +0900)]
local/net: bcm4358: fix misleading-indentation build warning

This patch fixes following build warning caused by wrong indent:

   drivers/net/wireless/bcmdhd4358/wl_cfg80211.c: In function 'wl_cfg80211_mgmt_tx':
   drivers/net/wireless/bcmdhd4358/wl_cfg80211.c:6345:4: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
       if ((dev == bcmcfg_to_prmry_ndev(cfg)) && cfg->p2p)
       ^~
   drivers/net/wireless/bcmdhd4358/wl_cfg80211.c:6347:5: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
        wl_cfgp2p_set_management_ie(cfg, dev, bssidx,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~

Change-Id: I6ab0087a11b9a1a2be05211ba0ef751ff8f564b7
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agosched: hmp: fix misleading-indentation build warning 46/137946/1
Seung-Woo Kim [Mon, 10 Jul 2017 10:26:32 +0000 (19:26 +0900)]
sched: hmp: fix misleading-indentation build warning

This patch fixes following build warning caused by wrong indent:

   kernel/sched/fair.c: In function 'move_specific_task':
   kernel/sched/fair.c:9074:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
     if (throttled_lb_pair(task_group(p), env->src_rq->cpu,
     ^~
   kernel/sched/fair.c:9078:3: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
      if (!hmp_can_migrate_task(p, env))
      ^~

Change-Id: Ibaad680588b9b6b7f1ba6fec3ec1422963268d7a
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agodrm/exynos/gsc: Add rotation hardware limits of gscaler 37/123837/15 submit/tizen/20170710.070742
Hoegeun Kwon [Fri, 7 Apr 2017 06:11:14 +0000 (15:11 +0900)]
drm/exynos/gsc: Add rotation hardware limits of gscaler

The gscaler has hardware rotation limits that need to be imported from
dts. Parse them and add them to the property list.

The rotation hardware limits are related to the cropped source size.
When swap occurs, use rot_max size instead of crop_max size.

Also the scaling limits are related to post size, use pos size to
check the limits.

Change-Id: I081568c20ac5b30e5decd76498b39bacf29829b6
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agoarm64: dts: exynos: Add the hardware rotation limits for gsc 38/123838/14
Hoegeun Kwon [Fri, 7 Apr 2017 06:27:56 +0000 (15:27 +0900)]
arm64: dts: exynos: Add the hardware rotation limits for gsc

The gscaler has maximum size of input or output rotation. Add the
hardware limits property for the gscaler rotation in the exynos5433
dts.

Change-Id: Ifb1109d635e5a6993f29803ac04636e84120e0b7
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agoARM: dts: exynos: Add the hardware rotation limits for gsc 39/123839/13
Hoegeun Kwon [Fri, 7 Apr 2017 06:28:18 +0000 (15:28 +0900)]
ARM: dts: exynos: Add the hardware rotation limits for gsc

The gscaler has maximum size of input or output rotation. Add the
hardware limits property for the gscaler rotation in the exynos5250
and exynos5420 dts.

Change-Id: Ia37f7c7334bad31ca8f96d0c57cab54dd2e1cbfd
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agopackaging: fix baselibs not to include aarch64 header package 47/136947/2 accepted/tizen/unified/20170705.162341 submit/tizen/20170705.015412
Seung-Woo Kim [Tue, 4 Jul 2017 01:11:09 +0000 (10:11 +0900)]
packaging: fix baselibs not to include aarch64 header package

The armv7l repo already has kernel-headers for tm2 board, so
repackaging with baselibs is not required for the package, and
this patch fixes baselibs not to include aarch64 header package
for armv7l.

Change-Id: I43fbd1fd0e4f984b35b51aacfcf614d959b0c163
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agodrm/panel: s6e3ha2: Remove unnecessary error handling and func 82/136982/3
Hoegeun Kwon [Fri, 30 Jun 2017 06:00:36 +0000 (15:00 +0900)]
drm/panel: s6e3ha2: Remove unnecessary error handling and func

Remove the callback function(s6e3ha2_get_brightness) because it
supports get brightness in the backlight framework.
And also backlight framework of mainline already checks
whether the brightness value is valid or not so it removes
the relevant code from panel driver.

Change-Id: Ia27c10e317289440ef1818ad8b48d1413f32ff36
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agoASoC: samsung: i2s: Supported high resolution rates 42/136342/7
Jaechul Lee [Thu, 22 Jun 2017 02:03:27 +0000 (11:03 +0900)]
ASoC: samsung: i2s: Supported high resolution rates

This driver can support more frequencies over 96KHz. There are no reasons to
limit the frequency range below 96KHz. If codecs/amps or something else can't
support high resolution rate, the constraints would be set rates properly
because each drivers has its own limits.

This patch was tested with 192KHz audio stream on exynos5433

Change-Id: I35233199f1b1ee10239793780e9bb14fdc590aca
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
7 years agoARM: tizen_{odroid,tm2}_defconfig: fix maximum ram block device size 15/135615/2 accepted/tizen/unified/20170703.154931 submit/tizen/20170703.020614
Seung-Woo Kim [Fri, 23 Jun 2017 09:45:42 +0000 (18:45 +0900)]
ARM: tizen_{odroid,tm2}_defconfig: fix maximum ram block device size

Tizen platform needs to support 12MiB ram bloack device, so this
patch fixes maximum ram block device size as 12MiB.

Change-Id: Iaedb2d4f949166cfb43b71bc7d2202c3b6b40cb6
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoBluetooth: Fix enhance audio streaming chopping issue 02/136502/3
Seungyoun Ju [Fri, 30 Jun 2017 02:46:53 +0000 (11:46 +0900)]
Bluetooth: Fix enhance audio streaming chopping issue

If BT controller's buffer is occupied by another profile such as
OPP or SPP, and it is blocked due to RF condition, A2DP packets
couldn't be sent properly. It causes the A2DP chopping issue.
It is because HCI buffer is limited but another tx requests
occupy it and audio sreaming packet delay is occurred. So this
patch reserves some HCI buffer for A2DP to guarantee A2DP QoS
better.

Change-Id: I7f423f885ef6b7b0a56880d259fd7cd47ce60213
Signed-off-by: Seungyoun Ju <sy39.ju@samsung.com>
7 years agousb: gadget: slp: fix to use arm system_serial if no dmi serial 02/125502/7
Seung-Woo Kim [Tue, 18 Apr 2017 01:15:12 +0000 (10:15 +0900)]
usb: gadget: slp: fix to use arm system_serial if no dmi serial

From ARM system, system_serial is identical serial number. So, this
patch fixes to use arm system_serial as serial of lagacy slp usb
gadget instead of fixed serial if there is no dmi serial value.

Change-Id: Ie28c6c3d2afc54fc1ea54d3eb67100d3ed27165d
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agousb: gadget: slp: fix to use serial number of dmi 22/126022/4
Seung-Woo Kim [Wed, 19 Apr 2017 01:00:36 +0000 (10:00 +0900)]
usb: gadget: slp: fix to use serial number of dmi

For identical serial string of slp gadget, this patch fixes to use
product serial of dmi if the dmi value is set.

Change-Id: Ic75f6c7730cba5860afdf3bd60babc754b3ecd67
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoLOCAL / ARM: SAMSUNG: set chip product id as system_serial 01/125501/6
Seung-Woo Kim [Tue, 18 Apr 2017 01:11:01 +0000 (10:11 +0900)]
LOCAL / ARM: SAMSUNG: set chip product id as system_serial

The Exynos SoC has 64bit chip product id and it is identical for
each chip. So it can be used as system_serial.

Change-Id: Id739b865a1e355a0209841ff2ca1802b5daeabb2
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agofimc-is: change metadata header as uapi header 55/135455/1 accepted/tizen/unified/20170629.085911 submit/tizen/20170623.052107
Seung-Woo Kim [Thu, 22 Jun 2017 09:41:20 +0000 (18:41 +0900)]
fimc-is: change metadata header as uapi header

The header fimc-is-metadata.h is required from user, so it should
be a uapi header. So this patch moves the header to uapi header.

Change-Id: I5618889c806d4463da0bf0ea947bf5d1b667d5e3
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agouapi: add missing exynos camera interface header 54/135454/1
Seung-Woo Kim [Thu, 22 Jun 2017 09:16:42 +0000 (18:16 +0900)]
uapi: add missing exynos camera interface header

The header videodev2_exynos_camera.h is required as uapi header,
but it is missed from install script. So this patch adds the
missing header.

Change-Id: I71b40de01c23ec210d1a9c8cea633116a41da8be
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agopackaging: tm2: add kernel headers for arm 32 bit 53/135453/1
Seung-Woo Kim [Thu, 22 Jun 2017 07:45:48 +0000 (16:45 +0900)]
packaging: tm2: add kernel headers for arm 32 bit

To support 32 bit compat, kernel headers should be required for arm
32 bit, so this adds kernel headers for 32 bit.

Change-Id: I973b7413a4cb61b5159cc045c870663092aa5240
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agodrm/exynos/ipp: Add check the property even if ipp id exists 19/126319/4
Hoegeun Kwon [Fri, 21 Apr 2017 01:59:21 +0000 (10:59 +0900)]
drm/exynos/ipp: Add check the property even if ipp id exists

If user calls exynos_drm_ipp_set_property() with ioctl, check_property
is not executed if ipp id(prop_id) is present.

This means that you can not dynamically check the rotation limits, So
check the property even if ipp id exists.

Change-Id: Ibc99dda25ea41ded3db7f3307ca3a4b0ba5de9bb
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agopackaging: Turn off building with ASan 14/130914/2 accepted/tizen/unified/20170609.054034 submit/tizen/20170607.041440
Gonzha Dmitriy Evgenevich [Wed, 24 May 2017 10:56:15 +0000 (13:56 +0300)]
packaging: Turn off building with ASan

Turn off ASan for ASan sanitized firmware build

Change-Id: I4df18ac8d98cf99c08a2302640e18bea82672240
Signed-off-by: Gonzha Dmitriy Evgenevich <d.gonzha@samsung.com>
7 years agoARM: defconfig: odroid: Disable CONFIG_OABI_COMPAT 19/127219/2
Paweł Szewczyk [Wed, 17 May 2017 11:27:16 +0000 (13:27 +0200)]
ARM: defconfig: odroid: Disable CONFIG_OABI_COMPAT

This change allows enabling syscall auditing (CONFIG_AUDITSYSCALL).

Change-Id: I145f9f74dfacae050346ed0feee4bc27dd155234
Signed-off-by: Paweł Szewczyk <p.szewczyk@samsung.com>
7 years agoextcon: max77843: control the JIG pin by Auto detection 98/126198/3 accepted/tizen/unified/20170421.042254 submit/tizen/20170421.012531 tizen_4.0.m1_release
Jaehoon Chung [Thu, 20 Apr 2017 10:53:25 +0000 (19:53 +0900)]
extcon: max77843: control the JIG pin by Auto detection

Control the JIG pin by Auto dection.

Coontrol3 register has JIGset[1:0].
00: JIG pin controlled by Auto detection
01: JIG pin Output Low
10 to 11 : JIG pin Hi-Impedance

This patch is for fixing 'poweroff" issue.
- Download the some image
- After downloading the image, rebooting target.
- Press the poweroff, it runs 'reboot' instead of 'poweroff'

Change-Id: Ie17a46f79f2b4da6bbffc7d57feaddc7524b3524
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
7 years agoudp: properly support MSG_PEEK with truncated buffers 89/125789/1
Eric Dumazet [Tue, 30 Aug 2016 04:34:58 +0000 (00:34 -0400)]
udp: properly support MSG_PEEK with truncated buffers

[ Upstream commit 197c949e7798fbf28cfadc69d9ca0c2abbf93191 ]

Backport of this upstream commit into stable kernels :
89c22d8c3b27 ("net: Fix skb csum races when peeking")
exposed a bug in udp stack vs MSG_PEEK support, when user provides
a buffer smaller than skb payload.

In this case,
skb_copy_and_csum_datagram_iovec(skb, sizeof(struct udphdr),
                                 msg->msg_iov);
returns -EFAULT.

This bug does not happen in upstream kernels since Al Viro did a great
job to replace this into :
skb_copy_and_csum_datagram_msg(skb, sizeof(struct udphdr), msg);
This variant is safe vs short buffers.

For the time being, instead reverting Herbert Xu patch and add back
skb->ip_summed invalid changes, simply store the result of
udp_lib_checksum_complete() so that we avoid computing the checksum a
second time, and avoid the problematic
skb_copy_and_csum_datagram_iovec() call.

This patch can be applied on recent kernels as it avoids a double
checksumming, then backported to stable kernels as a bug fix.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[Applied missed stable commit from linux-4.4.y tree to resolve CVE-2016-10229]
Reported-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I736f7d244cade936e8991e2419466e803fead571

7 years agodrm/exynos/hdmi: dis-join pipeline on power-off 15/124515/3
Andrzej Hajda [Tue, 11 Apr 2017 11:31:37 +0000 (13:31 +0200)]
drm/exynos/hdmi: dis-join pipeline on power-off

Tizen's way of interaction with old/non-atomic DRM unveils apparent bug
in DRM core - pipeline is not destroyed on connector's removal. As a
result after re-connect full modeset code is not executed and can cause
incorrect behavior of the driver. The patch forcibly dis-joins the
pipeline on hdmi power-off to fix it.

Change-Id: If0798684ba90ddede5ccb6b59ca1ae672f35d3c0
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/exynos/decon5433: replace old method of enabling PHY with pipe clk 14/124514/4
Andrzej Hajda [Tue, 11 Apr 2017 11:20:24 +0000 (13:20 +0200)]
drm/exynos/decon5433: replace old method of enabling PHY with pipe clk

DECON requires clock provided by HDMI-PHY prior to its configuration,
and the clock should be off after DECON disable.
Since introduction of pipe_clk DECON can fully control PHY clock.
It obsoletes exynos_hdmiphy_enable workaround.
The patch adds also missing code to disable HDMI-PHY on DECON disable.

Change-Id: I61b42bec9883d4f43a0ed5bcf1ed9f1b1f81781d
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/exynos/hdmi: expose HDMI-PHY clock as pipeline clock 13/124513/2
Andrzej Hajda [Tue, 11 Apr 2017 11:17:37 +0000 (13:17 +0200)]
drm/exynos/hdmi: expose HDMI-PHY clock as pipeline clock

HDMI-PHY clock should be accessible from other components in the pipeline.

Change-Id: I17fa9cc3260ad33358dcf355e804de3ef4b4b19f
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/exynos: add support for pipeline clock to the framework 12/124512/2
Andrzej Hajda [Tue, 11 Apr 2017 11:14:11 +0000 (13:14 +0200)]
drm/exynos: add support for pipeline clock to the framework

Components belonging to the same pipeline often requires
synchronized clocks. Such clocks are sometimes provided
by external clock controller, but they can be also provided by
pipeline components. In latter case there should be a way
to access them from another component belonging to the same pipeline.
This is the case of:
- DECON,FIMD -> HDMI and HDMI-PHY clock,
- FIMD -> DP and DP clock in FIMD.
The latter case has been solved by clock_enable callback
in exynos_drm_crtc_ops. This solutin will not work with
HDMI path as in this case clock is provided by encoder.

This patch provides more generic solution allowing to register
pipeline clock during initialization in exynos_drm_crtc structure.
This way the clock will be easily accessible from both components.

Change-Id: I1fa6f541aaea154b0c3c1b52b94ab5ad31fbbe01
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
7 years agoextcon: max77843: define USB device ADC state 29/121829/3
Andi Shyti [Fri, 17 Feb 2017 08:25:51 +0000 (17:25 +0900)]
extcon: max77843: define USB device ADC state

The ADC state defines the resistance that a USB device has in
order to distinguish between devices.

Use the 10001 (0x11) value as reserved for device slot number 4
and set the device as usb host.

Change-Id: Ice0e39a2a74568ccb21d28e40d487e4b67eb2668
Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
7 years agopower: charger-manager: Add sysfs node for disabling charger 16/117616/12 accepted/tizen/unified/20170407.190140 submit/tizen/20170407.011250
Dongwoo Lee [Mon, 6 Mar 2017 06:32:46 +0000 (15:32 +0900)]
power: charger-manager: Add sysfs node for disabling charger

The new attribute 'disable_charge' will be added to
"/sys/devices/virtual/power_supply/battery/" If this attribute is
set to 1, battery charging will completely stop within 'discharging'
state, and it cannot be resumed until the node is set to 0 or the
target is rebooted.

Change-Id: Ie2d855a25d0b1660598a7b2821871334aa8c75a2
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agopower: charger-manager: Make sysfs node group 15/117615/11
Dongwoo Lee [Fri, 31 Mar 2017 06:39:03 +0000 (15:39 +0900)]
power: charger-manager: Make sysfs node group

Currently charger-manager uses only a single sysfs node for global
charger-manager, and register it as a separate file. However, if we
want to extend the node, we should register each sysfs node as an
additional file. To avoid this unextensible and uncomfortable tasks,
sysfs node group will be used.

Change-Id: Ie86c571b24668020e823deb9a72b5789f946ea3e
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agopower: charger-manager: Fix error handling of sysfs node creation 30/122330/3
Dongwoo Lee [Thu, 30 Mar 2017 10:40:01 +0000 (19:40 +0900)]
power: charger-manager: Fix error handling of sysfs node creation

This fixes to remove the remaining sysfs node if probe fails, and
eliminates the redundant error log.

Change-Id: I22ba67c509d9560416b5a37b545f03b72d00be32
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agoRevert "Revert "Revert "kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection... 21/119821/2
Hyotaek Shim [Mon, 20 Mar 2017 07:58:48 +0000 (00:58 -0700)]
Revert "Revert "Revert "kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata)"""

This reverts commit 3cd1cf51706d2df8256cf8014d01b3d23d553f44.

Change-Id: Iea89918ca8ff2992fe967ce47887ad15d881053c

7 years agoARM: tizen_{odroid,tm2}_defconfig: disable DMA BUF FENCE support 04/116404/7
Hoegeun Kwon [Tue, 21 Feb 2017 04:15:08 +0000 (13:15 +0900)]
ARM: tizen_{odroid,tm2}_defconfig: disable DMA BUF FENCE support

The workaround is to disable the dma fence due to a problem that makes
the fence deadlocked after calling eglFrontBufferSetSEC() in the VR
application. Until the fence deadlock issue is resolved.

Revert commit
f09d2a5 (ARM: tizen_{odroid,tm2}_defconfig: enable DMA BUF FENCE support)

Change-Id: I3f37daa48675fd8e201ac46321d855e0f5da6363
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agogpu: arm: midgard: Fix the removal method of the fence 78/118678/5
Hoegeun Kwon [Mon, 13 Mar 2017 11:46:54 +0000 (20:46 +0900)]
gpu: arm: midgard: Fix the removal method of the fence

Fix the fence removal method because of the fence list is removed
twice. This change is also updated from mali midgard r15p0 by ARM.

The GL application calls the flip ioctl and then calls the
eglFrontBufferSetSEC function to use the user space front
buffer. At this time, if the user space application is terminated,
in Kernel, the link is removed from the kbase_dma_fence_cancel_all_atoms() function, a following error occurs referring to the wrong link.

   Unable to handle kernel paging request at virtual address dead000000000108
   pgd = ffffffc09e385000
   [dead000000000108] *pgd=0000000000000000, *pud=0000000000000000
   Internal error: Oops: 96000044 [#1] PREEMPT SMP
   ...
   task: ffffffc09952ad00 ti: ffffffc086c70000 task.ti: ffffffc086c70000
   PC is at kbase_dma_fence_cancel_all_atoms+0x64/0xf8
   LR is at kbase_dma_fence_cancel_all_atoms+0xac/0xf8
   ...
   Call trace:
   [<ffffffc0004c9df8>] kbase_dma_fence_cancel_all_atoms+0x64/0xf8
   [<ffffffc0004b170c>] kbase_jd_zap_context+0x74/0xa0
   [<ffffffc0004b6078>] kbase_destroy_context+0x40/0x1e0
   [<ffffffc0004c0468>] kbase_release+0xe4/0x168
   ...

Change-Id: Ief351783808e63e01797fdfa2d7460dec013bff4
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agolocal/net: bcm4358: fix panic when unregistering p2p interface 38/118838/2 accepted/tizen_common accepted/tizen_ivi accepted/tizen_mobile accepted/tizen_tv accepted/tizen_wearable accepted/tizen/common/20170316.161713 accepted/tizen/ivi/20170316.101834 accepted/tizen/mobile/20170316.101734 accepted/tizen/tv/20170316.101804 accepted/tizen/unified/20170316.101853 accepted/tizen/wearable/20170316.101819 submit/tizen/20170316.045621
Seung-Woo Kim [Tue, 14 Mar 2017 07:48:23 +0000 (16:48 +0900)]
local/net: bcm4358: fix panic when unregistering p2p interface

When unregistering p2p interface, following kernel panic occurs:

   BUG: failure at mm/slub.c:3413/kfree()!
   Kernel panic - not syncing: BUG!
   CPU: 1 PID: 2698 Comm: wpa_supplicant Not tainted 4.1.36-arm64-tm2 #1
   ...
   [<ffffffc000a6bc78>] panic+0xf0/0x234
   [<ffffffc00019cc1c>] show_slab_objects+0x0/0x264
   [<ffffffc0009e2204>] nl80211_set_wowlan+0x748/0x81c
   ...

It is because kfree(wdev->wiphy->wowlan_config) is called from
cfg80211_rdev_free_wowlan(), but it is assigned with const struct
pointer from the commit c1cdee9f047f ("LOCAL / net: bcm4358: set
wowlan_config for broadcom driver"). So this patch fixes to assign
it with kmemdup.

Change-Id: Ia924d27d7f262dfd0b49d61ee0214f2ae24fb5c7
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoarm64: disable kasan when accessing frame->fp in unwind_frame 92/118792/1
Yang Shi [Mon, 8 Feb 2016 17:13:09 +0000 (09:13 -0800)]
arm64: disable kasan when accessing frame->fp in unwind_frame

When boot arm64 kernel with KASAN enabled, the below error is reported by
kasan:

BUG: KASAN: out-of-bounds in unwind_frame+0xec/0x260 at addr ffffffc064d57ba0
Read of size 8 by task pidof/499
page:ffffffbdc39355c0 count:0 mapcount:0 mapping:          (null) index:0x0
flags: 0x0()
page dumped because: kasan: bad access detected
CPU: 2 PID: 499 Comm: pidof Not tainted 4.5.0-rc1 #119
Hardware name: Freescale Layerscape 2085a RDB Board (DT)
Call trace:
[<ffffffc00008d078>] dump_backtrace+0x0/0x290
[<ffffffc00008d32c>] show_stack+0x24/0x30
[<ffffffc0006a981c>] dump_stack+0x8c/0xd8
[<ffffffc0002e4400>] kasan_report_error+0x558/0x588
[<ffffffc0002e4958>] kasan_report+0x60/0x70
[<ffffffc0002e3188>] __asan_load8+0x60/0x78
[<ffffffc00008c92c>] unwind_frame+0xec/0x260
[<ffffffc000087e60>] get_wchan+0x110/0x160
[<ffffffc0003b647c>] do_task_stat+0xb44/0xb68
[<ffffffc0003b7730>] proc_tgid_stat+0x40/0x50
[<ffffffc0003ac840>] proc_single_show+0x88/0xd8
[<ffffffc000345be8>] seq_read+0x370/0x770
[<ffffffc00030aba0>] __vfs_read+0xc8/0x1d8
[<ffffffc00030c0ec>] vfs_read+0x94/0x168
[<ffffffc00030d458>] SyS_read+0xb8/0x128
[<ffffffc000086530>] el0_svc_naked+0x24/0x28
Memory state around the buggy address:
 ffffffc064d57a80: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 f4 f4
 ffffffc064d57b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffffffc064d57b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                                  ^
 ffffffc064d57c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffffffc064d57c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Since the shadow byte pointed by the report is 0, so it may mean it is just hit
oob in non-current task. So, disable the instrumentation to silence these
warnings.

Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Yang Shi <yang.shi@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
[Backport from mainline to remove KASAN warning.]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I2bf853904b6cc3517cbefb38a92a232f77f55d9c

7 years agocompiler, atomics, kasan: Provide READ_ONCE_NOCHECK() 91/118791/1
Andrey Ryabinin [Mon, 19 Oct 2015 08:37:17 +0000 (11:37 +0300)]
compiler, atomics, kasan: Provide READ_ONCE_NOCHECK()

Some code may perform racy by design memory reads. This could be
harmless, yet such code may produce KASAN warnings.

To hide such accesses from KASAN this patch introduces
READ_ONCE_NOCHECK() macro. KASAN will not check the memory
accessed by READ_ONCE_NOCHECK(). The KernelThreadSanitizer
(KTSAN) is going to ignore it as well.

This patch creates __read_once_size_nocheck() a clone of
__read_once_size(). The only difference between them is
'no_sanitized_address' attribute appended to '*_nocheck'
function. This attribute tells the compiler that instrumentation
of memory accesses should not be applied to that function. We
declare it as static '__maybe_unsed' because GCC is not capable
to inline such function:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67368

With KASAN=n READ_ONCE_NOCHECK() is just a clone of READ_ONCE().

Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Kostya Serebryany <kcc@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sasha Levin <sasha.levin@oracle.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Wolfram Gloger <wmglo@dent.med.uni-muenchen.de>
Cc: kasan-dev <kasan-dev@googlegroups.com>
Link: http://lkml.kernel.org/r/1445243838-17763-2-git-send-email-aryabinin@virtuozzo.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
[Backport from mainline to remove meaningless KASAN warning.]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I1282df522e5271497a92fcd9e4be37ed4f6b2c63

7 years agomedia: mfc: Fix race between interrupt routine and device functions 63/116263/2
Marek Szyprowski [Thu, 23 Feb 2017 11:15:48 +0000 (12:15 +0100)]
media: mfc: Fix race between interrupt routine and device functions

Interrupt routine must wake process waiting for given interrupt AFTER
updating driver's internal structures and contexts. Doing it in-between
is a serious bug. This patch moves all calls to the wake() function to
the end of the interrupt processing block to avoid potential and real
races, especially on multi-core platforms. This also fixes following issue
reported from clock core (clocks were disabled in interrupt after being
unprepared from the other place in the driver, the stack trace however
points to the different place than s5p_mfc driver because of the race):

WARNING: CPU: 1 PID: 18 at drivers/clk/clk.c:544 clk_core_unprepare+0xc8/0x108
Modules linked in:
CPU: 1 PID: 18 Comm: kworker/1:0 Not tainted 4.10.0-next-20170223-00070-g04e18bc99ab9-dirty #2154
Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
Workqueue: pm pm_runtime_work
[<c010d8b0>] (unwind_backtrace) from [<c010a534>] (show_stack+0x10/0x14)
[<c010a534>] (show_stack) from [<c033292c>] (dump_stack+0x74/0x94)
[<c033292c>] (dump_stack) from [<c011cef4>] (__warn+0xd4/0x100)
[<c011cef4>] (__warn) from [<c011cf40>] (warn_slowpath_null+0x20/0x28)
[<c011cf40>] (warn_slowpath_null) from [<c0387a84>] (clk_core_unprepare+0xc8/0x108)
[<c0387a84>] (clk_core_unprepare) from [<c0389d84>] (clk_unprepare+0x24/0x2c)
[<c0389d84>] (clk_unprepare) from [<c03d4660>] (exynos_sysmmu_suspend+0x48/0x60)
[<c03d4660>] (exynos_sysmmu_suspend) from [<c042b9b0>] (pm_generic_runtime_suspend+0x2c/0x38)
[<c042b9b0>] (pm_generic_runtime_suspend) from [<c0437580>] (genpd_runtime_suspend+0x94/0x220)
[<c0437580>] (genpd_runtime_suspend) from [<c042e240>] (__rpm_callback+0x134/0x208)
[<c042e240>] (__rpm_callback) from [<c042e334>] (rpm_callback+0x20/0x80)
[<c042e334>] (rpm_callback) from [<c042d3b8>] (rpm_suspend+0xdc/0x458)
[<c042d3b8>] (rpm_suspend) from [<c042ea24>] (pm_runtime_work+0x80/0x90)
[<c042ea24>] (pm_runtime_work) from [<c01322c4>] (process_one_work+0x120/0x318)
[<c01322c4>] (process_one_work) from [<c0132520>] (worker_thread+0x2c/0x4ac)
[<c0132520>] (worker_thread) from [<c0137ab0>] (kthread+0xfc/0x134)
[<c0137ab0>] (kthread) from [<c0107978>] (ret_from_fork+0x14/0x3c)
---[ end trace 1ead49a7bb83f0d8 ]---

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Fixes: af93574678108 ("[media] MFC: Add MFC 5.1 V4L2 driver")
CC: stable@vger.kernel.org # v4.5+
Change-Id: I5eead70012591cdb5878f698fcf0ae7304ffb223

7 years agopci: exynos5433: use the bit name intead of magic number 91/105191/3
Jaehoon Chung [Fri, 16 Dec 2016 01:34:06 +0000 (10:34 +0900)]
pci: exynos5433: use the bit name intead of magic number

It can be checked wether link is up or not with XMLH_LINKUP(bit[4]).
According to Designware PCI Expreess Reference Manual(v3.22a),
XMLH_LINK_UP bit is used "LTSSM reports PHY link up".

Change-Id: I85dc5258471b5976ecd429e273d1edb1be08e13a
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
7 years agopci: exynos5433: use the platform_get_resource_byname intead of index 90/105190/3
Jaehoon Chung [Fri, 16 Dec 2016 01:20:35 +0000 (10:20 +0900)]
pci: exynos5433: use the platform_get_resource_byname intead of index

Use the platform_get_resource_byname for getting correct resource.

Change-Id: I1e4627705c2b612f457545ea1e07383b35d9450f
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
7 years agoARM64: dtsi: exynos5433: add the syscon_fsys for PCIe 89/105189/3
Jaehoon Chung [Fri, 16 Dec 2016 00:32:40 +0000 (09:32 +0900)]
ARM64: dtsi: exynos5433: add the syscon_fsys for PCIe

This patch is for using syscon_fsys in PICe driver.
Current 'block' reg is used as Fsys system register, but it's not
correct.

Change-Id: I6aa3cc4aec07ee6ccc038fb03e17995d0feded87
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
7 years agopci: exynos5433: add the fsysreg as system register for controlling 88/105188/3
Jaehoon Chung [Fri, 16 Dec 2016 00:30:39 +0000 (09:30 +0900)]
pci: exynos5433: add the fsysreg as system register for controlling

To control the system register adds the fsysreg as regmap.
It should be handled the FSYS system register for PCIe.

Change-Id: I65477083ad1dd5726af22debc4b7f06be956b640
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
7 years agodma-buf: add support for compat ioctl 29/115829/2
Marek Szyprowski [Tue, 21 Feb 2017 13:21:01 +0000 (14:21 +0100)]
dma-buf: add support for compat ioctl

Add compat ioctl support to dma-buf. This lets one to use DMA_BUF_IOCTL_SYNC
ioctl from 32bit application on 64bit kernel. Data structures for both 32
and 64bit modes are same, so there is no need for additional translation
layer.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Link: http://patchwork.freedesktop.org/patch/msgid/1487683261-2655-1-git-send-email-m.szyprowski@samsung.com
[Adjust commit-msg with commit in next tree]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I2e7f4b2f69fd0a93f394b41021ef20d986f86fa9

7 years agodma-buf: Update docs for SYNC ioctl 28/115828/2
Daniel Vetter [Mon, 21 Mar 2016 07:24:22 +0000 (08:24 +0100)]
dma-buf: Update docs for SYNC ioctl

Just a bit of wording polish plus mentioning that it can fail and must
be restarted.

Requested by Sumit.

v2: Fix them typos (Hans).

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tiago Vignatti <tiago.vignatti@intel.com>
Cc: Stéphane Marchesin <marcheu@chromium.org>
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Daniel Vetter <daniel.vetter@intel.com>
CC: linux-media@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Cc: linaro-mm-sig@lists.linaro.org
Cc: intel-gfx@lists.freedesktop.org
Cc: devel@driverdev.osuosl.org
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
[backport of mainline commit 87e332d56b2c7dc6733f690c9069f4fe75f21c9d]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Id097ee721bbc78a121f5085908c6a2fbabe8faaf

7 years agodma-buf: Add ioctls to allow userspace to flush 27/115827/2
Daniel Vetter [Thu, 11 Feb 2016 22:04:51 +0000 (20:04 -0200)]
dma-buf: Add ioctls to allow userspace to flush

The userspace might need some sort of cache coherency management e.g. when CPU
and GPU domains are being accessed through dma-buf at the same time. To
circumvent this problem there are begin/end coherency markers, that forward
directly to existing dma-buf device drivers vfunc hooks. Userspace can make use
of those markers through the DMA_BUF_IOCTL_SYNC ioctl. The sequence would be
used like following:
     - mmap dma-buf fd
     - for each drawing/upload cycle in CPU 1. SYNC_START ioctl, 2. read/write
       to mmap area 3. SYNC_END ioctl. This can be repeated as often as you
       want (with the new data being consumed by the GPU or say scanout device)
     - munmap once you don't need the buffer any more

v2 (Tiago): Fix header file type names (u64 -> __u64)
v3 (Tiago): Add documentation. Use enum dma_buf_sync_flags to the begin/end
dma-buf functions. Check for overflows in start/length.
v4 (Tiago): use 2d regions for sync.
v5 (Tiago): forget about 2d regions (v4); use _IOW in DMA_BUF_IOCTL_SYNC and
remove range information from struct dma_buf_sync.
v6 (Tiago): use __u64 structured padded flags instead enum. Adjust
documentation about the recommendation on using sync ioctls.
v7 (Tiago): Alex' nit on flags definition and being even more wording in the
doc about sync usage.
v9 (Tiago): remove useless is_dma_buf_file check. Fix sync.flags conditionals
and its mask order check. Add <linux/types.h> include in dma-buf.h.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: David Herrmann <dh.herrmann@gmail.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1455228291-29640-1-git-send-email-tiago.vignatti@intel.com
[backport of mainline commit 18b862dcd57a3e23e34c8cd1e939f68548c1209a]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I15e617673c903aaad550458a8f2d870ad98b5ddd

7 years agodma-buf: Remove range-based flush 26/115826/2
Tiago Vignatti [Tue, 22 Dec 2015 21:36:45 +0000 (19:36 -0200)]
dma-buf: Remove range-based flush

This patch removes range-based information used for optimizations in
begin_cpu_access and end_cpu_access.

We don't have any user nor implementation using range-based flush. It seems a
consensus that if we ever want something like that again (or even more robust
using 2D, 3D sub-range regions) we can use the upcoming dma-buf sync ioctl for
such.

Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1450820214-12509-3-git-send-email-tiago.vignatti@intel.com
[mszyprow: fixed begin/end_cpu_access calls in
 drivers/gpu/arm/midgard/r12p0_04rel0/mali_kbase_softjobs.c,
 backport of mainline commit 831e9da7dc5c22fd2a5fb64e999f6e077a4338c3]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ic0b70da15ce997dad5da9d53c808bf92a9f332ac

7 years agodrm/exynos: change default win layer of mixer to zpos 1 55/117155/2 accepted/tizen/common/20170306.165243 accepted/tizen/ivi/20170306.103724 accepted/tizen/mobile/20170306.103645 accepted/tizen/tv/20170306.103655 accepted/tizen/unified/20170310.084417 accepted/tizen/wearable/20170306.103710 submit/tizen/20170306.073645 submit/tizen_unified/20170308.100411 submit/tizen_unified/20170310.083425
Joonyoung Shim [Fri, 3 Mar 2017 01:43:28 +0000 (10:43 +0900)]
drm/exynos: change default win layer of mixer to zpos 1

Exynos tdm backend of tizen needs that default window layer has zpos 1.
Exynos drm mixer driver of this kernel doesn't support to change zpos
priority of win layer by userspace yet, so this patch modifies zpos of
default window layer to 1 in exynos drm mixer driver.

As the zpos of default win layer is to 1, this patch also removes
workaround of commit 68395cb68321 ("drm/exynos: workaround to change
graphic layers priority"), so will revert priority of win layer.

Change-Id: I9f5a2b0c1a6527f8848ee98e80ec953904b0c630
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
7 years agodma-buf: Minor coding style fixes 25/115825/1
Jagan Teki [Wed, 20 May 2015 19:39:31 +0000 (01:09 +0530)]
dma-buf: Minor coding style fixes

- WARNING: Missing a blank line after declarations
- WARNING: line over 80 characters
- WARNING: please, no space before tabs

Signed-off-by: Jagan Teki <jteki@openedev.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
[backport of mainline commit 5136629dc5a19701746abd7c8ad98ce0b84dda1d]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie8ae6a4c99f6ea1561923db3b09620ff63f562d7

7 years agodma-buf: add ref counting for module as exporter 24/115824/1
Sumit Semwal [Tue, 5 May 2015 09:26:15 +0000 (14:56 +0530)]
dma-buf: add ref counting for module as exporter

Add reference counting on a kernel module that exports dma-buf and
implements its operations. This prevents the module from being unloaded
while DMABUF file is in use.

The original patch [1] was submitted by Tomasz Stanislawski, but this
is a simpler way to do it.

v3: call module_put() as late as possible, per gregkh's comment.
v2: move owner to struct dma_buf, and use DEFINE_DMA_BUF_EXPORT_INFO
    macro to simplify the change.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
[1]: https://lkml.org/lkml/2012/8/8/163

[backport from mainline commit 9abdffe286c1532a54d5aee31571d3029be4026c]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I05cd9440f26222f877a8bfa2313a6b757419f682

7 years agodrm/exynos: dsi: Remove bridge node reference in removal 84/113984/4
Hoegeun Kwon [Thu, 9 Feb 2017 11:34:54 +0000 (20:34 +0900)]
drm/exynos: dsi: Remove bridge node reference in removal

Since bridge node is referenced during in the probe, it should be
released on removal.

Change-Id: I54c0759098d44eff327889e6c21d6a8e585bbb38
Suggested-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com>
7 years agoRevert "usb: core: lpm: set lpm_capable for root hub device" 50/113450/1 accepted/tizen/common/20170213.174421 accepted/tizen/ivi/20170214.011029 accepted/tizen/mobile/20170214.010859 accepted/tizen/tv/20170214.010936 accepted/tizen/wearable/20170214.010957 submit/tizen/20170213.015421
Marek Szyprowski [Tue, 7 Feb 2017 13:54:33 +0000 (14:54 +0100)]
Revert "usb: core: lpm: set lpm_capable for root hub device"

After a rebase onto 4.1.36 xHCI ports on OdroidXU4 stopped working. This
has been caused by commit e951f84074b84a3f5aecbffd01da74576e0068d5 applied
in mainline. This patch reverts it to get xHCI ports working again.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I86feaf60472efaf6c045b4f1ecb28f9ab936a01f

7 years ago[media] uvcvideo: Add video formats for Intel real sense F200 camera 71/112071/3 accepted/tizen/common/20170203.161647 accepted/tizen/ivi/20170203.090751 accepted/tizen/mobile/20170203.090649 accepted/tizen/tv/20170203.090719 accepted/tizen/wearable/20170203.090736 submit/tizen/20170203.054341
Daniel Patrick Johnson [Tue, 3 Mar 2015 04:30:48 +0000 (20:30 -0800)]
[media] uvcvideo: Add video formats for Intel real sense F200 camera

This patch adds video format support for Intel real sense F200 camera.
Multimedia team requested me to support this.

Signed-off-by: Daniel Patrick Johnson <teknotus@teknot.us>
[Port from https://github.com/teknotus/depthview/tree/kernelpatchfmt]
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Change-Id: I48de58feb46fc1a91fcee449213c03bdbbcbb905

7 years agopackaging: add provided name for kernel image package 38/112138/2
Seung-Woo Kim [Thu, 26 Jan 2017 06:26:37 +0000 (15:26 +0900)]
packaging: add provided name for kernel image package

This patch adds default provided name for kernel image package as
linux-kernel.

Change-Id: Iab0ca17fef6fc51b93107aa857b291c7fefe55ef
Suggested-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoRevert "Revert "kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata)"" 07/112407/2
Hyotaek Shim [Wed, 1 Feb 2017 01:25:36 +0000 (17:25 -0800)]
Revert "Revert "kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata)""

This reverts commit 80b9e0d4a216cabc94399cc0f7dbb3064fd350ff.

Change-Id: I72edcdc79d93b5b888deb5c210b537cef52fff11

7 years agolib/Kconfig.debug: disable -Wframe-larger-than warnings with KASAN=y 16/110816/1
Andrey Ryabinin [Thu, 22 Oct 2015 20:32:24 +0000 (13:32 -0700)]
lib/Kconfig.debug: disable -Wframe-larger-than warnings with KASAN=y

When the kernel compiled with KASAN=y, GCC adds redzones for each
variable on stack.  This enlarges function's stack frame and causes:

'warning: the frame size of X bytes is larger than Y bytes'

The worst case I've seen for now is following:

   ../net/wireless/nl80211.c: In function `nl80211_send_wiphy':
   ../net/wireless/nl80211.c:1731:1: warning: the frame size of 5448 bytes is larger than 2048 bytes [-Wframe-larger-than=]

That kind of warning becomes useless with KASAN=y.  It doesn't
necessarily indicate that there is some problem in the code, thus we
should turn it off.

(The KASAN=y stack size in increased from 16k to 32k for this reason)

Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Acked-by: Abylay Ospan <aospan@netup.ru>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mauro Carvalho Chehab <m.chehab@samsung.com>
Cc: Kozlov Sergey <serjk@netup.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[Backport from mainline to remove build warning from KASAN option with GCC 6]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I765080564f7b312fd48988b2f70aaa6f9b2eb71c

7 years agonet: bcm4358: fix not to check same value in macro 51/110551/3
Seung-Woo Kim [Tue, 17 Jan 2017 04:22:22 +0000 (13:22 +0900)]
net: bcm4358: fix not to check same value in macro

When BCMBUSTYPE is not defined, then BUSTYPE(bustype) is just
bustype. So comparing bustype and BUSTYPE(bustype) is not necessary.

This patch removes following build warning with gcc 6.
   drivers/net/wireless/bcmdhd4358/siutils.c: In function 'si_doattach':
   drivers/net/wireless/bcmdhd4358/siutils.c:512:14: warning: self-comparison always evaluates to false [-Wtautological-compare]
     if (bustype != BUSTYPE(bustype)) {
                 ^~

Change-Id: I1cac3dd31bcb86983469830013a1093ed9ceaa89
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoRevert "Revert "[media] s4p-mfc: set allow_zero_bytesused flag for vb2_queue_init"" 30/110430/2 accepted/tizen/common/20170117.174849 accepted/tizen/ivi/20170118.040402 accepted/tizen/mobile/20170118.040314 accepted/tizen/tv/20170118.040333 accepted/tizen/wearable/20170118.040348 submit/tizen/20170117.061257
Seung-Woo Kim [Mon, 16 Jan 2017 10:18:07 +0000 (19:18 +0900)]
Revert "Revert "[media] s4p-mfc: set allow_zero_bytesused flag for vb2_queue_init""

This reverts commit d5c117ccdde0b9a25161ea033364dbed479a1d55.

Without allow_zero_byteused flag, during decoding the last EOS buffer
with zero bytesused from userspace is not properly processed, so
stream is stuck without finishing all queued buffer.

Change-Id: I5725d3514885c104febb12adb44b13ae9b527817
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoarm64: dts: exynos5433-tm2: Adjust the minimum voltage for LITTLE core 93/110193/1
Chanwoo Choi [Mon, 24 Oct 2016 05:59:28 +0000 (14:59 +0900)]
arm64: dts: exynos5433-tm2: Adjust the minimum voltage for LITTLE core

This patch adjusts the minimum voltage for LITTLE core
because the requested minimum voltage is 750mV on the
lowest frequency level.

Change-Id: I335e89d71e45c10f43db7e2e14469c90f03c92b1
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
7 years agoRevert "kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata)" 85/110085/1
Inki Dae [Fri, 13 Jan 2017 01:42:48 +0000 (17:42 -0800)]
Revert "kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata)"

This reverts commit d07e0df0ca20a1df62100485117df3d90a1a2a80.

Change-Id: I895dad38c5f4c850b7d986e39d61a70ecdea20bf

7 years agokdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata) 74/103874/4
Konrad Lipinski [Fri, 9 Dec 2016 16:21:48 +0000 (17:21 +0100)]
kdbus: add CMD_UPDATE_METADATA ioctl (reinitialize connection metadata)

Added to satisfy efl/launchpad developers' request.

Tizen code routinely performs the following operation sequence:
1. create kdbus connection
2. update seclabel
3. rely on updated seclabel

CONN_INFO has always returned seclabel collected at HELLO time (behavior
consistent across all kdbus versions and documented in kdbus man). This
would break step 3 of the above sequence.

KDBUS_CMD_UPDATE_METADATA ioctl updates a connection's metadata to
reflect the current state. Metadata is collected in the exact same way
as during HELLO.

Semantics Required by efl/launchpad can be obtained by altering the
sequence like so:
1. create kdbus connection
2. update seclabel
+2b. ioctl(connection_fd, KDBUS_CMD_UPDATE_METADATA);
3. rely on updated seclabel

Change-Id: I4a4b2aea4256f8bfb3bd1c0d3df5e963d243cb52
Signed-off-by: Konrad Lipinski <konrad.l@samsung.com>
7 years agopackaging: Do Not Use To-Be-Unsupported Macro 30/109930/2
MyungJoo Ham [Thu, 12 Jan 2017 08:11:36 +0000 (17:11 +0900)]
packaging: Do Not Use To-Be-Unsupported Macro

In Tizen 4.0, it is prohibited to use "profile", "_repository", "tizen_target_name"
in spec file, which requires to have seperated OBS projects and repositories,
because we are going to merge ALL repositories and projects into ONE.

Plus, you do not need to worry about building odroid kernel for TM1 because
the package name is different.

Change-Id: I1b3684987c2e2fa3d803510ace8369c586aad8cc
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 years agoARM64: dts: exynos5433-tm2(e): fix earjack key codes 02/107202/1
Joonyoung Shim [Tue, 27 Dec 2016 06:35:42 +0000 (15:35 +0900)]
ARM64: dts: exynos5433-tm2(e): fix earjack key codes

In Tizen 3.0, keycodes for earjack should be below.

volume down: 114
volume up: 115
media key: 226

Change-Id: Ifc9c5c444980fcdc691daa0066966ba860cb9081
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
7 years agoARM: tizen_{odroid,tm2}_defconfig: enable SECURITY_SMACK_APPEND_SIGNALS 10/104510/3 accepted/tizen/common/20161219.151653 accepted/tizen/ivi/20161216.084414 accepted/tizen/mobile/20161216.084214 accepted/tizen/tv/20161216.084333 accepted/tizen/wearable/20161216.084351 submit/tizen/20161216.052309
Rafal Krypa [Tue, 13 Dec 2016 11:37:32 +0000 (12:37 +0100)]
ARM: tizen_{odroid,tm2}_defconfig: enable SECURITY_SMACK_APPEND_SIGNALS

Change-Id: I2a6a9380323f780d327e5e57009ab2edc6aae399
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
7 years agoSmack: Signal delivery as an append operation 09/104509/3
Casey Schaufler [Tue, 30 Aug 2016 17:31:39 +0000 (10:31 -0700)]
Smack: Signal delivery as an append operation

Under a strict subject/object security policy delivering a
signal or delivering network IPC could be considered either
a write or an append operation. The original choice to make
both write operations leads to an issue where IPC delivery
is desired under policy, but delivery of signals is not.
This patch provides the option of making signal delivery
an append operation, allowing Smack rules that deny signal
delivery while allowing IPC. This was requested for Tizen.

Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
[mainline backport of commit c60b906673eebb4f65840fa9dc204401caf276ea]
Change-Id: I474d9a2b51b653c9c6d21391a2c281c1f1f2d709

7 years agoSmack: fix d_instantiate logic for sockfs and pipefs 59/104259/2
Rafal Krypa [Tue, 13 Dec 2016 02:25:11 +0000 (11:25 +0900)]
Smack: fix d_instantiate logic for sockfs and pipefs

Since 4b936885a (v2.6.32) all inodes on sockfs and pipefs are disconnected.
It caused filesystem specific code in smack_d_instantiate to be skipped,
because all inodes on those pseudo filesystems were treated as root inodes.
As a result all sockfs inodes had the Smack label set to floor.

In most cases access checks for sockets use socket_smack data so the inode
label is not important. But there are special cases that were broken.
One example would be calling fcntl with F_SETOWN command on a socket fd.

Now smack_d_instantiate expects all pipefs and sockfs inodes to be
disconnected and has the logic in appropriate place.

Change-Id: I87ab9fa19cea3e8df8f2c814946e56a9df20d36d
Signed-off-by: Rafal Krypa <r.krypa@samsung.com>
Signed-off-by: jooseong lee <jooseong.lee@samsung.com>
7 years agopackaging: update kernel version of spec to v4.1.36
Seung-Woo Kim [Wed, 2 Nov 2016 02:33:30 +0000 (11:33 +0900)]
packaging: update kernel version of spec to v4.1.36

This patch updates kernel version to v4.1.36 from spec file.

Change-Id: Ia34ea318665891b4430c6b77fcc9f43f533806fc
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoARM: defconfig: rinato: sync with v4.1.36 rebased tree
Seung-Woo Kim [Fri, 28 Oct 2016 05:19:01 +0000 (14:19 +0900)]
ARM: defconfig: rinato: sync with v4.1.36 rebased tree

This patch is to sync rinato defconfig with v4.1.36 rebased tree.

Change-Id: Ia299861792631dcd0dbe3fb0a78cf96ec954593e
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoARM: defconfig: trats2: sync with v4.1.36 rebased tree
Seung-Woo Kim [Fri, 28 Oct 2016 05:17:27 +0000 (14:17 +0900)]
ARM: defconfig: trats2: sync with v4.1.36 rebased tree

This patch is to sync trats2 defconfig with v4.1.36 rebased tree.

Change-Id: Ib0a5eaf7fbed9ddeb1e8fed1941f8185b1001c86
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoARM: defconfig: odroid: sync with v4.1.36 rebased tree
Seung-Woo Kim [Fri, 28 Oct 2016 05:16:04 +0000 (14:16 +0900)]
ARM: defconfig: odroid: sync with v4.1.36 rebased tree

This patch is to sync odroid defconfig with v4.1.36 rebased tree.

Change-Id: I6de9150678bb53ccf5ba2e319da2744fb472866a
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agoarm64: defconfig: tm2: sync with v4.1.36 rebased tree
Seung-Woo Kim [Fri, 28 Oct 2016 05:14:26 +0000 (14:14 +0900)]
arm64: defconfig: tm2: sync with v4.1.36 rebased tree

This patch is to sync tm2 defconfig with v4.1.36 rebased tree.

Change-Id: I8ceda9fa5747fd5790e5393ede573cc09fd13876
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agopackaging: odroid: Do Not Use profile macro
MyungJoo Ham [Mon, 14 Nov 2016 07:42:32 +0000 (16:42 +0900)]
packaging: odroid: Do Not Use profile macro

It is to be obsolete in 4.0.

It is allowed to use "profile" macro ONLY for backward compatibility while
keeping the compatibility with unified build environment.
- Both are false in this usage.

Change-Id: Icd3d5f77304ca5f30d66c8dc8180360ad06cd0e9
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 years agopackaging: tm2: Do Not Use profile macro
MyungJoo Ham [Mon, 14 Nov 2016 07:40:13 +0000 (16:40 +0900)]
packaging: tm2: Do Not Use profile macro

It is going to be obsolete soon.

Change-Id: I5add63e38f223ddf015e7bea600c3deef4458935
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 years agopackaging: tm2: Useless and Dangerous Spec Statement
MyungJoo Ham [Mon, 14 Nov 2016 07:38:41 +0000 (16:38 +0900)]
packaging: tm2: Useless and Dangerous Spec Statement

- Do Not Use "profile"

- If you do not want tm2 in non-mobile, just do not include
it in non-mobile Build Project.

Change-Id: Iec9652db7480d00d1e4de2405d3826bd98ddc039
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
7 years agopackaging: switch find calls from -exec to -delete and xargs
Slava Barinov [Wed, 12 Oct 2016 09:06:23 +0000 (12:06 +0300)]
packaging: switch find calls from -exec to -delete and xargs

The -delete and xargs approach is faster than -exec and in
Tizen 3.0 cross-builds it grants huge build acceleration due
to tool acceleration system peculiarities.

Change-Id: Ibbbb82962235cd098cd6952c288e9f120bb63ed3
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agopackaging: devel package name unification
Dmitry Kovalenko [Tue, 4 Oct 2016 08:32:04 +0000 (11:32 +0300)]
packaging: devel package name unification

All kernels provides unified kernel-devel-tizen package and located at
/boot/kernel/devel/tizen-devel (solved using symlink)

Change-Id: Ia8d5091db9a1073c170abbadb0d7cc37bc6380f6
Signed-off-by: Dmitry Kovalenko <d.kovalenko@samsung.com>
[Update commit-msg and just add Provided name for devel package instead of replacing]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
7 years agopacket: fix race condition in packet_set_ring
Philip Pettersson [Tue, 6 Dec 2016 23:51:56 +0000 (08:51 +0900)]
packet: fix race condition in packet_set_ring

When packet_set_ring creates a ring buffer it will initialize a
struct timer_list if the packet version is TPACKET_V3. This value
can then be raced by a different thread calling setsockopt to
set the version to TPACKET_V1 before packet_set_ring has finished.

This leads to a use-after-free on a function pointer in the
struct timer_list when the socket is closed as the previously
initialized timer will not be deleted.

The bug is fixed by taking lock_sock(sk) in packet_setsockopt when
changing the packet version while also taking the lock at the start
of packet_set_ring.

Ps. This is CVE-2016-8655 patch,
http://seclists.org/oss-sec/2016/q4/607

Change-Id: I3396f1bfe60b03082a981ae9d8a787b41cb5a529
Fixes: f6fb8f100b80 ("af-packet: TPACKET_V3 flexible buffer implementation.")
Signed-off-by: Philip Pettersson <philip.pettersson@gmail.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
7 years agommc: sdhci-s3c: add spin_unlock_irq() before calling clk_round_rate
Jaehoon Chung [Wed, 30 Nov 2016 06:05:42 +0000 (15:05 +0900)]
mmc: sdhci-s3c: add spin_unlock_irq() before calling clk_round_rate

Before calling clk_round_rate(), put the spin_unlock_irq() in
sdhci_s3c_consider_clock() function.

Change-Id: Ifedfb52d0c32eadae77b7fe3fd3040ed486a5080
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
7 years agopwm: samsung: Fix to use lowest div for large enough modulation bits
Seung-Woo Kim [Tue, 16 Aug 2016 14:22:01 +0000 (23:22 +0900)]
pwm: samsung: Fix to use lowest div for large enough modulation bits

From pwm_samsung_calc_tin(), there is routine to find the lowest divider
possible to generate lower frequency than requested one. But it is
always possible to generate requested frequency with large enough
modulation bits except on s3c24xx, so this patch fixes to use lowest div
for the case. This patch removes following UBSAN warning:

   UBSAN: Undefined behaviour in drivers/pwm/pwm-samsung.c:197:13
   shift exponent 32 is too large for 32-bit type 'long unsigned int'
   [...]
   [<c0670248>] (ubsan_epilogue) from [<c06707b4>] (__ubsan_handle_shift_out_of_bounds+0xd8/0x120)
   [<c06707b4>] (__ubsan_handle_shift_out_of_bounds) from [<c0694b28>] (pwm_samsung_config+0x508/0x6a4)
   [<c0694b28>] (pwm_samsung_config) from [<c069286c>] (pwm_apply_state+0x174/0x40c)
   [<c069286c>] (pwm_apply_state) from [<c0b2e070>] (pwm_fan_probe+0xc8/0x488)
   [<c0b2e070>] (pwm_fan_probe) from [<c07ba8b0>] (platform_drv_probe+0x70/0x150)
   [...]

Cc: Tomasz Figa <tomasz.figa@gmail.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
[Backport from mainline to remove UBSAN warning]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: Idf20ea7ccb2d20d0317e5c82498dd1e7fa3656cc

7 years agoASoC: max98090: Add extcon support for jack detection notification
Dongwoo Lee [Fri, 21 Oct 2016 02:51:46 +0000 (11:51 +0900)]
ASoC: max98090: Add extcon support for jack detection notification

This patch applies extcon for jack detection notification.
Changes in jack state is reported to input driver with snd-soc
framework, as well as to extcon framework.

Change-Id: Id46f10320b18258472521fad57cbbfc98547bb6d
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agoASoC: max98090: fix interrupt handling problem
Dongwoo Lee [Fri, 21 Oct 2016 07:51:40 +0000 (16:51 +0900)]
ASoC: max98090: fix interrupt handling problem

The max98090_interrupt handler currently will read the device status
register. After that, it will act only when the JDET bit is set.
However, when max98090_interrupt handler is triggered and jack status
register has really changed, the JDET bit of device status register
is not set as expected for unknown reason. Because of this, the jack status cannot be reported.

This patch adds a workaround solution for jack detection, by adding
the second chance to recognize the reason of interrupt generation.
If the interrupt is generated without setting any values on device
status register, jack status register is compared to the current jack
states. If the jack status is changed, the JDET bit is manually set.

Change-Id: I74f6fb54fb9cc47e292f1f8e116032faae89c063
Reported-by: Huang Chao <chao7.huang@samsung.com>
Signed-off-by: Dongwoo Lee <dwoo08.lee@samsung.com>
7 years agodrm/exynos/hdmi: fix PLL for 27MHz settings
Andrzej Hajda [Mon, 12 Dec 2016 13:18:26 +0000 (14:18 +0100)]
drm/exynos/hdmi: fix PLL for 27MHz settings

Current settings for 27MHz and 27.027MHz do not work. Use the settings from
vendor code instead.

Change-Id: I701555eff3fca430736664e0f628fc50d9a6dc4f
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/bridge/sii8620: enable interlace modes
Andrzej Hajda [Fri, 9 Dec 2016 09:56:23 +0000 (10:56 +0100)]
drm/bridge/sii8620: enable interlace modes

Bug in DECON(CRTC) driver prevented interlace modes from proper work.
Since DECON is fixed interlace modes can be enabled in MHL.

Change-Id: Ifdebbf921e173a1c10af36d678aa6f8e2921e74a
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/exynos/decon5433: do not stop DECON before reset
Andrzej Hajda [Fri, 9 Dec 2016 09:52:15 +0000 (10:52 +0100)]
drm/exynos/decon5433: do not stop DECON before reset

DECON fails to stop in reasonable time in case of interlaced mode. But since
device is reset anyway this step can be safely omitted.

Change-Id: I15a78685c9573b9799ac63b7810ff3655763e461
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/exynos/decon5433: fix porch calculation in interlaced mode
Andrzej Hajda [Fri, 9 Dec 2016 09:49:18 +0000 (10:49 +0100)]
drm/exynos/decon5433: fix porch calculation in interlaced mode

Interlaced mode requires different porch calculation in DECON.

Change-Id: I1bfc2554cd3204ebb270ab2e4a396d0f69f5a7f4
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
7 years agodrm/exynos/decon5433: signal vblank only on odd fields
Andrzej Hajda [Fri, 9 Dec 2016 09:45:20 +0000 (10:45 +0100)]
drm/exynos/decon5433: signal vblank only on odd fields

In case of interlace mode irq is generated for odd and even fields, but
vblank should be signaled only for the last emitted field.

Change-Id: Icfae5a6729a0168b4f565e79825083b39cce5ca3
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>