|
@@ -38,6 +38,8 @@
|
|
|
#include <drm/drm_edid.h>
|
|
|
#include <drm/drm_fourcc.h>
|
|
|
|
|
|
+#include "drm_crtc_internal.h"
|
|
|
+
|
|
|
/**
|
|
|
* drm_modeset_lock_all - take all modeset locks
|
|
|
* @dev: drm device
|
|
@@ -322,8 +324,8 @@ EXPORT_SYMBOL(drm_get_format_name);
|
|
|
* New unique (relative to other objects in @dev) integer identifier for the
|
|
|
* object.
|
|
|
*/
|
|
|
-static int drm_mode_object_get(struct drm_device *dev,
|
|
|
- struct drm_mode_object *obj, uint32_t obj_type)
|
|
|
+int drm_mode_object_get(struct drm_device *dev,
|
|
|
+ struct drm_mode_object *obj, uint32_t obj_type)
|
|
|
{
|
|
|
int ret;
|
|
|
|
|
@@ -349,8 +351,8 @@ static int drm_mode_object_get(struct drm_device *dev,
|
|
|
*
|
|
|
* Free @id from @dev's unique identifier pool.
|
|
|
*/
|
|
|
-static void drm_mode_object_put(struct drm_device *dev,
|
|
|
- struct drm_mode_object *object)
|
|
|
+void drm_mode_object_put(struct drm_device *dev,
|
|
|
+ struct drm_mode_object *object)
|
|
|
{
|
|
|
mutex_lock(&dev->mode_config.idr_mutex);
|
|
|
idr_remove(&dev->mode_config.crtc_idr, object->id);
|
|
@@ -720,22 +722,6 @@ unsigned int drm_crtc_index(struct drm_crtc *crtc)
|
|
|
}
|
|
|
EXPORT_SYMBOL(drm_crtc_index);
|
|
|
|
|
|
-/**
|
|
|
- * drm_mode_probed_add - add a mode to a connector's probed mode list
|
|
|
- * @connector: connector the new mode
|
|
|
- * @mode: mode data
|
|
|
- *
|
|
|
- * Add @mode to @connector's mode list for later use.
|
|
|
- */
|
|
|
-void drm_mode_probed_add(struct drm_connector *connector,
|
|
|
- struct drm_display_mode *mode)
|
|
|
-{
|
|
|
- WARN_ON(!mutex_is_locked(&connector->dev->mode_config.mutex));
|
|
|
-
|
|
|
- list_add_tail(&mode->head, &connector->probed_modes);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(drm_mode_probed_add);
|
|
|
-
|
|
|
/*
|
|
|
* drm_mode_remove - remove and free a mode
|
|
|
* @connector: connector list to modify
|
|
@@ -1035,50 +1021,6 @@ void drm_plane_force_disable(struct drm_plane *plane)
|
|
|
}
|
|
|
EXPORT_SYMBOL(drm_plane_force_disable);
|
|
|
|
|
|
-/**
|
|
|
- * drm_mode_create - create a new display mode
|
|
|
- * @dev: DRM device
|
|
|
- *
|
|
|
- * Create a new drm_display_mode, give it an ID, and return it.
|
|
|
- *
|
|
|
- * RETURNS:
|
|
|
- * Pointer to new mode on success, NULL on error.
|
|
|
- */
|
|
|
-struct drm_display_mode *drm_mode_create(struct drm_device *dev)
|
|
|
-{
|
|
|
- struct drm_display_mode *nmode;
|
|
|
-
|
|
|
- nmode = kzalloc(sizeof(struct drm_display_mode), GFP_KERNEL);
|
|
|
- if (!nmode)
|
|
|
- return NULL;
|
|
|
-
|
|
|
- if (drm_mode_object_get(dev, &nmode->base, DRM_MODE_OBJECT_MODE)) {
|
|
|
- kfree(nmode);
|
|
|
- return NULL;
|
|
|
- }
|
|
|
-
|
|
|
- return nmode;
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(drm_mode_create);
|
|
|
-
|
|
|
-/**
|
|
|
- * drm_mode_destroy - remove a mode
|
|
|
- * @dev: DRM device
|
|
|
- * @mode: mode to remove
|
|
|
- *
|
|
|
- * Free @mode's unique identifier, then free it.
|
|
|
- */
|
|
|
-void drm_mode_destroy(struct drm_device *dev, struct drm_display_mode *mode)
|
|
|
-{
|
|
|
- if (!mode)
|
|
|
- return;
|
|
|
-
|
|
|
- drm_mode_object_put(dev, &mode->base);
|
|
|
-
|
|
|
- kfree(mode);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(drm_mode_destroy);
|
|
|
-
|
|
|
static int drm_mode_create_standard_connector_properties(struct drm_device *dev)
|
|
|
{
|
|
|
struct drm_property *edid;
|