@@ -60,8 +60,10 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
if (map->flags != _DRM_CONTAINS_LOCK)
break;
case _DRM_REGISTERS:
- case _DRM_FRAME_BUFFER:
return entry;
+ case _DRM_FRAME_BUFFER:
+ if (!(map->flags & _DRM_MATCH_FB_OFFSET))
+ return entry;
default: /* Make gcc happy */
;
}
@@ -195,7 +195,8 @@ enum drm_map_flags {
_DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */
_DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */
_DRM_REMOVABLE = 0x40, /**< Removable mapping */
- _DRM_DRIVER = 0x80 /**< Managed by driver */
+ _DRM_DRIVER = 0x80, /**< Managed by driver */
+ _DRM_MATCH_FB_OFFSET = 0x100 /**< Multiple framebuffer support */
};
struct drm_ctx_priv_map {