summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/drmP.h15
-rw-r--r--linux-core/i915_drv.c1
-rw-r--r--linux-core/mga_drv.c5
3 files changed, 13 insertions, 8 deletions
diff --git a/linux-core/drmP.h b/linux-core/drmP.h
index 167bef0f..24d8a23b 100644
--- a/linux-core/drmP.h
+++ b/linux-core/drmP.h
@@ -548,8 +548,10 @@ struct drm_driver {
*
* \param dev DRM device handle
*
- * \returns true if the card really is attached to AGP, false
- * otherwise.
+ * \returns
+ * One of three values is returned depending on whether or not the
+ * card is absolutely \b not AGP (return of 0), absolutely \b is AGP
+ * (return of 1), or may or may not be AGP (return of 2).
*/
int (*device_is_agp) (struct drm_device * dev);
@@ -1028,9 +1030,12 @@ static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev,
static __inline__ int drm_device_is_agp(drm_device_t *dev)
{
- if ( (dev->driver->device_is_agp != NULL)
- && ! (*dev->driver->device_is_agp)( dev ) ) {
- return 0;
+ if ( dev->driver->device_is_agp != NULL ) {
+ int err = (*dev->driver->device_is_agp)( dev );
+
+ if (err != 2) {
+ return err;
+ }
}
return pci_find_capability(dev->pdev, PCI_CAP_ID_AGP);
diff --git a/linux-core/i915_drv.c b/linux-core/i915_drv.c
index 7256cb3c..d09b9d43 100644
--- a/linux-core/i915_drv.c
+++ b/linux-core/i915_drv.c
@@ -60,6 +60,7 @@ static struct drm_driver driver = {
DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED,
.pretakedown = i915_driver_pretakedown,
.prerelease = i915_driver_prerelease,
+ .device_is_agp = i915_driver_device_is_agp,
.irq_preinstall = i915_driver_irq_preinstall,
.irq_postinstall = i915_driver_irq_postinstall,
.irq_uninstall = i915_driver_irq_uninstall,
diff --git a/linux-core/mga_drv.c b/linux-core/mga_drv.c
index c04de5a3..c8bb042d 100644
--- a/linux-core/mga_drv.c
+++ b/linux-core/mga_drv.c
@@ -148,8 +148,7 @@ MODULE_LICENSE("GPL and additional rights");
* \param dev The device to be tested.
*
* \returns
- * If the device is a PCI G450, zero is returned. Otherwise non-zero is
- * returned.
+ * If the device is a PCI G450, zero is returned. Otherwise 2 is returned.
*/
int mga_driver_device_is_agp(drm_device_t * dev)
{
@@ -176,5 +175,5 @@ int mga_driver_device_is_agp(drm_device_t * dev)
return 0;
}
- return 1;
+ return 2;
}