[PATCH] drm/radeon: enable native backlight control on old macs

Nathan-J. Hirschauer nathanhi at deepserve.info
Tue Feb 17 17:51:16 PST 2015


On Tue, 17 Feb 2015, Alex Deucher <alexdeucher_at_gmail.com> wrote:
 > Commit b7bc596ebbe0cddc97d76ef9309f64471bbf13eb accidently
 > broke backlight control on old mac laptops that use the
 > on-GPU backlight controller.
 >
 > Reported by nathanhi on IRC.
 >
 > Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
 > Cc: stable at vger.kernel.org
 > ---
 >  drivers/gpu/drm/radeon/radeon_encoders.c | 3 +++
 >  1 file changed, 3 insertions(+)
 >
 > diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c 
b/drivers/gpu/drm/radeon/radeon_encoders.c
 > index 6b670b0..275ed45 100644
 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c
 > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c
 > @@ -179,6 +179,9 @@ static void radeon_encoder_add_backlight(struct 
radeon_encoder *radeon_encoder,
 >              (rdev->pdev->subsystem_vendor == 0x1734) &&
 >              (rdev->pdev->subsystem_device == 0x1107))
 >              use_bl = false;
 > +        /* enable native backlight control on apple */
 > +        else if (rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE)
 > +            use_bl = true;
 >          /* disable native backlight control on older asics */
 >          else if (rdev->family < CHIP_R600)
 >              use_bl = false;
 > --
 > 1.8.3.1

Hi,
thanks for your patch. I've tested it but it didn't won't work as the 
graphics chip is (unfortunately) detected with PCI_VENDOR_ID_ATI instead 
of PCI_VENDOR_ID_APPLE. I therefore propose the following patch:


Commit b7bc596ebbe0 ("drm/radeon: disable native
backlight control on pre-r6xx asics (v2)") accidently
broke backlight control on old mac laptops that use the
on-GPU backlight controller.

Signed-off-by: Nathan-J. Hirschauer <nathanhi at deepserve.info>
---
  drivers/gpu/drm/radeon/radeon_encoders.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c 
b/drivers/gpu/drm/radeon/radeon_encoders.c
index 6b670b0..3a29703 100644
--- a/drivers/gpu/drm/radeon/radeon_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_encoders.c
@@ -179,9 +179,12 @@ static void radeon_encoder_add_backlight(struct 
radeon_encoder *radeon_encoder,
              (rdev->pdev->subsystem_vendor == 0x1734) &&
              (rdev->pdev->subsystem_device == 0x1107))
              use_bl = false;
+/* Older PPC macs use on-GPU backlight controller */
+#ifndef CONFIG_PPC_PMAC
          /* disable native backlight control on older asics */
          else if (rdev->family < CHIP_R600)
              use_bl = false;
+#endif
          else
              use_bl = true;
      }
-- 
2.1.4

BR,
Nathan



More information about the dri-devel mailing list