Linux v3.19-8975-g3d883483dc0a
- Add patch to fix intermittent hangs in nouveau driver - Move mtpspi and related mods to kernel-core for VMWare guests (rhbz 1194612)
This commit is contained in:
parent
6bfe64015d
commit
2296e4a647
@ -29,7 +29,7 @@ index 72665eb80692..2c7b80d31366 100644
|
|||||||
+
|
+
|
||||||
#endif /* _KEYS_SYSTEM_KEYRING_H */
|
#endif /* _KEYS_SYSTEM_KEYRING_H */
|
||||||
diff --git a/init/Kconfig b/init/Kconfig
|
diff --git a/init/Kconfig b/init/Kconfig
|
||||||
index 058e3671fa11..ee83b7c6856c 100644
|
index f5dbc6d4261b..eca8ab59ae7f 100644
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1734,6 +1734,15 @@ config SYSTEM_TRUSTED_KEYRING
|
@@ -1734,6 +1734,15 @@ config SYSTEM_TRUSTED_KEYRING
|
||||||
|
@ -43,7 +43,7 @@ Signed-off-by: Josh Stone <jistone@redhat.com>
|
|||||||
2 files changed, 21 insertions(+), 1 deletion(-)
|
2 files changed, 21 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
diff --git a/Makefile b/Makefile
|
||||||
index dd8796caa239..edbbaccff485 100644
|
index 19e256ae2679..376e8a456f72 100644
|
||||||
--- a/Makefile
|
--- a/Makefile
|
||||||
+++ b/Makefile
|
+++ b/Makefile
|
||||||
@@ -706,7 +706,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
@@ -706,7 +706,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer
|
||||||
|
@ -42,7 +42,7 @@ index 706b16fa6de8..470e8dfcb517 100644
|
|||||||
efi_guid_t guid;
|
efi_guid_t guid;
|
||||||
u64 table;
|
u64 table;
|
||||||
diff --git a/init/Kconfig b/init/Kconfig
|
diff --git a/init/Kconfig b/init/Kconfig
|
||||||
index ee83b7c6856c..3b9ecb2d12af 100644
|
index eca8ab59ae7f..9a782b02e4d5 100644
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1888,6 +1888,15 @@ config MODULE_SIG_ALL
|
@@ -1888,6 +1888,15 @@ config MODULE_SIG_ALL
|
||||||
|
@ -232,6 +232,7 @@ CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y
|
|||||||
CONFIG_ARM_EXYNOS_CPUIDLE=y
|
CONFIG_ARM_EXYNOS_CPUIDLE=y
|
||||||
CONFIG_ARM_EXYNOS5_BUS_DEVFREQ=m
|
CONFIG_ARM_EXYNOS5_BUS_DEVFREQ=m
|
||||||
# CONFIG_EXYNOS5420_MCPM not set
|
# CONFIG_EXYNOS5420_MCPM not set
|
||||||
|
CONFIG_ARM_EXYNOS_CPUFREQ=m
|
||||||
|
|
||||||
CONFIG_I2C_EXYNOS5=m
|
CONFIG_I2C_EXYNOS5=m
|
||||||
CONFIG_I2C_S3C2410=m
|
CONFIG_I2C_S3C2410=m
|
||||||
|
@ -9,7 +9,7 @@ Upstream-status: Fedora mustard
|
|||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/init/Kconfig b/init/Kconfig
|
diff --git a/init/Kconfig b/init/Kconfig
|
||||||
index 3b9ecb2d12af..e2e09df716d1 100644
|
index 9a782b02e4d5..d97b5032d4b0 100644
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1135,7 +1135,7 @@ config DEBUG_BLK_CGROUP
|
@@ -1135,7 +1135,7 @@ config DEBUG_BLK_CGROUP
|
||||||
|
135
fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
Normal file
135
fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
From: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
Date: Tue, 27 Jan 2015 15:09:39 +1000
|
||||||
|
Subject: [PATCH] fifo/nv04: remove the loop from the interrupt handler
|
||||||
|
|
||||||
|
Complete bong hit (and not the last...), the hardware will reassert the
|
||||||
|
interrupt to PMC if it's necessary.
|
||||||
|
|
||||||
|
Also potentially harmful in the face of interrupts such as the non-stall
|
||||||
|
interrupt, which remain active in NV_PFIFO_INTR even when we don't care
|
||||||
|
about servicing it.
|
||||||
|
|
||||||
|
It appears (hopefully, fdo#87244), that under certain loads, the methods
|
||||||
|
may pass quickly enough to hit the "100 spins and kill PFIFO" thing that
|
||||||
|
we had going on. Not ideal ;)
|
||||||
|
|
||||||
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c | 85 ++++++++++---------------
|
||||||
|
1 file changed, 35 insertions(+), 50 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
|
||||||
|
index b038b6eb51db..043e4296084c 100644
|
||||||
|
--- a/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
|
||||||
|
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/fifo/nv04.c
|
||||||
|
@@ -502,72 +502,57 @@ nv04_fifo_intr(struct nvkm_subdev *subdev)
|
||||||
|
{
|
||||||
|
struct nvkm_device *device = nv_device(subdev);
|
||||||
|
struct nv04_fifo_priv *priv = (void *)subdev;
|
||||||
|
- uint32_t status, reassign;
|
||||||
|
- int cnt = 0;
|
||||||
|
+ u32 mask = nv_rd32(priv, NV03_PFIFO_INTR_EN_0);
|
||||||
|
+ u32 stat = nv_rd32(priv, NV03_PFIFO_INTR_0) & mask;
|
||||||
|
+ u32 reassign, chid, get, sem;
|
||||||
|
|
||||||
|
reassign = nv_rd32(priv, NV03_PFIFO_CACHES) & 1;
|
||||||
|
- while ((status = nv_rd32(priv, NV03_PFIFO_INTR_0)) && (cnt++ < 100)) {
|
||||||
|
- uint32_t chid, get;
|
||||||
|
-
|
||||||
|
- nv_wr32(priv, NV03_PFIFO_CACHES, 0);
|
||||||
|
-
|
||||||
|
- chid = nv_rd32(priv, NV03_PFIFO_CACHE1_PUSH1) & priv->base.max;
|
||||||
|
- get = nv_rd32(priv, NV03_PFIFO_CACHE1_GET);
|
||||||
|
+ nv_wr32(priv, NV03_PFIFO_CACHES, 0);
|
||||||
|
|
||||||
|
- if (status & NV_PFIFO_INTR_CACHE_ERROR) {
|
||||||
|
- nv04_fifo_cache_error(device, priv, chid, get);
|
||||||
|
- status &= ~NV_PFIFO_INTR_CACHE_ERROR;
|
||||||
|
- }
|
||||||
|
+ chid = nv_rd32(priv, NV03_PFIFO_CACHE1_PUSH1) & priv->base.max;
|
||||||
|
+ get = nv_rd32(priv, NV03_PFIFO_CACHE1_GET);
|
||||||
|
|
||||||
|
- if (status & NV_PFIFO_INTR_DMA_PUSHER) {
|
||||||
|
- nv04_fifo_dma_pusher(device, priv, chid);
|
||||||
|
- status &= ~NV_PFIFO_INTR_DMA_PUSHER;
|
||||||
|
- }
|
||||||
|
+ if (stat & NV_PFIFO_INTR_CACHE_ERROR) {
|
||||||
|
+ nv04_fifo_cache_error(device, priv, chid, get);
|
||||||
|
+ stat &= ~NV_PFIFO_INTR_CACHE_ERROR;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (status & NV_PFIFO_INTR_SEMAPHORE) {
|
||||||
|
- uint32_t sem;
|
||||||
|
+ if (stat & NV_PFIFO_INTR_DMA_PUSHER) {
|
||||||
|
+ nv04_fifo_dma_pusher(device, priv, chid);
|
||||||
|
+ stat &= ~NV_PFIFO_INTR_DMA_PUSHER;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- status &= ~NV_PFIFO_INTR_SEMAPHORE;
|
||||||
|
- nv_wr32(priv, NV03_PFIFO_INTR_0,
|
||||||
|
- NV_PFIFO_INTR_SEMAPHORE);
|
||||||
|
+ if (stat & NV_PFIFO_INTR_SEMAPHORE) {
|
||||||
|
+ stat &= ~NV_PFIFO_INTR_SEMAPHORE;
|
||||||
|
+ nv_wr32(priv, NV03_PFIFO_INTR_0, NV_PFIFO_INTR_SEMAPHORE);
|
||||||
|
|
||||||
|
- sem = nv_rd32(priv, NV10_PFIFO_CACHE1_SEMAPHORE);
|
||||||
|
- nv_wr32(priv, NV10_PFIFO_CACHE1_SEMAPHORE, sem | 0x1);
|
||||||
|
+ sem = nv_rd32(priv, NV10_PFIFO_CACHE1_SEMAPHORE);
|
||||||
|
+ nv_wr32(priv, NV10_PFIFO_CACHE1_SEMAPHORE, sem | 0x1);
|
||||||
|
|
||||||
|
- nv_wr32(priv, NV03_PFIFO_CACHE1_GET, get + 4);
|
||||||
|
- nv_wr32(priv, NV04_PFIFO_CACHE1_PULL0, 1);
|
||||||
|
- }
|
||||||
|
+ nv_wr32(priv, NV03_PFIFO_CACHE1_GET, get + 4);
|
||||||
|
+ nv_wr32(priv, NV04_PFIFO_CACHE1_PULL0, 1);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if (device->card_type == NV_50) {
|
||||||
|
- if (status & 0x00000010) {
|
||||||
|
- status &= ~0x00000010;
|
||||||
|
- nv_wr32(priv, 0x002100, 0x00000010);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (status & 0x40000000) {
|
||||||
|
- nv_wr32(priv, 0x002100, 0x40000000);
|
||||||
|
- nvkm_fifo_uevent(&priv->base);
|
||||||
|
- status &= ~0x40000000;
|
||||||
|
- }
|
||||||
|
+ if (device->card_type == NV_50) {
|
||||||
|
+ if (stat & 0x00000010) {
|
||||||
|
+ stat &= ~0x00000010;
|
||||||
|
+ nv_wr32(priv, 0x002100, 0x00000010);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (status) {
|
||||||
|
- nv_warn(priv, "unknown intr 0x%08x, ch %d\n",
|
||||||
|
- status, chid);
|
||||||
|
- nv_wr32(priv, NV03_PFIFO_INTR_0, status);
|
||||||
|
- status = 0;
|
||||||
|
+ if (stat & 0x40000000) {
|
||||||
|
+ nv_wr32(priv, 0x002100, 0x40000000);
|
||||||
|
+ nvkm_fifo_uevent(&priv->base);
|
||||||
|
+ stat &= ~0x40000000;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
- nv_wr32(priv, NV03_PFIFO_CACHES, reassign);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (status) {
|
||||||
|
- nv_error(priv, "still angry after %d spins, halt\n", cnt);
|
||||||
|
- nv_wr32(priv, 0x002140, 0);
|
||||||
|
- nv_wr32(priv, 0x000140, 0);
|
||||||
|
+ if (stat) {
|
||||||
|
+ nv_warn(priv, "unknown intr 0x%08x\n", stat);
|
||||||
|
+ nv_mask(priv, NV03_PFIFO_INTR_EN_0, stat, 0x00000000);
|
||||||
|
+ nv_wr32(priv, NV03_PFIFO_INTR_0, stat);
|
||||||
|
}
|
||||||
|
|
||||||
|
- nv_wr32(priv, 0x000100, 0x00000100);
|
||||||
|
+ nv_wr32(priv, NV03_PFIFO_CACHES, reassign);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
@ -9,6 +9,6 @@
|
|||||||
# modifications to the overrides below. If something should be removed across
|
# modifications to the overrides below. If something should be removed across
|
||||||
# all arches, remove it in the default instead of per-arch.
|
# all arches, remove it in the default instead of per-arch.
|
||||||
|
|
||||||
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
driverdirs="atm auxdisplay bcma bluetooth fmc infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation target_core_user"
|
singlemods="ntb_netdev iscsi_ibft iscsi_boot_sysfs iscsi_tcp megaraid pmcraid qla1280 9pnet_rdma svcrdma xprtrdma hid-picolcd hid-prodikeys hwa-hc hwpoison-inject hid-sensor-hub hid-sensor-magn-3d hid-sensor-incl-3d hid-sensor-gyro-3d hid-sensor-iio-common hid-sensor-accel-3d hid-sensor-trigger hid-sensor-als hid-sensor-rotation target_core_user"
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# listed here.
|
# listed here.
|
||||||
|
|
||||||
# Set the default dirs/modules to filter out
|
# Set the default dirs/modules to filter out
|
||||||
driverdirs="atm auxdisplay bcma bluetooth fmc iio infiniband isdn leds media memstick message mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
driverdirs="atm auxdisplay bcma bluetooth fmc iio infiniband isdn leds media memstick mfd mmc mtd nfc ntb pcmcia platform power ssb staging uio uwb"
|
||||||
|
|
||||||
netdrvs="appletalk dsa hamradio ieee802154 irda ppp slip usb wireless"
|
netdrvs="appletalk dsa hamradio ieee802154 irda ppp slip usb wireless"
|
||||||
|
|
||||||
|
15
kernel.spec
15
kernel.spec
@ -69,7 +69,7 @@ Summary: The Linux kernel
|
|||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 0
|
%define rcrev 0
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 9
|
%define gitrev 10
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 3.%{upstream_sublevel}.0
|
%define rpmversion 3.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
@ -606,8 +606,6 @@ Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
|||||||
#rhbz 1111138
|
#rhbz 1111138
|
||||||
Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
Patch26059: i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
||||||
|
|
||||||
#rhbz 1115713
|
|
||||||
Patch26129: samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
|
|
||||||
#rhbz 1094948
|
#rhbz 1094948
|
||||||
Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
||||||
|
|
||||||
@ -622,6 +620,8 @@ Patch26135: ASLR-fix-stack-randomization-on-64-bit-systems.patch
|
|||||||
#CVE-XXXX-XXXX rhbz 1189864 1192079
|
#CVE-XXXX-XXXX rhbz 1189864 1192079
|
||||||
Patch26136: vhost-scsi-potential-memory-corruption.patch
|
Patch26136: vhost-scsi-potential-memory-corruption.patch
|
||||||
|
|
||||||
|
Patch26137: fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
|
||||||
|
|
||||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||||
Patch30000: kernel-arm64.patch
|
Patch30000: kernel-arm64.patch
|
||||||
Patch30001: kernel-arm64-fix-psci-when-pg.patch
|
Patch30001: kernel-arm64-fix-psci-when-pg.patch
|
||||||
@ -1338,8 +1338,6 @@ ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
|||||||
#rhbz 1111138
|
#rhbz 1111138
|
||||||
ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
ApplyPatch i8042-Add-notimeout-quirk-for-Fujitsu-Lifebook-A544-.patch
|
||||||
|
|
||||||
#rhbz 1115713
|
|
||||||
ApplyPatch samsung-laptop-Add-use_native_backlight-quirk-and-en.patch
|
|
||||||
#rhbz 1094948
|
#rhbz 1094948
|
||||||
ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
||||||
|
|
||||||
@ -1354,6 +1352,8 @@ ApplyPatch ASLR-fix-stack-randomization-on-64-bit-systems.patch
|
|||||||
#CVE-XXXX-XXXX rhbz 1189864 1192079
|
#CVE-XXXX-XXXX rhbz 1189864 1192079
|
||||||
ApplyPatch vhost-scsi-potential-memory-corruption.patch
|
ApplyPatch vhost-scsi-potential-memory-corruption.patch
|
||||||
|
|
||||||
|
ApplyPatch fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch
|
||||||
|
|
||||||
%if 0%{?aarch64patches}
|
%if 0%{?aarch64patches}
|
||||||
ApplyPatch kernel-arm64.patch
|
ApplyPatch kernel-arm64.patch
|
||||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||||
@ -2212,6 +2212,11 @@ fi
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 20 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.20.0-0.rc0.git10.1
|
||||||
|
- Linux v3.19-8975-g3d883483dc0a
|
||||||
|
- Add patch to fix intermittent hangs in nouveau driver
|
||||||
|
- Move mtpspi and related mods to kernel-core for VMWare guests (rhbz 1194612)
|
||||||
|
|
||||||
* Wed Feb 18 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.20.0-0.rc0.git9.1
|
* Wed Feb 18 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.20.0-0.rc0.git9.1
|
||||||
- Linux v3.19-8784-gb2b89ebfc0f0
|
- Linux v3.19-8784-gb2b89ebfc0f0
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
|||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/lib/Kconfig b/lib/Kconfig
|
diff --git a/lib/Kconfig b/lib/Kconfig
|
||||||
index cb9758e0ba0c..8687e26fd8c8 100644
|
index 87da53bb1fef..c767ba0cbab7 100644
|
||||||
--- a/lib/Kconfig
|
--- a/lib/Kconfig
|
||||||
+++ b/lib/Kconfig
|
+++ b/lib/Kconfig
|
||||||
@@ -391,7 +391,8 @@ config CHECK_SIGNATURE
|
@@ -391,7 +391,8 @@ config CHECK_SIGNATURE
|
||||||
|
@ -1,107 +0,0 @@
|
|||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Date: Fri, 9 Jan 2015 14:51:21 +0100
|
|
||||||
Subject: [PATCH] samsung-laptop: Add use_native_backlight quirk, and enable it
|
|
||||||
on some models
|
|
||||||
|
|
||||||
Since kernel 3.14 the backlight control has been broken on various Samsung
|
|
||||||
Atom based netbooks. This has been bisected and this problem happens since
|
|
||||||
commit b35684b8fa94 ("drm/i915: do full backlight setup at enable time")
|
|
||||||
|
|
||||||
This has been reported and discussed in detail here:
|
|
||||||
http://lists.freedesktop.org/archives/intel-gfx/2014-July/049395.html
|
|
||||||
|
|
||||||
Unfortunately no-one has been able to fix this. This only affects Samsung
|
|
||||||
Atom netbooks, and the Linux kernel and the BIOS of those laptops have never
|
|
||||||
worked well together. All affected laptops already have a quirk to avoid using
|
|
||||||
the standard acpi-video interface and instead use the samsung specific SABI
|
|
||||||
interface which samsung-laptop uses. It seems that recent fixes to the i915
|
|
||||||
driver have also broken backlight control through the SABI interface.
|
|
||||||
|
|
||||||
The intel_backlight driver OTOH works fine, and also allows for finer grained
|
|
||||||
backlight control. So add a new use_native_backlight quirk, and replace the
|
|
||||||
broken_acpi_video quirk with this quirk for affected models. This new quirk
|
|
||||||
disables acpi-video as before and also stops samsung-laptop from registering
|
|
||||||
the SABI based samsung_laptop backlight interface, leaving only the working
|
|
||||||
intel_backlight interface.
|
|
||||||
|
|
||||||
This commit enables this new quirk for 3 models which are known to be affected,
|
|
||||||
chances are that it needs to be used on other models too.
|
|
||||||
|
|
||||||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1094948 # N145P
|
|
||||||
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1115713 # N250P
|
|
||||||
Reported-by: Bertrik Sikken <bertrik@sikken.nl> # N150P
|
|
||||||
Cc: stable@vger.kernel.org # 3.16
|
|
||||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
---
|
|
||||||
drivers/platform/x86/samsung-laptop.c | 20 +++++++++++++++++---
|
|
||||||
1 file changed, 17 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
|
|
||||||
index ff765d8e1a09..ce364a41842a 100644
|
|
||||||
--- a/drivers/platform/x86/samsung-laptop.c
|
|
||||||
+++ b/drivers/platform/x86/samsung-laptop.c
|
|
||||||
@@ -353,6 +353,7 @@ struct samsung_quirks {
|
|
||||||
bool broken_acpi_video;
|
|
||||||
bool four_kbd_backlight_levels;
|
|
||||||
bool enable_kbd_backlight;
|
|
||||||
+ bool use_native_backlight;
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct samsung_quirks samsung_unknown = {};
|
|
||||||
@@ -361,6 +362,10 @@ static struct samsung_quirks samsung_broken_acpi_video = {
|
|
||||||
.broken_acpi_video = true,
|
|
||||||
};
|
|
||||||
|
|
||||||
+static struct samsung_quirks samsung_use_native_backlight = {
|
|
||||||
+ .use_native_backlight = true,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static struct samsung_quirks samsung_np740u3e = {
|
|
||||||
.four_kbd_backlight_levels = true,
|
|
||||||
.enable_kbd_backlight = true,
|
|
||||||
@@ -1507,7 +1512,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "N150P"),
|
|
||||||
DMI_MATCH(DMI_BOARD_NAME, "N150P"),
|
|
||||||
},
|
|
||||||
- .driver_data = &samsung_broken_acpi_video,
|
|
||||||
+ .driver_data = &samsung_use_native_backlight,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.callback = samsung_dmi_matched,
|
|
||||||
@@ -1517,7 +1522,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
|
|
||||||
DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
|
|
||||||
},
|
|
||||||
- .driver_data = &samsung_broken_acpi_video,
|
|
||||||
+ .driver_data = &samsung_use_native_backlight,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.callback = samsung_dmi_matched,
|
|
||||||
@@ -1557,7 +1562,7 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "N250P"),
|
|
||||||
DMI_MATCH(DMI_BOARD_NAME, "N250P"),
|
|
||||||
},
|
|
||||||
- .driver_data = &samsung_broken_acpi_video,
|
|
||||||
+ .driver_data = &samsung_use_native_backlight,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.callback = samsung_dmi_matched,
|
|
||||||
@@ -1616,6 +1621,15 @@ static int __init samsung_init(void)
|
|
||||||
pr_info("Disabling ACPI video driver\n");
|
|
||||||
acpi_video_unregister();
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ if (samsung->quirks->use_native_backlight) {
|
|
||||||
+ pr_info("Using native backlight driver\n");
|
|
||||||
+ /* Tell acpi-video to not handle the backlight */
|
|
||||||
+ acpi_video_dmi_promote_vendor();
|
|
||||||
+ acpi_video_unregister();
|
|
||||||
+ /* And also do not handle it ourselves */
|
|
||||||
+ samsung->handle_backlight = false;
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ret = samsung_platform_init(samsung);
|
|
||||||
--
|
|
||||||
2.1.0
|
|
||||||
|
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
d3fc8316d4d4d04b65cbc2d70799e763 linux-3.19.tar.xz
|
d3fc8316d4d4d04b65cbc2d70799e763 linux-3.19.tar.xz
|
||||||
15d8d2f97ce056488451a5bfb2944603 perf-man-3.19.tar.gz
|
15d8d2f97ce056488451a5bfb2944603 perf-man-3.19.tar.gz
|
||||||
af577efdd72c39570ba52854e2276d78 patch-3.19-git9.xz
|
d7783c6837600b2db12ff9bc603de6c0 patch-3.19-git10.xz
|
||||||
|
Loading…
Reference in New Issue
Block a user