aboutsummaryrefslogtreecommitdiff
path: root/sys/powerpc/powermac
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2015-02-18 07:34:32 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2015-02-18 07:34:32 +0000
commit9fdc5d59f39e9b4c939fcd83d5760d0ddb5e692c (patch)
treecebb9b25ec82ad6e4d3f11f96545bf16e62e08e9 /sys/powerpc/powermac
parent5f41b3c1da509706f4b2f554d6e1f1eb26d08ed4 (diff)
Match the right backlight driver.
Some ATI-based PowerBooks use the string 'mnca' in the backlight controller device tree entry, so account for this and don't use nVidia when it's not an nVidia device. MFC after: 3 weeks
Notes
Notes: svn path=/head/; revision=278945
Diffstat (limited to 'sys/powerpc/powermac')
-rw-r--r--sys/powerpc/powermac/atibl.c9
-rw-r--r--sys/powerpc/powermac/nvbl.c6
2 files changed, 13 insertions, 2 deletions
diff --git a/sys/powerpc/powermac/atibl.c b/sys/powerpc/powermac/atibl.c
index 5d441116167d..3982bdf828a1 100644
--- a/sys/powerpc/powermac/atibl.c
+++ b/sys/powerpc/powermac/atibl.c
@@ -38,6 +38,11 @@ __FBSDID("$FreeBSD$");
#include <machine/bus.h>
#include <dev/ofw/openfirm.h>
+#include <dev/pci/pcivar.h>
+
+#ifndef PCI_VENDOR_ID_ATI
+#define PCI_VENDOR_ID_ATI 0x1002
+#endif
/* From the xf86-video-ati driver's radeon_reg.h */
#define RADEON_LVDS_GEN_CNTL 0x02d0
@@ -121,7 +126,9 @@ atibl_probe(device_t dev)
if (OF_getprop(handle, "backlight-control", &control, sizeof(control)) < 0)
return (ENXIO);
- if (strcmp(control, "ati") != 0)
+ if (strcmp(control, "ati") != 0 &&
+ (strcmp(control, "mnca") != 0 ||
+ pci_get_vendor(device_get_parent(dev)) != 0x1002))
return (ENXIO);
device_set_desc(dev, "PowerBook backlight for ATI graphics");
diff --git a/sys/powerpc/powermac/nvbl.c b/sys/powerpc/powermac/nvbl.c
index 12cc032fa5bf..fc7a3a9fb89f 100644
--- a/sys/powerpc/powermac/nvbl.c
+++ b/sys/powerpc/powermac/nvbl.c
@@ -38,6 +38,9 @@ __FBSDID("$FreeBSD$");
#include <machine/bus.h>
#include <dev/ofw/openfirm.h>
+#include <dev/pci/pcivar.h>
+
+#define PCI_VENDOR_ID_NVIDIA 0x10de
#define NVIDIA_BRIGHT_MIN (0x0ec)
#define NVIDIA_BRIGHT_MAX (0x538)
@@ -102,7 +105,8 @@ nvbl_probe(device_t dev)
if (OF_getprop(handle, "backlight-control", &control, sizeof(control)) < 0)
return (ENXIO);
- if (strcmp(control, "mnca") != 0)
+ if ((strcmp(control, "mnca") != 0) ||
+ pci_get_vendor(device_get_parent(dev)) != PCI_VENDOR_ID_NVIDIA)
return (ENXIO);
device_set_desc(dev, "PowerBook backlight for nVidia graphics");