From: Greg Kroah-Hartman Date: Thu, 18 Aug 2016 11:38:41 +0000 (+0200) Subject: 4.7-stable patches X-Git-Tag: v3.14.77~18 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8182b44da6ed09f9de384213084e94c1107ef5b3;p=thirdparty%2Fkernel%2Fstable-queue.git 4.7-stable patches added patches: drm-amdgpu-add-a-delay-after-atpx-dgpu-power-off.patch drm-amdgpu-disable-rpm-helpers-while-reprobing-connectors-on-resume.patch drm-amdgpu-fix-firmware-info-version-checks.patch drm-amdgpu-gmc7-add-missing-mullins-case.patch drm-amdgpu-poll-for-both-connect-disconnect-on-analog-connectors.patch drm-amdgpu-support-backlight-control-for-uniphy3.patch drm-radeon-add-a-delay-after-atpx-dgpu-power-off.patch drm-radeon-fix-firmware-info-version-checks.patch drm-radeon-poll-for-both-connect-disconnect-on-analog-connectors.patch drm-radeon-support-backlight-control-for-uniphy3.patch --- diff --git a/queue-4.7/drm-amdgpu-add-a-delay-after-atpx-dgpu-power-off.patch b/queue-4.7/drm-amdgpu-add-a-delay-after-atpx-dgpu-power-off.patch new file mode 100644 index 00000000000..1dae6398832 --- /dev/null +++ b/queue-4.7/drm-amdgpu-add-a-delay-after-atpx-dgpu-power-off.patch @@ -0,0 +1,46 @@ +From f81eb1a349d47694fe1e688336ca1b40ea3e248a Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Wed, 1 Jun 2016 12:54:33 -0400 +Subject: drm/amdgpu: add a delay after ATPX dGPU power off +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Alex Deucher + +commit f81eb1a349d47694fe1e688336ca1b40ea3e248a upstream. + +ATPX dGPU power control requires a 200ms delay between +power off and on. This should fix dGPU failures on +resume from power off. + +Reviewed-by: Hawking Zhang +Acked-by: Christian König +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include "amd_acpi.h" + +@@ -259,6 +260,10 @@ static int amdgpu_atpx_set_discrete_stat + if (!info) + return -EIO; + kfree(info); ++ ++ /* 200ms delay is required after off */ ++ if (state == 0) ++ msleep(200); + } + return 0; + } diff --git a/queue-4.7/drm-amdgpu-disable-rpm-helpers-while-reprobing-connectors-on-resume.patch b/queue-4.7/drm-amdgpu-disable-rpm-helpers-while-reprobing-connectors-on-resume.patch new file mode 100644 index 00000000000..ae0cc09ec2f --- /dev/null +++ b/queue-4.7/drm-amdgpu-disable-rpm-helpers-while-reprobing-connectors-on-resume.patch @@ -0,0 +1,72 @@ +From 23a1a9e54e71593fe5657e883662995d181d2d6b Mon Sep 17 00:00:00 2001 +From: Lyude +Date: Mon, 18 Jul 2016 11:41:37 -0400 +Subject: drm/amdgpu: Disable RPM helpers while reprobing connectors on resume + +From: Lyude + +commit 23a1a9e54e71593fe5657e883662995d181d2d6b upstream. + +Just about all of amdgpu's connector probing functions try to acquire +runtime PM refs. If we try to do this in the context of +amdgpu_resume_kms by calling drm_helper_hpd_irq_event(), we end up +deadlocking the system. + +Since we're guaranteed to be holding the spinlock for RPM in +amdgpu_resume_kms, and we already know the GPU is in working order, we +need to prevent the RPM helpers from trying to run during the initial +connector reprobe on resume. + +There's a couple of solutions I've explored for fixing this, but this +one by far seems to be the simplest and most reliable (plus I'm pretty +sure that's what disable_depth is there for anyway). + +Reproduction recipe: + - Get any laptop dual GPUs using PRIME + - Make sure runtime PM is enabled for amdgpu + - Boot the machine + - If the machine managed to boot without hanging, switch out of X to + another VT. This should definitely cause X to hang infinitely. + +Changes since v1: + - add appropriate #ifdef checks for CONFIG_PM. This is not very + useful, but it appears some kernel test suites test compiling amdgpu + with CONFIG_PM disabled, which results in this patch breaking the builds + if we don't include this #ifdef + +Cc: Alex Deucher +Reviewed-by: Alex Deucher +Signed-off-by: Lyude +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -1841,7 +1841,23 @@ int amdgpu_resume_kms(struct drm_device + } + + drm_kms_helper_poll_enable(dev); ++ ++ /* ++ * Most of the connector probing functions try to acquire runtime pm ++ * refs to ensure that the GPU is powered on when connector polling is ++ * performed. Since we're calling this from a runtime PM callback, ++ * trying to acquire rpm refs will cause us to deadlock. ++ * ++ * Since we're guaranteed to be holding the rpm lock, it's safe to ++ * temporarily disable the rpm helpers so this doesn't deadlock us. ++ */ ++#ifdef CONFIG_PM ++ dev->dev->power.disable_depth++; ++#endif + drm_helper_hpd_irq_event(dev); ++#ifdef CONFIG_PM ++ dev->dev->power.disable_depth--; ++#endif + + if (fbcon) { + amdgpu_fbdev_set_suspend(adev, 0); diff --git a/queue-4.7/drm-amdgpu-fix-firmware-info-version-checks.patch b/queue-4.7/drm-amdgpu-fix-firmware-info-version-checks.patch new file mode 100644 index 00000000000..2fe1d3c6ea8 --- /dev/null +++ b/queue-4.7/drm-amdgpu-fix-firmware-info-version-checks.patch @@ -0,0 +1,59 @@ +From a8a04c994d41a489eb0f2899893209e04e030153 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Wed, 27 Jul 2016 15:31:59 -0400 +Subject: drm/amdgpu: fix firmware info version checks + +From: Alex Deucher + +commit a8a04c994d41a489eb0f2899893209e04e030153 upstream. + +Some of the checks didn't handle frev 2 tables properly. +amdgpu doesn't support any tables pre-frev 2, so drop +the checks. + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c | 25 ++++++++----------------- + 1 file changed, 8 insertions(+), 17 deletions(-) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +@@ -551,28 +551,19 @@ int amdgpu_atombios_get_clock_info(struc + le16_to_cpu(firmware_info->info.usReferenceClock); + ppll->reference_div = 0; + +- if (crev < 2) +- ppll->pll_out_min = +- le16_to_cpu(firmware_info->info.usMinPixelClockPLL_Output); +- else +- ppll->pll_out_min = +- le32_to_cpu(firmware_info->info_12.ulMinPixelClockPLL_Output); ++ ppll->pll_out_min = ++ le32_to_cpu(firmware_info->info_12.ulMinPixelClockPLL_Output); + ppll->pll_out_max = + le32_to_cpu(firmware_info->info.ulMaxPixelClockPLL_Output); + +- if (crev >= 4) { +- ppll->lcd_pll_out_min = +- le16_to_cpu(firmware_info->info_14.usLcdMinPixelClockPLL_Output) * 100; +- if (ppll->lcd_pll_out_min == 0) +- ppll->lcd_pll_out_min = ppll->pll_out_min; +- ppll->lcd_pll_out_max = +- le16_to_cpu(firmware_info->info_14.usLcdMaxPixelClockPLL_Output) * 100; +- if (ppll->lcd_pll_out_max == 0) +- ppll->lcd_pll_out_max = ppll->pll_out_max; +- } else { ++ ppll->lcd_pll_out_min = ++ le16_to_cpu(firmware_info->info_14.usLcdMinPixelClockPLL_Output) * 100; ++ if (ppll->lcd_pll_out_min == 0) + ppll->lcd_pll_out_min = ppll->pll_out_min; ++ ppll->lcd_pll_out_max = ++ le16_to_cpu(firmware_info->info_14.usLcdMaxPixelClockPLL_Output) * 100; ++ if (ppll->lcd_pll_out_max == 0) + ppll->lcd_pll_out_max = ppll->pll_out_max; +- } + + if (ppll->pll_out_min == 0) + ppll->pll_out_min = 64800; diff --git a/queue-4.7/drm-amdgpu-gmc7-add-missing-mullins-case.patch b/queue-4.7/drm-amdgpu-gmc7-add-missing-mullins-case.patch new file mode 100644 index 00000000000..b87b3e51256 --- /dev/null +++ b/queue-4.7/drm-amdgpu-gmc7-add-missing-mullins-case.patch @@ -0,0 +1,29 @@ +From 7f555c8e5a84b348c2b76f4ca78eae7222354c03 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Fri, 29 Jul 2016 18:03:42 -0400 +Subject: drm/amdgpu/gmc7: add missing mullins case + +From: Alex Deucher + +commit 7f555c8e5a84b348c2b76f4ca78eae7222354c03 upstream. + +Looks like this got missed when we ported the code from radeon. + +Reviewed-by: Edward O'Callaghan +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c ++++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +@@ -167,6 +167,7 @@ static int gmc_v7_0_init_microcode(struc + break; + case CHIP_KAVERI: + case CHIP_KABINI: ++ case CHIP_MULLINS: + return 0; + default: BUG(); + } diff --git a/queue-4.7/drm-amdgpu-poll-for-both-connect-disconnect-on-analog-connectors.patch b/queue-4.7/drm-amdgpu-poll-for-both-connect-disconnect-on-analog-connectors.patch new file mode 100644 index 00000000000..19d77c005b5 --- /dev/null +++ b/queue-4.7/drm-amdgpu-poll-for-both-connect-disconnect-on-analog-connectors.patch @@ -0,0 +1,63 @@ +From b636a1b3d624b49b23cc1be2f9f6bcbb89aca855 Mon Sep 17 00:00:00 2001 +From: Lyude +Date: Fri, 24 Jun 2016 17:54:32 -0400 +Subject: drm/amdgpu: Poll for both connect/disconnect on analog connectors + +From: Lyude + +commit b636a1b3d624b49b23cc1be2f9f6bcbb89aca855 upstream. + +DRM_CONNECTOR_POLL_CONNECT only enables polling for connections, not +disconnections. Because of this, we end up losing hotplug polling for +analog connectors once they get connected. + +Easy way to reproduce: + - Grab a machine with an AMD GPU and a VGA port + - Plug a monitor into the VGA port, wait for it to update the connector + from disconnected to connected + - Disconnect the monitor on VGA, a hotplug event is never sent for the + removal of the connector. + +Originally, only using DRM_CONNECTOR_POLL_CONNECT might have been a good +idea since doing VGA polling can sometimes result in having to mess with +the DAC voltages to figure out whether or not there's actually something +there since VGA doesn't have HPD. Doing this would have the potential of +showing visible artifacts on the screen every time we ran a poll while a +VGA display was connected. Luckily, amdgpu_vga_detect() only resorts to +this sort of polling if the poll is forced, and DRM's polling helper +doesn't force it's polls. + +Additionally, this removes some assignments to connector->polled that +weren't actually doing anything. + +Signed-off-by: Lyude +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +@@ -1690,7 +1690,6 @@ amdgpu_connector_add(struct amdgpu_devic + DRM_MODE_SCALE_NONE); + /* no HPD on analog connectors */ + amdgpu_connector->hpd.hpd = AMDGPU_HPD_NONE; +- connector->polled = DRM_CONNECTOR_POLL_CONNECT; + connector->interlace_allowed = true; + connector->doublescan_allowed = true; + break; +@@ -1893,8 +1892,10 @@ amdgpu_connector_add(struct amdgpu_devic + } + + if (amdgpu_connector->hpd.hpd == AMDGPU_HPD_NONE) { +- if (i2c_bus->valid) +- connector->polled = DRM_CONNECTOR_POLL_CONNECT; ++ if (i2c_bus->valid) { ++ connector->polled = DRM_CONNECTOR_POLL_CONNECT | ++ DRM_CONNECTOR_POLL_DISCONNECT; ++ } + } else + connector->polled = DRM_CONNECTOR_POLL_HPD; + diff --git a/queue-4.7/drm-amdgpu-support-backlight-control-for-uniphy3.patch b/queue-4.7/drm-amdgpu-support-backlight-control-for-uniphy3.patch new file mode 100644 index 00000000000..94a9d4a7223 --- /dev/null +++ b/queue-4.7/drm-amdgpu-support-backlight-control-for-uniphy3.patch @@ -0,0 +1,28 @@ +From dba6c4fa26ccf47661be5b68dba87e746fa137d8 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Fri, 8 Jul 2016 17:19:59 -0400 +Subject: drm/amdgpu: support backlight control for UNIPHY3 + +From: Alex Deucher + +commit dba6c4fa26ccf47661be5b68dba87e746fa137d8 upstream. + +Same interface as other UNIPHY blocks + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c ++++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +@@ -98,6 +98,7 @@ amdgpu_atombios_encoder_set_backlight_le + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: ++ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: + if (dig->backlight_level == 0) + amdgpu_atombios_encoder_setup_dig_transmitter(encoder, + ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0); diff --git a/queue-4.7/drm-radeon-add-a-delay-after-atpx-dgpu-power-off.patch b/queue-4.7/drm-radeon-add-a-delay-after-atpx-dgpu-power-off.patch new file mode 100644 index 00000000000..a15566e8855 --- /dev/null +++ b/queue-4.7/drm-radeon-add-a-delay-after-atpx-dgpu-power-off.patch @@ -0,0 +1,46 @@ +From d814b24fb74cb9797d70cb8053961447c5879a5c Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Wed, 1 Jun 2016 12:58:36 -0400 +Subject: drm/radeon: add a delay after ATPX dGPU power off +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Alex Deucher + +commit d814b24fb74cb9797d70cb8053961447c5879a5c upstream. + +ATPX dGPU power control requires a 200ms delay between +power off and on. This should fix dGPU failures on +resume from power off. + +Reviewed-by: Hawking Zhang +Acked-by: Christian König +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/radeon_atpx_handler.c | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c ++++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include "radeon_acpi.h" + +@@ -258,6 +259,10 @@ static int radeon_atpx_set_discrete_stat + if (!info) + return -EIO; + kfree(info); ++ ++ /* 200ms delay is required after off */ ++ if (state == 0) ++ msleep(200); + } + return 0; + } diff --git a/queue-4.7/drm-radeon-fix-firmware-info-version-checks.patch b/queue-4.7/drm-radeon-fix-firmware-info-version-checks.patch new file mode 100644 index 00000000000..1ddfd7cee3d --- /dev/null +++ b/queue-4.7/drm-radeon-fix-firmware-info-version-checks.patch @@ -0,0 +1,38 @@ +From 3edc38a0facef45ee22af8afdce3737f421f36ab Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Wed, 27 Jul 2016 15:28:56 -0400 +Subject: drm/radeon: fix firmware info version checks + +From: Alex Deucher + +commit 3edc38a0facef45ee22af8afdce3737f421f36ab upstream. + +Some of the checks didn't handle frev 2 tables properly. + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/radeon_atombios.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/radeon/radeon_atombios.c ++++ b/drivers/gpu/drm/radeon/radeon_atombios.c +@@ -1155,7 +1155,7 @@ bool radeon_atom_get_clock_info(struct d + le16_to_cpu(firmware_info->info.usReferenceClock); + p1pll->reference_div = 0; + +- if (crev < 2) ++ if ((frev < 2) && (crev < 2)) + p1pll->pll_out_min = + le16_to_cpu(firmware_info->info.usMinPixelClockPLL_Output); + else +@@ -1164,7 +1164,7 @@ bool radeon_atom_get_clock_info(struct d + p1pll->pll_out_max = + le32_to_cpu(firmware_info->info.ulMaxPixelClockPLL_Output); + +- if (crev >= 4) { ++ if (((frev < 2) && (crev >= 4)) || (frev >= 2)) { + p1pll->lcd_pll_out_min = + le16_to_cpu(firmware_info->info_14.usLcdMinPixelClockPLL_Output) * 100; + if (p1pll->lcd_pll_out_min == 0) diff --git a/queue-4.7/drm-radeon-poll-for-both-connect-disconnect-on-analog-connectors.patch b/queue-4.7/drm-radeon-poll-for-both-connect-disconnect-on-analog-connectors.patch new file mode 100644 index 00000000000..380736628ed --- /dev/null +++ b/queue-4.7/drm-radeon-poll-for-both-connect-disconnect-on-analog-connectors.patch @@ -0,0 +1,87 @@ +From 14ff8d48f2235295dfb3117693008e367b49cdb5 Mon Sep 17 00:00:00 2001 +From: Lyude +Date: Fri, 24 Jun 2016 17:54:31 -0400 +Subject: drm/radeon: Poll for both connect/disconnect on analog connectors + +From: Lyude + +commit 14ff8d48f2235295dfb3117693008e367b49cdb5 upstream. + +DRM_CONNECTOR_POLL_CONNECT only enables polling for connections, not +disconnections. Because of this, we end up losing hotplug polling for +analog connectors once they get connected. + +Easy way to reproduce: + - Grab a machine with a radeon GPU and a VGA port + - Plug a monitor into the VGA port, wait for it to update the connector + from disconnected to connected + - Disconnect the monitor on VGA, a hotplug event is never sent for the + removal of the connector. + +Originally, only using DRM_CONNECTOR_POLL_CONNECT might have been a good +idea since doing VGA polling can sometimes result in having to mess with +the DAC voltages to figure out whether or not there's actually something +there since VGA doesn't have HPD. Doing this would have the potential of +showing visible artifacts on the screen every time we ran a poll while a +VGA display was connected. Luckily, radeon_vga_detect() only resorts to +this sort of polling if the poll is forced, and DRM's polling helper +doesn't force it's polls. + +Additionally, this removes some assignments to connector->polled that +weren't actually doing anything. + +Signed-off-by: Lyude +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/radeon_connectors.c | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +--- a/drivers/gpu/drm/radeon/radeon_connectors.c ++++ b/drivers/gpu/drm/radeon/radeon_connectors.c +@@ -2064,7 +2064,6 @@ radeon_add_atom_connector(struct drm_dev + RADEON_OUTPUT_CSC_BYPASS); + /* no HPD on analog connectors */ + radeon_connector->hpd.hpd = RADEON_HPD_NONE; +- connector->polled = DRM_CONNECTOR_POLL_CONNECT; + connector->interlace_allowed = true; + connector->doublescan_allowed = true; + break; +@@ -2314,8 +2313,10 @@ radeon_add_atom_connector(struct drm_dev + } + + if (radeon_connector->hpd.hpd == RADEON_HPD_NONE) { +- if (i2c_bus->valid) +- connector->polled = DRM_CONNECTOR_POLL_CONNECT; ++ if (i2c_bus->valid) { ++ connector->polled = DRM_CONNECTOR_POLL_CONNECT | ++ DRM_CONNECTOR_POLL_DISCONNECT; ++ } + } else + connector->polled = DRM_CONNECTOR_POLL_HPD; + +@@ -2391,7 +2392,6 @@ radeon_add_legacy_connector(struct drm_d + 1); + /* no HPD on analog connectors */ + radeon_connector->hpd.hpd = RADEON_HPD_NONE; +- connector->polled = DRM_CONNECTOR_POLL_CONNECT; + connector->interlace_allowed = true; + connector->doublescan_allowed = true; + break; +@@ -2476,10 +2476,13 @@ radeon_add_legacy_connector(struct drm_d + } + + if (radeon_connector->hpd.hpd == RADEON_HPD_NONE) { +- if (i2c_bus->valid) +- connector->polled = DRM_CONNECTOR_POLL_CONNECT; ++ if (i2c_bus->valid) { ++ connector->polled = DRM_CONNECTOR_POLL_CONNECT | ++ DRM_CONNECTOR_POLL_DISCONNECT; ++ } + } else + connector->polled = DRM_CONNECTOR_POLL_HPD; ++ + connector->display_info.subpixel_order = subpixel_order; + drm_connector_register(connector); + } diff --git a/queue-4.7/drm-radeon-support-backlight-control-for-uniphy3.patch b/queue-4.7/drm-radeon-support-backlight-control-for-uniphy3.patch new file mode 100644 index 00000000000..83092dcca15 --- /dev/null +++ b/queue-4.7/drm-radeon-support-backlight-control-for-uniphy3.patch @@ -0,0 +1,28 @@ +From d3200be6c423afa1c34f7e39e9f6d04dd5b0af9d Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Fri, 8 Jul 2016 17:27:04 -0400 +Subject: drm/radeon: support backlight control for UNIPHY3 + +From: Alex Deucher + +commit d3200be6c423afa1c34f7e39e9f6d04dd5b0af9d upstream. + +Same interface as other UNIPHY blocks + +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/atombios_encoders.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/radeon/atombios_encoders.c ++++ b/drivers/gpu/drm/radeon/atombios_encoders.c +@@ -120,6 +120,7 @@ atombios_set_backlight_level(struct rade + case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: + case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: ++ case ENCODER_OBJECT_ID_INTERNAL_UNIPHY3: + if (dig->backlight_level == 0) + atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_LCD_BLOFF, 0, 0); + else { diff --git a/queue-4.7/series b/queue-4.7/series index 2d2bafa786c..11b7d2287e1 100644 --- a/queue-4.7/series +++ b/queue-4.7/series @@ -116,3 +116,13 @@ clk-rockchip-fix-incorrect-rk3399-spdif-dptx-divider-bits.patch soc-qcom-smp2p-correct-addressing-of-outgoing-value.patch netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch w1-omap_hdq-fix-regression.patch +drm-amdgpu-add-a-delay-after-atpx-dgpu-power-off.patch +drm-amdgpu-poll-for-both-connect-disconnect-on-analog-connectors.patch +drm-amdgpu-support-backlight-control-for-uniphy3.patch +drm-amdgpu-disable-rpm-helpers-while-reprobing-connectors-on-resume.patch +drm-amdgpu-fix-firmware-info-version-checks.patch +drm-amdgpu-gmc7-add-missing-mullins-case.patch +drm-radeon-add-a-delay-after-atpx-dgpu-power-off.patch +drm-radeon-poll-for-both-connect-disconnect-on-analog-connectors.patch +drm-radeon-fix-firmware-info-version-checks.patch +drm-radeon-support-backlight-control-for-uniphy3.patch