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
This commit is contained in:
parent
0748f8dde9
commit
8f7883a879
@ -38,6 +38,11 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <machine/bus.h>
|
#include <machine/bus.h>
|
||||||
|
|
||||||
#include <dev/ofw/openfirm.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 */
|
/* From the xf86-video-ati driver's radeon_reg.h */
|
||||||
#define RADEON_LVDS_GEN_CNTL 0x02d0
|
#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)
|
if (OF_getprop(handle, "backlight-control", &control, sizeof(control)) < 0)
|
||||||
return (ENXIO);
|
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);
|
return (ENXIO);
|
||||||
|
|
||||||
device_set_desc(dev, "PowerBook backlight for ATI graphics");
|
device_set_desc(dev, "PowerBook backlight for ATI graphics");
|
||||||
|
@ -38,6 +38,9 @@ __FBSDID("$FreeBSD$");
|
|||||||
#include <machine/bus.h>
|
#include <machine/bus.h>
|
||||||
|
|
||||||
#include <dev/ofw/openfirm.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_MIN (0x0ec)
|
||||||
#define NVIDIA_BRIGHT_MAX (0x538)
|
#define NVIDIA_BRIGHT_MAX (0x538)
|
||||||
@ -102,7 +105,8 @@ nvbl_probe(device_t dev)
|
|||||||
if (OF_getprop(handle, "backlight-control", &control, sizeof(control)) < 0)
|
if (OF_getprop(handle, "backlight-control", &control, sizeof(control)) < 0)
|
||||||
return (ENXIO);
|
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);
|
return (ENXIO);
|
||||||
|
|
||||||
device_set_desc(dev, "PowerBook backlight for nVidia graphics");
|
device_set_desc(dev, "PowerBook backlight for nVidia graphics");
|
||||||
|
Loading…
Reference in New Issue
Block a user