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>
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>
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>
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>
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>
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>
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
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
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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
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
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
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>
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>
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>
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>
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
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
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
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
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>
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
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
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>
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
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
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>
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
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
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>
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>
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>
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
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>