[PATCH] drm: Fix undefined reference to drm_agp_clear() on non-AGP platforms
Laurent Pinchart
laurent.pinchart+renesas at ideasonboard.com
Wed Aug 7 05:17:40 PDT 2013
The drm_agp_clear() function is only defined on platforms with AGP
support. Move the drm_core_has_AGP() check from drm_agp_clear() to the
caller to let the compiler optimize the drm_agp_clear() call away.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
---
drivers/gpu/drm/drm_agpsupport.c | 2 +-
drivers/gpu/drm/drm_drv.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
This fixes a link-time build error in drm-next. An alternative approach would
be to guard the drm_agp_clear() call in drm_drv.c with an #if __OS_HAS_AGP. I
can resubmit the patch to do so if preferred.
diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c
index e301d65..084a674 100644
--- a/drivers/gpu/drm/drm_agpsupport.c
+++ b/drivers/gpu/drm/drm_agpsupport.c
@@ -439,7 +439,7 @@ void drm_agp_clear(struct drm_device *dev)
{
struct drm_agp_mem *entry, *tempe;
- if (!drm_core_has_AGP(dev) || !dev->agp)
+ if (!dev->agp)
return;
if (drm_core_check_feature(dev, DRIVER_MODESET))
return;
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index dddd799..1e2ad35 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -195,7 +195,8 @@ int drm_lastclose(struct drm_device * dev)
mutex_lock(&dev->struct_mutex);
- drm_agp_clear(dev);
+ if (drm_core_has_AGP(dev))
+ drm_agp_clear(dev);
if (drm_core_check_feature(dev, DRIVER_SG) && dev->sg &&
!drm_core_check_feature(dev, DRIVER_MODESET)) {
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list