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 */ | ||||
| diff --git a/init/Kconfig b/init/Kconfig
 | ||||
| index 058e3671fa11..ee83b7c6856c 100644
 | ||||
| index f5dbc6d4261b..eca8ab59ae7f 100644
 | ||||
| --- a/init/Kconfig
 | ||||
| +++ b/init/Kconfig
 | ||||
| @@ -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(-) | ||||
| 
 | ||||
| diff --git a/Makefile b/Makefile
 | ||||
| index dd8796caa239..edbbaccff485 100644
 | ||||
| index 19e256ae2679..376e8a456f72 100644
 | ||||
| --- a/Makefile
 | ||||
| +++ b/Makefile
 | ||||
| @@ -706,7 +706,11 @@ KBUILD_CFLAGS	+= -fomit-frame-pointer
 | ||||
|  | ||||
| @ -42,7 +42,7 @@ index 706b16fa6de8..470e8dfcb517 100644 | ||||
|  	efi_guid_t guid; | ||||
|  	u64 table; | ||||
| diff --git a/init/Kconfig b/init/Kconfig
 | ||||
| index ee83b7c6856c..3b9ecb2d12af 100644
 | ||||
| index eca8ab59ae7f..9a782b02e4d5 100644
 | ||||
| --- a/init/Kconfig
 | ||||
| +++ b/init/Kconfig
 | ||||
| @@ -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_EXYNOS5_BUS_DEVFREQ=m | ||||
| # CONFIG_EXYNOS5420_MCPM not set | ||||
| CONFIG_ARM_EXYNOS_CPUFREQ=m | ||||
| 
 | ||||
| CONFIG_I2C_EXYNOS5=m | ||||
| CONFIG_I2C_S3C2410=m | ||||
|  | ||||
| @ -9,7 +9,7 @@ Upstream-status: Fedora mustard | ||||
|  1 file changed, 2 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/init/Kconfig b/init/Kconfig
 | ||||
| index 3b9ecb2d12af..e2e09df716d1 100644
 | ||||
| index 9a782b02e4d5..d97b5032d4b0 100644
 | ||||
| --- a/init/Kconfig
 | ||||
| +++ b/init/Kconfig
 | ||||
| @@ -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 | ||||
| # 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" | ||||
|  | ||||
| @ -14,7 +14,7 @@ | ||||
| # listed here. | ||||
| 
 | ||||
| # 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" | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								kernel.spec
									
									
									
									
									
								
							| @ -69,7 +69,7 @@ Summary: The Linux kernel | ||||
| # The rc snapshot level | ||||
| %define rcrev 0 | ||||
| # The git snapshot level | ||||
| %define gitrev 9 | ||||
| %define gitrev 10 | ||||
| # Set rpm version accordingly | ||||
| %define rpmversion 3.%{upstream_sublevel}.0 | ||||
| %endif | ||||
| @ -606,8 +606,6 @@ Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch | ||||
| #rhbz 1111138 | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
| Patch30000: kernel-arm64.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 | ||||
| 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 | ||||
| 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 | ||||
| ApplyPatch vhost-scsi-potential-memory-corruption.patch | ||||
| 
 | ||||
| ApplyPatch fifo-nv04-remove-the-loop-from-the-interrupt-handler.patch | ||||
| 
 | ||||
| %if 0%{?aarch64patches} | ||||
| ApplyPatch kernel-arm64.patch | ||||
| %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. | ||||
| @ -2212,6 +2212,11 @@ fi | ||||
| # | ||||
| #  | ||||
| %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 | ||||
| - Linux v3.19-8784-gb2b89ebfc0f0 | ||||
| 
 | ||||
|  | ||||
| @ -19,7 +19,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org> | ||||
|  1 file changed, 2 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/lib/Kconfig b/lib/Kconfig
 | ||||
| index cb9758e0ba0c..8687e26fd8c8 100644
 | ||||
| index 87da53bb1fef..c767ba0cbab7 100644
 | ||||
| --- a/lib/Kconfig
 | ||||
| +++ b/lib/Kconfig
 | ||||
| @@ -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 | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user