svn commit: r186299 - head/sys/dev/drm
Robert Noland
rnoland at FreeBSD.org
Thu Dec 18 21:58:57 UTC 2008
Author: rnoland
Date: Thu Dec 18 21:58:57 2008
New Revision: 186299
URL: http://svn.freebsd.org/changeset/base/186299
Log:
We only want drm to ever attach to the primary pci device.
Intel 855 chips present the same pci id for both heads. This prevents
us from attaching to the dummy second head. All other chips that I
am aware of either only present a single pci id, or different ids
for each head so that we only match on the correct head.
Approved by: kib@
MFC after: 2 weeks
Modified:
head/sys/dev/drm/drmP.h
head/sys/dev/drm/drm_drv.c
Modified: head/sys/dev/drm/drmP.h
==============================================================================
--- head/sys/dev/drm/drmP.h Thu Dec 18 21:46:18 2008 (r186298)
+++ head/sys/dev/drm/drmP.h Thu Dec 18 21:58:57 2008 (r186299)
@@ -87,6 +87,7 @@ struct drm_file;
#include <sys/agpio.h>
#include <sys/mutex.h>
#include <dev/pci/pcivar.h>
+#include <dev/pci/pcireg.h>
#include <sys/selinfo.h>
#include <sys/bus.h>
Modified: head/sys/dev/drm/drm_drv.c
==============================================================================
--- head/sys/dev/drm/drm_drv.c Thu Dec 18 21:46:18 2008 (r186298)
+++ head/sys/dev/drm/drm_drv.c Thu Dec 18 21:58:57 2008 (r186299)
@@ -152,6 +152,10 @@ int drm_probe(device_t dev, drm_pci_id_l
device = pci_get_device(dev);
#endif
+ if (pci_get_class(dev) != PCIC_DISPLAY
+ || pci_get_subclass(dev) != PCIS_DISPLAY_VGA)
+ return ENXIO;
+
id_entry = drm_find_description(vendor, device, idlist);
if (id_entry != NULL) {
device_set_desc(dev, id_entry->name);
More information about the svn-src-all
mailing list