Merge tag 'topic/drm-misc-2016-05-18' of git://anongit.freedesktop.org/drm-intel into drm-next
Update drm-misc pull with a few more fixes included, plus the two from Arnd for the fallout from the drm_gem_object_lookup() refactor that I failed to spot :( * tag 'topic/drm-misc-2016-05-18' of git://anongit.freedesktop.org/drm-intel: drm: remove unused dev variables drm: mediatek: fixup drm_gem_object_lookup API change drm/tegra: Fix crash caused by reference count imbalance drm: Fix error handling in drm_connector_register drm: Avoid connector reference imbalance on error path drm/fb_helper: Fix references to dev->mode_config.num_connector drm/i915/fbdev: Fix num_connector references in intel_fb_initial_config() qxl: catch qxlfb_create_pinned_object failures drm/exynos/hdmi: add a missing tab drm/fb-cma-helper: Add function drm_fb_cma_create_with_funcs() drm/fb-cma-helper: Use const for drm_framebuffer_funcs argument drm: Drop connector argument from __drm_atomic_helper_connector_destroy_state drm: Drop plane argument from __drm_atomic_helper_plane_destroy_state drm: Drop crtc argument from __drm_atomic_helper_crtc_destroy_state drm: Remove unused drm_device from drm_gem_object_lookup()
This commit is contained in:
commit
24e04d72eb
88 changed files with 229 additions and 223 deletions
|
@ -106,7 +106,7 @@ static int amdgpu_bo_list_set(struct amdgpu_device *adev,
|
|||
struct amdgpu_bo *bo;
|
||||
struct mm_struct *usermm;
|
||||
|
||||
gobj = drm_gem_object_lookup(adev->ddev, filp, info[i].bo_handle);
|
||||
gobj = drm_gem_object_lookup(filp, info[i].bo_handle);
|
||||
if (!gobj) {
|
||||
r = -ENOENT;
|
||||
goto error_free;
|
||||
|
|
|
@ -92,8 +92,7 @@ static int amdgpu_cs_user_fence_chunk(struct amdgpu_cs_parser *p,
|
|||
{
|
||||
struct drm_gem_object *gobj;
|
||||
|
||||
gobj = drm_gem_object_lookup(p->adev->ddev, p->filp,
|
||||
data->handle);
|
||||
gobj = drm_gem_object_lookup(p->filp, data->handle);
|
||||
if (gobj == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
|
@ -563,7 +563,7 @@ amdgpu_user_framebuffer_create(struct drm_device *dev,
|
|||
struct amdgpu_framebuffer *amdgpu_fb;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
|
||||
if (obj == NULL) {
|
||||
dev_err(&dev->pdev->dev, "No GEM object associated to handle 0x%08X, "
|
||||
"can't create framebuffer\n", mode_cmd->handles[0]);
|
||||
|
|
|
@ -338,7 +338,7 @@ int amdgpu_mode_dumb_mmap(struct drm_file *filp,
|
|||
struct drm_gem_object *gobj;
|
||||
struct amdgpu_bo *robj;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, handle);
|
||||
gobj = drm_gem_object_lookup(filp, handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
@ -402,7 +402,7 @@ int amdgpu_gem_wait_idle_ioctl(struct drm_device *dev, void *data,
|
|||
int r = 0;
|
||||
long ret;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, handle);
|
||||
gobj = drm_gem_object_lookup(filp, handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
@ -436,7 +436,7 @@ int amdgpu_gem_metadata_ioctl(struct drm_device *dev, void *data,
|
|||
int r = -1;
|
||||
|
||||
DRM_DEBUG("%d \n", args->handle);
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
robj = gem_to_amdgpu_bo(gobj);
|
||||
|
@ -584,7 +584,7 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
rbo = gem_to_amdgpu_bo(gobj);
|
||||
|
@ -646,7 +646,7 @@ int amdgpu_gem_op_ioctl(struct drm_device *dev, void *data,
|
|||
struct amdgpu_bo *robj;
|
||||
int r;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
|
|
@ -2594,7 +2594,7 @@ static int dce_v10_0_crtc_cursor_set2(struct drm_crtc *crtc,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("Cannot find cursor object %x for crtc %d\n", handle, amdgpu_crtc->crtc_id);
|
||||
return -ENOENT;
|
||||
|
|
|
@ -2605,7 +2605,7 @@ static int dce_v11_0_crtc_cursor_set2(struct drm_crtc *crtc,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("Cannot find cursor object %x for crtc %d\n", handle, amdgpu_crtc->crtc_id);
|
||||
return -ENOENT;
|
||||
|
|
|
@ -2501,7 +2501,7 @@ static int dce_v8_0_crtc_cursor_set2(struct drm_crtc *crtc,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("Cannot find cursor object %x for crtc %d\n", handle, amdgpu_crtc->crtc_id);
|
||||
return -ENOENT;
|
||||
|
|
|
@ -897,7 +897,6 @@ static void cursor_update(void *data)
|
|||
static int armada_drm_crtc_cursor_set(struct drm_crtc *crtc,
|
||||
struct drm_file *file, uint32_t handle, uint32_t w, uint32_t h)
|
||||
{
|
||||
struct drm_device *dev = crtc->dev;
|
||||
struct armada_crtc *dcrtc = drm_to_armada_crtc(crtc);
|
||||
struct armada_gem_object *obj = NULL;
|
||||
int ret;
|
||||
|
@ -911,7 +910,7 @@ static int armada_drm_crtc_cursor_set(struct drm_crtc *crtc,
|
|||
if (w > 64 || h > 64 || (w > 32 && h > 32))
|
||||
return -ENOMEM;
|
||||
|
||||
obj = armada_gem_object_lookup(dev, file, handle);
|
||||
obj = armada_gem_object_lookup(file, handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ static struct drm_framebuffer *armada_fb_create(struct drm_device *dev,
|
|||
goto err;
|
||||
}
|
||||
|
||||
obj = armada_gem_object_lookup(dev, dfile, mode->handles[0]);
|
||||
obj = armada_gem_object_lookup(dfile, mode->handles[0]);
|
||||
if (!obj) {
|
||||
ret = -ENOENT;
|
||||
goto err;
|
||||
|
|
|
@ -278,7 +278,7 @@ int armada_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
|
|||
struct armada_gem_object *obj;
|
||||
int ret = 0;
|
||||
|
||||
obj = armada_gem_object_lookup(dev, file, handle);
|
||||
obj = armada_gem_object_lookup(file, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object\n");
|
||||
return -EINVAL;
|
||||
|
@ -348,7 +348,7 @@ int armada_gem_mmap_ioctl(struct drm_device *dev, void *data,
|
|||
struct armada_gem_object *dobj;
|
||||
unsigned long addr;
|
||||
|
||||
dobj = armada_gem_object_lookup(dev, file, args->handle);
|
||||
dobj = armada_gem_object_lookup(file, args->handle);
|
||||
if (dobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -391,7 +391,7 @@ int armada_gem_pwrite_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
dobj = armada_gem_object_lookup(dev, file, args->handle);
|
||||
dobj = armada_gem_object_lookup(file, args->handle);
|
||||
if (dobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -45,9 +45,9 @@ struct drm_gem_object *armada_gem_prime_import(struct drm_device *,
|
|||
int armada_gem_map_import(struct armada_gem_object *);
|
||||
|
||||
static inline struct armada_gem_object *armada_gem_object_lookup(
|
||||
struct drm_device *dev, struct drm_file *dfile, unsigned handle)
|
||||
struct drm_file *dfile, unsigned handle)
|
||||
{
|
||||
struct drm_gem_object *obj = drm_gem_object_lookup(dev, dfile, handle);
|
||||
struct drm_gem_object *obj = drm_gem_object_lookup(dfile, handle);
|
||||
|
||||
return obj ? drm_to_armada_gem(obj) : NULL;
|
||||
}
|
||||
|
|
|
@ -333,7 +333,7 @@ ast_user_framebuffer_create(struct drm_device *dev,
|
|||
struct ast_framebuffer *ast_fb;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, filp, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
|
||||
if (obj == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
@ -574,7 +574,7 @@ ast_dumb_mmap_offset(struct drm_file *file,
|
|||
struct drm_gem_object *obj;
|
||||
struct ast_bo *bo;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -1141,7 +1141,7 @@ static int ast_cursor_set(struct drm_crtc *crtc,
|
|||
if (width > AST_MAX_HWC_WIDTH || height > AST_MAX_HWC_HEIGHT)
|
||||
return -EINVAL;
|
||||
|
||||
obj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("Cannot find cursor object %x for crtc\n", handle);
|
||||
return -ENOENT;
|
||||
|
|
|
@ -430,7 +430,7 @@ static void atmel_hlcdc_crtc_destroy_state(struct drm_crtc *crtc,
|
|||
struct atmel_hlcdc_crtc_state *state;
|
||||
|
||||
state = drm_crtc_state_to_atmel_hlcdc_crtc_state(s);
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, s);
|
||||
__drm_atomic_helper_crtc_destroy_state(s);
|
||||
kfree(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -458,7 +458,7 @@ int bochs_dumb_mmap_offset(struct drm_file *file, struct drm_device *dev,
|
|||
struct drm_gem_object *obj;
|
||||
struct bochs_bo *bo;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -520,7 +520,7 @@ bochs_user_framebuffer_create(struct drm_device *dev,
|
|||
if (mode_cmd->pixel_format != DRM_FORMAT_XRGB8888)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
obj = drm_gem_object_lookup(dev, filp, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
|
||||
if (obj == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ cirrus_user_framebuffer_create(struct drm_device *dev,
|
|||
bpp, mode_cmd->pitches[0]))
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
obj = drm_gem_object_lookup(dev, filp, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
|
||||
if (obj == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
@ -295,7 +295,7 @@ cirrus_dumb_mmap_offset(struct drm_file *file,
|
|||
struct drm_gem_object *obj;
|
||||
struct cirrus_bo *bo;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -1160,14 +1160,18 @@ drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state,
|
|||
{
|
||||
struct drm_crtc_state *crtc_state;
|
||||
|
||||
if (crtc)
|
||||
drm_connector_reference(conn_state->connector);
|
||||
if (conn_state->crtc && conn_state->crtc != crtc) {
|
||||
if (conn_state->crtc == crtc)
|
||||
return 0;
|
||||
|
||||
if (conn_state->crtc) {
|
||||
crtc_state = drm_atomic_get_existing_crtc_state(conn_state->state,
|
||||
conn_state->crtc);
|
||||
|
||||
crtc_state->connector_mask &=
|
||||
~(1 << drm_connector_index(conn_state->connector));
|
||||
|
||||
drm_connector_unreference(conn_state->connector);
|
||||
conn_state->crtc = NULL;
|
||||
}
|
||||
|
||||
if (crtc) {
|
||||
|
@ -1177,18 +1181,16 @@ drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state,
|
|||
|
||||
crtc_state->connector_mask |=
|
||||
1 << drm_connector_index(conn_state->connector);
|
||||
}
|
||||
|
||||
if (conn_state->crtc)
|
||||
drm_connector_unreference(conn_state->connector);
|
||||
conn_state->crtc = crtc;
|
||||
drm_connector_reference(conn_state->connector);
|
||||
conn_state->crtc = crtc;
|
||||
|
||||
if (crtc)
|
||||
DRM_DEBUG_ATOMIC("Link connector state %p to [CRTC:%d:%s]\n",
|
||||
conn_state, crtc->base.id, crtc->name);
|
||||
else
|
||||
} else {
|
||||
DRM_DEBUG_ATOMIC("Link connector state %p to [NOCRTC]\n",
|
||||
conn_state);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -2530,7 +2530,7 @@ EXPORT_SYMBOL(drm_atomic_helper_best_encoder);
|
|||
void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc)
|
||||
{
|
||||
if (crtc->state)
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, crtc->state);
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc->state);
|
||||
|
||||
kfree(crtc->state);
|
||||
crtc->state = kzalloc(sizeof(*crtc->state), GFP_KERNEL);
|
||||
|
@ -2595,15 +2595,13 @@ EXPORT_SYMBOL(drm_atomic_helper_crtc_duplicate_state);
|
|||
|
||||
/**
|
||||
* __drm_atomic_helper_crtc_destroy_state - release CRTC state
|
||||
* @crtc: CRTC object
|
||||
* @state: CRTC state object to release
|
||||
*
|
||||
* Releases all resources stored in the CRTC state without actually freeing
|
||||
* the memory of the CRTC state. This is useful for drivers that subclass the
|
||||
* CRTC state.
|
||||
*/
|
||||
void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *state)
|
||||
void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc_state *state)
|
||||
{
|
||||
drm_property_unreference_blob(state->mode_blob);
|
||||
drm_property_unreference_blob(state->degamma_lut);
|
||||
|
@ -2623,7 +2621,7 @@ EXPORT_SYMBOL(__drm_atomic_helper_crtc_destroy_state);
|
|||
void drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *state)
|
||||
{
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, state);
|
||||
__drm_atomic_helper_crtc_destroy_state(state);
|
||||
kfree(state);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_atomic_helper_crtc_destroy_state);
|
||||
|
@ -2638,7 +2636,7 @@ EXPORT_SYMBOL(drm_atomic_helper_crtc_destroy_state);
|
|||
void drm_atomic_helper_plane_reset(struct drm_plane *plane)
|
||||
{
|
||||
if (plane->state)
|
||||
__drm_atomic_helper_plane_destroy_state(plane, plane->state);
|
||||
__drm_atomic_helper_plane_destroy_state(plane->state);
|
||||
|
||||
kfree(plane->state);
|
||||
plane->state = kzalloc(sizeof(*plane->state), GFP_KERNEL);
|
||||
|
@ -2693,15 +2691,13 @@ EXPORT_SYMBOL(drm_atomic_helper_plane_duplicate_state);
|
|||
|
||||
/**
|
||||
* __drm_atomic_helper_plane_destroy_state - release plane state
|
||||
* @plane: plane object
|
||||
* @state: plane state object to release
|
||||
*
|
||||
* Releases all resources stored in the plane state without actually freeing
|
||||
* the memory of the plane state. This is useful for drivers that subclass the
|
||||
* plane state.
|
||||
*/
|
||||
void __drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
void __drm_atomic_helper_plane_destroy_state(struct drm_plane_state *state)
|
||||
{
|
||||
if (state->fb)
|
||||
drm_framebuffer_unreference(state->fb);
|
||||
|
@ -2719,7 +2715,7 @@ EXPORT_SYMBOL(__drm_atomic_helper_plane_destroy_state);
|
|||
void drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
{
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
kfree(state);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_atomic_helper_plane_destroy_state);
|
||||
|
@ -2760,8 +2756,7 @@ void drm_atomic_helper_connector_reset(struct drm_connector *connector)
|
|||
kzalloc(sizeof(*conn_state), GFP_KERNEL);
|
||||
|
||||
if (connector->state)
|
||||
__drm_atomic_helper_connector_destroy_state(connector,
|
||||
connector->state);
|
||||
__drm_atomic_helper_connector_destroy_state(connector->state);
|
||||
|
||||
kfree(connector->state);
|
||||
__drm_atomic_helper_connector_reset(connector, conn_state);
|
||||
|
@ -2894,7 +2889,6 @@ EXPORT_SYMBOL(drm_atomic_helper_duplicate_state);
|
|||
|
||||
/**
|
||||
* __drm_atomic_helper_connector_destroy_state - release connector state
|
||||
* @connector: connector object
|
||||
* @state: connector state object to release
|
||||
*
|
||||
* Releases all resources stored in the connector state without actually
|
||||
|
@ -2902,8 +2896,7 @@ EXPORT_SYMBOL(drm_atomic_helper_duplicate_state);
|
|||
* subclass the connector state.
|
||||
*/
|
||||
void
|
||||
__drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
||||
struct drm_connector_state *state)
|
||||
__drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state)
|
||||
{
|
||||
/*
|
||||
* This is currently a placeholder so that drivers that subclass the
|
||||
|
@ -2926,7 +2919,7 @@ EXPORT_SYMBOL(__drm_atomic_helper_connector_destroy_state);
|
|||
void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
||||
struct drm_connector_state *state)
|
||||
{
|
||||
__drm_atomic_helper_connector_destroy_state(connector, state);
|
||||
__drm_atomic_helper_connector_destroy_state(state);
|
||||
kfree(state);
|
||||
}
|
||||
EXPORT_SYMBOL(drm_atomic_helper_connector_destroy_state);
|
||||
|
|
|
@ -1030,8 +1030,6 @@ int drm_connector_register(struct drm_connector *connector)
|
|||
{
|
||||
int ret;
|
||||
|
||||
drm_mode_object_register(connector->dev, &connector->base);
|
||||
|
||||
ret = drm_sysfs_connector_add(connector);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
@ -1042,6 +1040,8 @@ int drm_connector_register(struct drm_connector *connector)
|
|||
return ret;
|
||||
}
|
||||
|
||||
drm_mode_object_register(connector->dev, &connector->base);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(drm_connector_register);
|
||||
|
|
|
@ -133,7 +133,7 @@ static struct drm_framebuffer_funcs drm_fb_cma_funcs = {
|
|||
static struct drm_fb_cma *drm_fb_cma_alloc(struct drm_device *dev,
|
||||
const struct drm_mode_fb_cmd2 *mode_cmd,
|
||||
struct drm_gem_cma_object **obj,
|
||||
unsigned int num_planes, struct drm_framebuffer_funcs *funcs)
|
||||
unsigned int num_planes, const struct drm_framebuffer_funcs *funcs)
|
||||
{
|
||||
struct drm_fb_cma *fb_cma;
|
||||
int ret;
|
||||
|
@ -159,13 +159,17 @@ static struct drm_fb_cma *drm_fb_cma_alloc(struct drm_device *dev,
|
|||
}
|
||||
|
||||
/**
|
||||
* drm_fb_cma_create() - (struct drm_mode_config_funcs *)->fb_create callback function
|
||||
* drm_fb_cma_create_with_funcs() - helper function for the
|
||||
* &drm_mode_config_funcs ->fb_create
|
||||
* callback function
|
||||
*
|
||||
* If your hardware has special alignment or pitch requirements these should be
|
||||
* checked before calling this function.
|
||||
* This can be used to set &drm_framebuffer_funcs for drivers that need the
|
||||
* dirty() callback. Use drm_fb_cma_create() if you don't need to change
|
||||
* &drm_framebuffer_funcs.
|
||||
*/
|
||||
struct drm_framebuffer *drm_fb_cma_create(struct drm_device *dev,
|
||||
struct drm_file *file_priv, const struct drm_mode_fb_cmd2 *mode_cmd)
|
||||
struct drm_framebuffer *drm_fb_cma_create_with_funcs(struct drm_device *dev,
|
||||
struct drm_file *file_priv, const struct drm_mode_fb_cmd2 *mode_cmd,
|
||||
const struct drm_framebuffer_funcs *funcs)
|
||||
{
|
||||
struct drm_fb_cma *fb_cma;
|
||||
struct drm_gem_cma_object *objs[4];
|
||||
|
@ -183,7 +187,7 @@ struct drm_framebuffer *drm_fb_cma_create(struct drm_device *dev,
|
|||
unsigned int height = mode_cmd->height / (i ? vsub : 1);
|
||||
unsigned int min_size;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[i]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[i]);
|
||||
if (!obj) {
|
||||
dev_err(dev->dev, "Failed to lookup GEM object\n");
|
||||
ret = -ENXIO;
|
||||
|
@ -202,7 +206,7 @@ struct drm_framebuffer *drm_fb_cma_create(struct drm_device *dev,
|
|||
objs[i] = to_drm_gem_cma_obj(obj);
|
||||
}
|
||||
|
||||
fb_cma = drm_fb_cma_alloc(dev, mode_cmd, objs, i, &drm_fb_cma_funcs);
|
||||
fb_cma = drm_fb_cma_alloc(dev, mode_cmd, objs, i, funcs);
|
||||
if (IS_ERR(fb_cma)) {
|
||||
ret = PTR_ERR(fb_cma);
|
||||
goto err_gem_object_unreference;
|
||||
|
@ -215,6 +219,21 @@ err_gem_object_unreference:
|
|||
drm_gem_object_unreference_unlocked(&objs[i]->base);
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(drm_fb_cma_create_with_funcs);
|
||||
|
||||
/**
|
||||
* drm_fb_cma_create() - &drm_mode_config_funcs ->fb_create callback function
|
||||
*
|
||||
* If your hardware has special alignment or pitch requirements these should be
|
||||
* checked before calling this function. Use drm_fb_cma_create_with_funcs() if
|
||||
* you need to set &drm_framebuffer_funcs ->dirty.
|
||||
*/
|
||||
struct drm_framebuffer *drm_fb_cma_create(struct drm_device *dev,
|
||||
struct drm_file *file_priv, const struct drm_mode_fb_cmd2 *mode_cmd)
|
||||
{
|
||||
return drm_fb_cma_create_with_funcs(dev, file_priv, mode_cmd,
|
||||
&drm_fb_cma_funcs);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(drm_fb_cma_create);
|
||||
|
||||
/**
|
||||
|
@ -350,7 +369,7 @@ static void drm_fbdev_cma_defio_fini(struct fb_info *fbi)
|
|||
*/
|
||||
int drm_fbdev_cma_create_with_funcs(struct drm_fb_helper *helper,
|
||||
struct drm_fb_helper_surface_size *sizes,
|
||||
struct drm_framebuffer_funcs *funcs)
|
||||
const struct drm_framebuffer_funcs *funcs)
|
||||
{
|
||||
struct drm_fbdev_cma *fbdev_cma = to_fbdev_cma(helper);
|
||||
struct drm_mode_fb_cmd2 mode_cmd = { 0 };
|
||||
|
|
|
@ -1968,7 +1968,6 @@ static int drm_pick_crtcs(struct drm_fb_helper *fb_helper,
|
|||
int n, int width, int height)
|
||||
{
|
||||
int c, o;
|
||||
struct drm_device *dev = fb_helper->dev;
|
||||
struct drm_connector *connector;
|
||||
const struct drm_connector_helper_funcs *connector_funcs;
|
||||
struct drm_encoder *encoder;
|
||||
|
@ -1987,7 +1986,7 @@ static int drm_pick_crtcs(struct drm_fb_helper *fb_helper,
|
|||
if (modes[n] == NULL)
|
||||
return best_score;
|
||||
|
||||
crtcs = kzalloc(dev->mode_config.num_connector *
|
||||
crtcs = kzalloc(fb_helper->connector_count *
|
||||
sizeof(struct drm_fb_helper_crtc *), GFP_KERNEL);
|
||||
if (!crtcs)
|
||||
return best_score;
|
||||
|
@ -2033,7 +2032,7 @@ static int drm_pick_crtcs(struct drm_fb_helper *fb_helper,
|
|||
if (score > best_score) {
|
||||
best_score = score;
|
||||
memcpy(best_crtcs, crtcs,
|
||||
dev->mode_config.num_connector *
|
||||
fb_helper->connector_count *
|
||||
sizeof(struct drm_fb_helper_crtc *));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -588,7 +588,6 @@ EXPORT_SYMBOL(drm_gem_put_pages);
|
|||
|
||||
/**
|
||||
* drm_gem_object_lookup - look up a GEM object from it's handle
|
||||
* @dev: DRM device
|
||||
* @filp: DRM file private date
|
||||
* @handle: userspace handle
|
||||
*
|
||||
|
@ -598,8 +597,7 @@ EXPORT_SYMBOL(drm_gem_put_pages);
|
|||
* otherwise.
|
||||
*/
|
||||
struct drm_gem_object *
|
||||
drm_gem_object_lookup(struct drm_device *dev, struct drm_file *filp,
|
||||
u32 handle)
|
||||
drm_gem_object_lookup(struct drm_file *filp, u32 handle)
|
||||
{
|
||||
struct drm_gem_object *obj;
|
||||
|
||||
|
@ -607,12 +605,8 @@ drm_gem_object_lookup(struct drm_device *dev, struct drm_file *filp,
|
|||
|
||||
/* Check if we currently have a reference on the object */
|
||||
obj = idr_find(&filp->object_idr, handle);
|
||||
if (obj == NULL) {
|
||||
spin_unlock(&filp->table_lock);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
drm_gem_object_reference(obj);
|
||||
if (obj)
|
||||
drm_gem_object_reference(obj);
|
||||
|
||||
spin_unlock(&filp->table_lock);
|
||||
|
||||
|
@ -665,7 +659,7 @@ drm_gem_flink_ioctl(struct drm_device *dev, void *data,
|
|||
if (!drm_core_check_feature(dev, DRIVER_GEM))
|
||||
return -ENODEV;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -291,7 +291,7 @@ int drm_gem_cma_dumb_map_offset(struct drm_file *file_priv,
|
|||
{
|
||||
struct drm_gem_object *gem_obj;
|
||||
|
||||
gem_obj = drm_gem_object_lookup(drm, file_priv, handle);
|
||||
gem_obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!gem_obj) {
|
||||
dev_err(drm->dev, "failed to lookup GEM object\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -407,7 +407,7 @@ int drm_gem_prime_handle_to_fd(struct drm_device *dev,
|
|||
struct dma_buf *dmabuf;
|
||||
|
||||
mutex_lock(&file_priv->prime.lock);
|
||||
obj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
ret = -ENOENT;
|
||||
goto out_unlock;
|
||||
|
|
|
@ -314,7 +314,7 @@ static int etnaviv_ioctl_gem_cpu_prep(struct drm_device *dev, void *data,
|
|||
if (args->op & ~(ETNA_PREP_READ | ETNA_PREP_WRITE | ETNA_PREP_NOSYNC))
|
||||
return -EINVAL;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -335,7 +335,7 @@ static int etnaviv_ioctl_gem_cpu_fini(struct drm_device *dev, void *data,
|
|||
if (args->flags)
|
||||
return -EINVAL;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -356,7 +356,7 @@ static int etnaviv_ioctl_gem_info(struct drm_device *dev, void *data,
|
|||
if (args->pad)
|
||||
return -EINVAL;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -441,7 +441,7 @@ static int etnaviv_ioctl_gem_wait(struct drm_device *dev, void *data,
|
|||
if (!gpu)
|
||||
return -ENXIO;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -152,8 +152,7 @@ exynos_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
|
|||
int ret;
|
||||
|
||||
for (i = 0; i < drm_format_num_planes(mode_cmd->pixel_format); i++) {
|
||||
obj = drm_gem_object_lookup(dev, file_priv,
|
||||
mode_cmd->handles[i]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[i]);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object\n");
|
||||
ret = -ENOENT;
|
||||
|
|
|
@ -177,7 +177,7 @@ unsigned long exynos_drm_gem_get_size(struct drm_device *dev,
|
|||
struct exynos_drm_gem *exynos_gem;
|
||||
struct drm_gem_object *obj;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, gem_handle);
|
||||
obj = drm_gem_object_lookup(file_priv, gem_handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return 0;
|
||||
|
@ -296,7 +296,7 @@ dma_addr_t *exynos_drm_gem_get_dma_addr(struct drm_device *dev,
|
|||
struct exynos_drm_gem *exynos_gem;
|
||||
struct drm_gem_object *obj;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, filp, gem_handle);
|
||||
obj = drm_gem_object_lookup(filp, gem_handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
@ -313,7 +313,7 @@ void exynos_drm_gem_put_dma_addr(struct drm_device *dev,
|
|||
{
|
||||
struct drm_gem_object *obj;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, filp, gem_handle);
|
||||
obj = drm_gem_object_lookup(filp, gem_handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return;
|
||||
|
@ -362,7 +362,7 @@ int exynos_drm_gem_get_ioctl(struct drm_device *dev, void *data,
|
|||
struct drm_exynos_gem_info *args = data;
|
||||
struct drm_gem_object *obj;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return -EINVAL;
|
||||
|
@ -434,7 +434,7 @@ int exynos_drm_gem_dumb_map_offset(struct drm_file *file_priv,
|
|||
* with DRM_IOCTL_MODE_MAP_DUMB command.
|
||||
*/
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -166,7 +166,7 @@ static void exynos_drm_plane_destroy_state(struct drm_plane *plane,
|
|||
{
|
||||
struct exynos_drm_plane_state *old_exynos_state =
|
||||
to_exynos_plane_state(old_state);
|
||||
__drm_atomic_helper_plane_destroy_state(plane, old_state);
|
||||
__drm_atomic_helper_plane_destroy_state(old_state);
|
||||
kfree(old_exynos_state);
|
||||
}
|
||||
|
||||
|
|
|
@ -1626,7 +1626,7 @@ static int hdmi_clk_init(struct hdmi_context *hdata)
|
|||
|
||||
clks = devm_kzalloc(dev, sizeof(*clks) * count, GFP_KERNEL);
|
||||
if (!clks)
|
||||
return -ENOMEM;
|
||||
return -ENOMEM;
|
||||
|
||||
hdata->clk_gates = clks;
|
||||
hdata->clk_muxes = clks + drv_data->clk_gates.count;
|
||||
|
|
|
@ -490,7 +490,7 @@ static struct drm_framebuffer *psb_user_framebuffer_create
|
|||
* Find the GEM object and thus the gtt range object that is
|
||||
* to back this space
|
||||
*/
|
||||
obj = drm_gem_object_lookup(dev, filp, cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(filp, cmd->handles[0]);
|
||||
if (obj == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ int psb_gem_dumb_map_gtt(struct drm_file *file, struct drm_device *dev,
|
|||
struct drm_gem_object *obj;
|
||||
|
||||
/* GEM does all our handle to object mapping */
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -372,7 +372,7 @@ int gma_crtc_cursor_set(struct drm_crtc *crtc,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
|
|
@ -695,7 +695,7 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -1049,7 +1049,7 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
goto put_rpm;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -1607,7 +1607,7 @@ i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -1655,7 +1655,7 @@ i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -1702,7 +1702,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
|
|||
if (args->flags & I915_MMAP_WC && !cpu_has_pat)
|
||||
return -ENODEV;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -2065,7 +2065,7 @@ i915_gem_mmap_gtt(struct drm_file *file,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -3140,7 +3140,7 @@ i915_gem_wait_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->bo_handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->bo_handle));
|
||||
if (&obj->base == NULL) {
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return -ENOENT;
|
||||
|
@ -3934,7 +3934,7 @@ int i915_gem_get_caching_ioctl(struct drm_device *dev, void *data,
|
|||
struct drm_i915_gem_caching *args = data;
|
||||
struct drm_i915_gem_object *obj;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -3995,7 +3995,7 @@ int i915_gem_set_caching_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
goto rpm_put;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -4365,7 +4365,7 @@ i915_gem_busy_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
@ -4430,7 +4430,7 @@ i915_gem_madvise_ioctl(struct drm_device *dev, void *data,
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file_priv, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file_priv, args->handle));
|
||||
if (&obj->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
|
|
@ -166,7 +166,7 @@ i915_gem_set_tiling(struct drm_device *dev, void *data,
|
|||
struct drm_i915_gem_object *obj;
|
||||
int ret = 0;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -297,7 +297,7 @@ i915_gem_get_tiling(struct drm_device *dev, void *data,
|
|||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
struct drm_i915_gem_object *obj;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(file, args->handle));
|
||||
if (&obj->base == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -12924,7 +12924,7 @@ verify_crtc_state(struct drm_crtc *crtc,
|
|||
bool active;
|
||||
|
||||
old_state = old_crtc_state->state;
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, old_crtc_state);
|
||||
__drm_atomic_helper_crtc_destroy_state(old_crtc_state);
|
||||
pipe_config = to_intel_crtc_state(old_crtc_state);
|
||||
memset(pipe_config, 0, sizeof(*pipe_config));
|
||||
pipe_config->base.crtc = crtc;
|
||||
|
@ -14883,8 +14883,7 @@ intel_user_framebuffer_create(struct drm_device *dev,
|
|||
struct drm_i915_gem_object *obj;
|
||||
struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd;
|
||||
|
||||
obj = to_intel_bo(drm_gem_object_lookup(dev, filp,
|
||||
mode_cmd.handles[0]));
|
||||
obj = to_intel_bo(drm_gem_object_lookup(filp, mode_cmd.handles[0]));
|
||||
if (&obj->base == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
@ -15761,7 +15760,7 @@ static void intel_modeset_readout_hw_state(struct drm_device *dev)
|
|||
struct intel_crtc_state *crtc_state = crtc->config;
|
||||
int pixclk = 0;
|
||||
|
||||
__drm_atomic_helper_crtc_destroy_state(&crtc->base, &crtc_state->base);
|
||||
__drm_atomic_helper_crtc_destroy_state(&crtc_state->base);
|
||||
memset(crtc_state, 0, sizeof(*crtc_state));
|
||||
crtc_state->base.crtc = &crtc->base;
|
||||
|
||||
|
|
|
@ -368,12 +368,12 @@ static bool intel_fb_initial_config(struct drm_fb_helper *fb_helper,
|
|||
uint64_t conn_configured = 0, mask;
|
||||
int pass = 0;
|
||||
|
||||
save_enabled = kcalloc(dev->mode_config.num_connector, sizeof(bool),
|
||||
save_enabled = kcalloc(fb_helper->connector_count, sizeof(bool),
|
||||
GFP_KERNEL);
|
||||
if (!save_enabled)
|
||||
return false;
|
||||
|
||||
memcpy(save_enabled, enabled, dev->mode_config.num_connector);
|
||||
memcpy(save_enabled, enabled, fb_helper->connector_count);
|
||||
mask = (1 << fb_helper->connector_count) - 1;
|
||||
retry:
|
||||
for (i = 0; i < fb_helper->connector_count; i++) {
|
||||
|
@ -520,7 +520,7 @@ retry:
|
|||
if (fallback) {
|
||||
bail:
|
||||
DRM_DEBUG_KMS("Not using firmware configuration\n");
|
||||
memcpy(enabled, save_enabled, dev->mode_config.num_connector);
|
||||
memcpy(enabled, save_enabled, fb_helper->connector_count);
|
||||
kfree(save_enabled);
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -1127,7 +1127,7 @@ int intel_overlay_put_image(struct drm_device *dev, void *data,
|
|||
}
|
||||
crtc = to_intel_crtc(drmmode_crtc);
|
||||
|
||||
new_bo = to_intel_bo(drm_gem_object_lookup(dev, file_priv,
|
||||
new_bo = to_intel_bo(drm_gem_object_lookup(file_priv,
|
||||
put_image_rec->bo_handle));
|
||||
if (&new_bo->base == NULL) {
|
||||
ret = -ENOENT;
|
||||
|
|
|
@ -146,7 +146,7 @@ static struct drm_crtc_state *mtk_drm_crtc_duplicate_state(struct drm_crtc *crtc
|
|||
static void mtk_drm_crtc_destroy_state(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *state)
|
||||
{
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, state);
|
||||
__drm_atomic_helper_crtc_destroy_state(state);
|
||||
kfree(to_mtk_crtc_state(state));
|
||||
}
|
||||
|
||||
|
|
|
@ -138,7 +138,7 @@ struct drm_framebuffer *mtk_drm_mode_fb_create(struct drm_device *dev,
|
|||
if (drm_format_num_planes(cmd->pixel_format) != 1)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
|
||||
gem = drm_gem_object_lookup(file, cmd->handles[0]);
|
||||
if (!gem)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
|
|
@ -139,7 +139,7 @@ int mtk_drm_gem_dumb_map_offset(struct drm_file *file_priv,
|
|||
struct drm_gem_object *obj;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -116,7 +116,7 @@ static struct drm_plane_state *mtk_plane_duplicate_state(struct drm_plane *plane
|
|||
static void mtk_drm_plane_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
{
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
kfree(to_mtk_plane_state(state));
|
||||
}
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ int mga_crtc_cursor_set(struct drm_crtc *crtc,
|
|||
return 0;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ mgag200_user_framebuffer_create(struct drm_device *dev,
|
|||
struct mga_framebuffer *mga_fb;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, filp, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(filp, mode_cmd->handles[0]);
|
||||
if (obj == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
@ -358,7 +358,7 @@ mgag200_dumb_mmap_offset(struct drm_file *file,
|
|||
struct drm_gem_object *obj;
|
||||
struct mgag200_bo *bo;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -427,7 +427,7 @@ static int mdp4_crtc_cursor_set(struct drm_crtc *crtc,
|
|||
}
|
||||
|
||||
if (handle) {
|
||||
cursor_bo = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
cursor_bo = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!cursor_bo)
|
||||
return -ENOENT;
|
||||
} else {
|
||||
|
|
|
@ -518,7 +518,7 @@ static int mdp5_crtc_cursor_set(struct drm_crtc *crtc,
|
|||
goto set_cursor;
|
||||
}
|
||||
|
||||
cursor_bo = drm_gem_object_lookup(dev, file, handle);
|
||||
cursor_bo = drm_gem_object_lookup(file, handle);
|
||||
if (!cursor_bo)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ static int msm_ioctl_gem_cpu_prep(struct drm_device *dev, void *data,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -640,7 +640,7 @@ static int msm_ioctl_gem_cpu_fini(struct drm_device *dev, void *data,
|
|||
struct drm_gem_object *obj;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -661,7 +661,7 @@ static int msm_ioctl_gem_info(struct drm_device *dev, void *data,
|
|||
if (args->pad)
|
||||
return -EINVAL;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
obj = drm_gem_object_lookup(file, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -145,8 +145,7 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
|
|||
int ret, i, n = drm_format_num_planes(mode_cmd->pixel_format);
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
bos[i] = drm_gem_object_lookup(dev, file,
|
||||
mode_cmd->handles[i]);
|
||||
bos[i] = drm_gem_object_lookup(file, mode_cmd->handles[i]);
|
||||
if (!bos[i]) {
|
||||
ret = -ENXIO;
|
||||
goto out_unref;
|
||||
|
|
|
@ -374,7 +374,7 @@ int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
|
|||
int ret = 0;
|
||||
|
||||
/* GEM does all our handle to object mapping */
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto fail;
|
||||
|
|
|
@ -995,7 +995,7 @@ nv04_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
|
|||
if (width != 64 || height != 64)
|
||||
return -EINVAL;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, buffer_handle);
|
||||
gem = drm_gem_object_lookup(file_priv, buffer_handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
cursor = nouveau_gem_object(gem);
|
||||
|
|
|
@ -279,7 +279,7 @@ nouveau_user_framebuffer_create(struct drm_device *dev,
|
|||
struct drm_gem_object *gem;
|
||||
int ret = -ENOMEM;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
|
||||
gem = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
|
||||
if (!gem)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
@ -916,7 +916,7 @@ nouveau_display_dumb_map_offset(struct drm_file *file_priv,
|
|||
{
|
||||
struct drm_gem_object *gem;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
gem = drm_gem_object_lookup(file_priv, handle);
|
||||
if (gem) {
|
||||
struct nouveau_bo *bo = nouveau_gem_object(gem);
|
||||
*poffset = drm_vma_node_offset_addr(&bo->bo.vma_node);
|
||||
|
|
|
@ -368,7 +368,6 @@ validate_init(struct nouveau_channel *chan, struct drm_file *file_priv,
|
|||
int nr_buffers, struct validate_op *op)
|
||||
{
|
||||
struct nouveau_cli *cli = nouveau_cli(file_priv);
|
||||
struct drm_device *dev = chan->drm->dev;
|
||||
int trycnt = 0;
|
||||
int ret, i;
|
||||
struct nouveau_bo *res_bo = NULL;
|
||||
|
@ -388,7 +387,7 @@ retry:
|
|||
struct drm_gem_object *gem;
|
||||
struct nouveau_bo *nvbo;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, b->handle);
|
||||
gem = drm_gem_object_lookup(file_priv, b->handle);
|
||||
if (!gem) {
|
||||
NV_PRINTK(err, cli, "Unknown handle 0x%08x\n", b->handle);
|
||||
ret = -ENOENT;
|
||||
|
@ -864,7 +863,7 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data,
|
|||
bool write = !!(req->flags & NOUVEAU_GEM_CPU_PREP_WRITE);
|
||||
int ret;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, req->handle);
|
||||
gem = drm_gem_object_lookup(file_priv, req->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
nvbo = nouveau_gem_object(gem);
|
||||
|
@ -896,7 +895,7 @@ nouveau_gem_ioctl_cpu_fini(struct drm_device *dev, void *data,
|
|||
struct drm_gem_object *gem;
|
||||
struct nouveau_bo *nvbo;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, req->handle);
|
||||
gem = drm_gem_object_lookup(file_priv, req->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
nvbo = nouveau_gem_object(gem);
|
||||
|
@ -914,7 +913,7 @@ nouveau_gem_ioctl_info(struct drm_device *dev, void *data,
|
|||
struct drm_gem_object *gem;
|
||||
int ret;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, req->handle);
|
||||
gem = drm_gem_object_lookup(file_priv, req->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -1305,7 +1305,6 @@ nv50_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
|
|||
uint32_t handle, uint32_t width, uint32_t height)
|
||||
{
|
||||
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
|
||||
struct drm_device *dev = crtc->dev;
|
||||
struct drm_gem_object *gem = NULL;
|
||||
struct nouveau_bo *nvbo = NULL;
|
||||
int ret = 0;
|
||||
|
@ -1314,7 +1313,7 @@ nv50_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
|
|||
if (width != 64 || height != 64)
|
||||
return -EINVAL;
|
||||
|
||||
gem = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
gem = drm_gem_object_lookup(file_priv, handle);
|
||||
if (unlikely(!gem))
|
||||
return -ENOENT;
|
||||
nvbo = nouveau_gem_object(gem);
|
||||
|
|
|
@ -561,7 +561,7 @@ static int ioctl_gem_cpu_prep(struct drm_device *dev, void *data,
|
|||
|
||||
VERB("%p:%p: handle=%d, op=%x", dev, file_priv, args->handle, args->op);
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -584,7 +584,7 @@ static int ioctl_gem_cpu_fini(struct drm_device *dev, void *data,
|
|||
|
||||
VERB("%p:%p: handle=%d", dev, file_priv, args->handle);
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -608,7 +608,7 @@ static int ioctl_gem_info(struct drm_device *dev, void *data,
|
|||
|
||||
VERB("%p:%p: handle=%d", dev, file_priv, args->handle);
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -257,14 +257,14 @@ struct omap_dss_device *omap_encoder_get_dssdev(struct drm_encoder *encoder);
|
|||
/* should these be made into common util helpers?
|
||||
*/
|
||||
|
||||
static inline int objects_lookup(struct drm_device *dev,
|
||||
static inline int objects_lookup(
|
||||
struct drm_file *filp, uint32_t pixel_format,
|
||||
struct drm_gem_object **bos, const uint32_t *handles)
|
||||
{
|
||||
int i, n = drm_format_num_planes(pixel_format);
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
bos[i] = drm_gem_object_lookup(dev, filp, handles[i]);
|
||||
bos[i] = drm_gem_object_lookup(filp, handles[i]);
|
||||
if (!bos[i])
|
||||
goto fail;
|
||||
|
||||
|
|
|
@ -378,7 +378,7 @@ struct drm_framebuffer *omap_framebuffer_create(struct drm_device *dev,
|
|||
struct drm_framebuffer *fb;
|
||||
int ret;
|
||||
|
||||
ret = objects_lookup(dev, file, mode_cmd->pixel_format,
|
||||
ret = objects_lookup(file, mode_cmd->pixel_format,
|
||||
bos, mode_cmd->handles);
|
||||
if (ret)
|
||||
return ERR_PTR(ret);
|
||||
|
|
|
@ -687,7 +687,7 @@ int omap_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev,
|
|||
int ret = 0;
|
||||
|
||||
/* GEM does all our handle to object mapping */
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto fail;
|
||||
|
|
|
@ -245,7 +245,7 @@ omap_plane_atomic_duplicate_state(struct drm_plane *plane)
|
|||
static void omap_plane_atomic_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
{
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
kfree(to_omap_plane_state(state));
|
||||
}
|
||||
|
||||
|
|
|
@ -318,7 +318,7 @@ static int qxl_crtc_cursor_set2(struct drm_crtc *crtc,
|
|||
if (!handle)
|
||||
return qxl_hide_cursor(qdev);
|
||||
|
||||
obj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("cannot find cursor object\n");
|
||||
return -ENOENT;
|
||||
|
@ -994,7 +994,9 @@ qxl_user_framebuffer_create(struct drm_device *dev,
|
|||
struct qxl_framebuffer *qxl_fb;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
|
||||
if (!obj)
|
||||
return NULL;
|
||||
|
||||
qxl_fb = kzalloc(sizeof(*qxl_fb), GFP_KERNEL);
|
||||
if (qxl_fb == NULL)
|
||||
|
|
|
@ -76,7 +76,7 @@ int qxl_mode_dumb_mmap(struct drm_file *file_priv,
|
|||
struct qxl_bo *qobj;
|
||||
|
||||
BUG_ON(!offset_p);
|
||||
gobj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
gobj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
qobj = gem_to_qxl_bo(gobj);
|
||||
|
|
|
@ -251,6 +251,9 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev,
|
|||
mode_cmd.pixel_format = drm_mode_legacy_fb_format(bpp, depth);
|
||||
|
||||
ret = qxlfb_create_pinned_object(qfbdev, &mode_cmd, &gobj);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
qbo = gem_to_qxl_bo(gobj);
|
||||
QXL_INFO(qdev, "%s: %dx%d %d\n", __func__, mode_cmd.width,
|
||||
mode_cmd.height, mode_cmd.pitches[0]);
|
||||
|
|
|
@ -107,15 +107,14 @@ apply_surf_reloc(struct qxl_device *qdev, struct qxl_reloc_info *info)
|
|||
}
|
||||
|
||||
/* return holding the reference to this object */
|
||||
static int qxlhw_handle_to_bo(struct qxl_device *qdev,
|
||||
struct drm_file *file_priv, uint64_t handle,
|
||||
static int qxlhw_handle_to_bo(struct drm_file *file_priv, uint64_t handle,
|
||||
struct qxl_release *release, struct qxl_bo **qbo_p)
|
||||
{
|
||||
struct drm_gem_object *gobj;
|
||||
struct qxl_bo *qobj;
|
||||
int ret;
|
||||
|
||||
gobj = drm_gem_object_lookup(qdev->ddev, file_priv, handle);
|
||||
gobj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!gobj)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -221,7 +220,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
|
|||
reloc_info[i].type = reloc.reloc_type;
|
||||
|
||||
if (reloc.dst_handle) {
|
||||
ret = qxlhw_handle_to_bo(qdev, file_priv, reloc.dst_handle, release,
|
||||
ret = qxlhw_handle_to_bo(file_priv, reloc.dst_handle, release,
|
||||
&reloc_info[i].dst_bo);
|
||||
if (ret)
|
||||
goto out_free_bos;
|
||||
|
@ -234,7 +233,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
|
|||
|
||||
/* reserve and validate the reloc dst bo */
|
||||
if (reloc.reloc_type == QXL_RELOC_TYPE_BO || reloc.src_handle) {
|
||||
ret = qxlhw_handle_to_bo(qdev, file_priv, reloc.src_handle, release,
|
||||
ret = qxlhw_handle_to_bo(file_priv, reloc.src_handle, release,
|
||||
&reloc_info[i].src_bo);
|
||||
if (ret)
|
||||
goto out_free_bos;
|
||||
|
@ -314,7 +313,7 @@ static int qxl_update_area_ioctl(struct drm_device *dev, void *data,
|
|||
update_area->top >= update_area->bottom)
|
||||
return -EINVAL;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, file, update_area->handle);
|
||||
gobj = drm_gem_object_lookup(file, update_area->handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -74,7 +74,6 @@ static void radeon_cs_buckets_get_list(struct radeon_cs_buckets *b,
|
|||
|
||||
static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
|
||||
{
|
||||
struct drm_device *ddev = p->rdev->ddev;
|
||||
struct radeon_cs_chunk *chunk;
|
||||
struct radeon_cs_buckets buckets;
|
||||
unsigned i;
|
||||
|
@ -101,7 +100,7 @@ static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
|
|||
unsigned priority;
|
||||
|
||||
r = (struct drm_radeon_cs_reloc *)&chunk->kdata[i*4];
|
||||
gobj = drm_gem_object_lookup(ddev, p->filp, r->handle);
|
||||
gobj = drm_gem_object_lookup(p->filp, r->handle);
|
||||
if (gobj == NULL) {
|
||||
DRM_ERROR("gem object lookup failed 0x%x\n",
|
||||
r->handle);
|
||||
|
|
|
@ -274,7 +274,7 @@ int radeon_crtc_cursor_set2(struct drm_crtc *crtc,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
obj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("Cannot find cursor object %x for crtc %d\n", handle, radeon_crtc->crtc_id);
|
||||
return -ENOENT;
|
||||
|
|
|
@ -1368,7 +1368,7 @@ radeon_user_framebuffer_create(struct drm_device *dev,
|
|||
struct radeon_framebuffer *radeon_fb;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
|
||||
if (obj == NULL) {
|
||||
dev_err(&dev->pdev->dev, "No GEM object associated to handle 0x%08X, "
|
||||
"can't create framebuffer\n", mode_cmd->handles[0]);
|
||||
|
|
|
@ -382,7 +382,7 @@ int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,
|
|||
down_read(&rdev->exclusive_lock);
|
||||
|
||||
/* just do a BO wait for now */
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL) {
|
||||
up_read(&rdev->exclusive_lock);
|
||||
return -ENOENT;
|
||||
|
@ -404,7 +404,7 @@ int radeon_mode_dumb_mmap(struct drm_file *filp,
|
|||
struct drm_gem_object *gobj;
|
||||
struct radeon_bo *robj;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, handle);
|
||||
gobj = drm_gem_object_lookup(filp, handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
@ -435,7 +435,7 @@ int radeon_gem_busy_ioctl(struct drm_device *dev, void *data,
|
|||
int r;
|
||||
uint32_t cur_placement = 0;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
@ -464,7 +464,7 @@ int radeon_gem_wait_idle_ioctl(struct drm_device *dev, void *data,
|
|||
uint32_t cur_placement = 0;
|
||||
long ret;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
@ -495,7 +495,7 @@ int radeon_gem_set_tiling_ioctl(struct drm_device *dev, void *data,
|
|||
int r = 0;
|
||||
|
||||
DRM_DEBUG("%d \n", args->handle);
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
robj = gem_to_radeon_bo(gobj);
|
||||
|
@ -513,7 +513,7 @@ int radeon_gem_get_tiling_ioctl(struct drm_device *dev, void *data,
|
|||
int r = 0;
|
||||
|
||||
DRM_DEBUG("\n");
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
rbo = gem_to_radeon_bo(gobj);
|
||||
|
@ -648,7 +648,7 @@ int radeon_gem_va_ioctl(struct drm_device *dev, void *data,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL) {
|
||||
args->operation = RADEON_VA_RESULT_ERROR;
|
||||
return -ENOENT;
|
||||
|
@ -703,7 +703,7 @@ int radeon_gem_op_ioctl(struct drm_device *dev, void *data,
|
|||
struct radeon_bo *robj;
|
||||
int r;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, filp, args->handle);
|
||||
gobj = drm_gem_object_lookup(filp, args->handle);
|
||||
if (gobj == NULL) {
|
||||
return -ENOENT;
|
||||
}
|
||||
|
|
|
@ -635,7 +635,7 @@ rcar_du_plane_atomic_duplicate_state(struct drm_plane *plane)
|
|||
static void rcar_du_plane_atomic_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
{
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
kfree(to_rcar_plane_state(state));
|
||||
}
|
||||
|
||||
|
|
|
@ -251,7 +251,7 @@ rcar_du_vsp_plane_atomic_duplicate_state(struct drm_plane *plane)
|
|||
static void rcar_du_vsp_plane_atomic_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
{
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
kfree(to_rcar_vsp_plane_state(state));
|
||||
}
|
||||
|
||||
|
|
|
@ -123,8 +123,7 @@ rockchip_user_fb_create(struct drm_device *dev, struct drm_file *file_priv,
|
|||
unsigned int height = mode_cmd->height / (i ? vsub : 1);
|
||||
unsigned int min_size;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv,
|
||||
mode_cmd->handles[i]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[i]);
|
||||
if (!obj) {
|
||||
dev_err(dev->dev, "Failed to lookup GEM object\n");
|
||||
ret = -ENXIO;
|
||||
|
|
|
@ -198,7 +198,7 @@ int rockchip_gem_dumb_map_offset(struct drm_file *file_priv,
|
|||
struct drm_gem_object *obj;
|
||||
int ret;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
obj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (!obj) {
|
||||
DRM_ERROR("failed to lookup gem object.\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -822,7 +822,7 @@ static void vop_atomic_plane_destroy_state(struct drm_plane *plane,
|
|||
{
|
||||
struct vop_plane_state *vop_state = to_vop_plane_state(state);
|
||||
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
|
||||
kfree(vop_state);
|
||||
}
|
||||
|
@ -1065,7 +1065,7 @@ static void vop_crtc_destroy_state(struct drm_crtc *crtc,
|
|||
{
|
||||
struct rockchip_crtc_state *s = to_rockchip_crtc_state(state);
|
||||
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, &s->base);
|
||||
__drm_atomic_helper_crtc_destroy_state(&s->base);
|
||||
kfree(s);
|
||||
}
|
||||
|
||||
|
|
|
@ -434,7 +434,7 @@ static void tegra_plane_reset(struct drm_plane *plane)
|
|||
struct tegra_plane_state *state;
|
||||
|
||||
if (plane->state)
|
||||
__drm_atomic_helper_plane_destroy_state(plane, plane->state);
|
||||
__drm_atomic_helper_plane_destroy_state(plane->state);
|
||||
|
||||
kfree(plane->state);
|
||||
plane->state = NULL;
|
||||
|
@ -466,7 +466,7 @@ static struct drm_plane_state *tegra_plane_atomic_duplicate_state(struct drm_pla
|
|||
static void tegra_plane_atomic_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state)
|
||||
{
|
||||
__drm_atomic_helper_plane_destroy_state(plane, state);
|
||||
__drm_atomic_helper_plane_destroy_state(state);
|
||||
kfree(state);
|
||||
}
|
||||
|
||||
|
@ -998,7 +998,7 @@ static void tegra_crtc_reset(struct drm_crtc *crtc)
|
|||
struct tegra_dc_state *state;
|
||||
|
||||
if (crtc->state)
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, crtc->state);
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc->state);
|
||||
|
||||
kfree(crtc->state);
|
||||
crtc->state = NULL;
|
||||
|
@ -1034,7 +1034,7 @@ tegra_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
|
|||
static void tegra_crtc_atomic_destroy_state(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *state)
|
||||
{
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, state);
|
||||
__drm_atomic_helper_crtc_destroy_state(state);
|
||||
kfree(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -268,12 +268,12 @@ static void tegra_drm_lastclose(struct drm_device *drm)
|
|||
}
|
||||
|
||||
static struct host1x_bo *
|
||||
host1x_bo_lookup(struct drm_device *drm, struct drm_file *file, u32 handle)
|
||||
host1x_bo_lookup(struct drm_file *file, u32 handle)
|
||||
{
|
||||
struct drm_gem_object *gem;
|
||||
struct tegra_bo *bo;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, handle);
|
||||
gem = drm_gem_object_lookup(file, handle);
|
||||
if (!gem)
|
||||
return NULL;
|
||||
|
||||
|
@ -311,11 +311,11 @@ static int host1x_reloc_copy_from_user(struct host1x_reloc *dest,
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
dest->cmdbuf.bo = host1x_bo_lookup(drm, file, cmdbuf);
|
||||
dest->cmdbuf.bo = host1x_bo_lookup(file, cmdbuf);
|
||||
if (!dest->cmdbuf.bo)
|
||||
return -ENOENT;
|
||||
|
||||
dest->target.bo = host1x_bo_lookup(drm, file, target);
|
||||
dest->target.bo = host1x_bo_lookup(file, target);
|
||||
if (!dest->target.bo)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -363,7 +363,7 @@ int tegra_drm_submit(struct tegra_drm_context *context,
|
|||
goto fail;
|
||||
}
|
||||
|
||||
bo = host1x_bo_lookup(drm, file, cmdbuf.handle);
|
||||
bo = host1x_bo_lookup(file, cmdbuf.handle);
|
||||
if (!bo) {
|
||||
err = -ENOENT;
|
||||
goto fail;
|
||||
|
@ -463,7 +463,7 @@ static int tegra_gem_mmap(struct drm_device *drm, void *data,
|
|||
struct drm_gem_object *gem;
|
||||
struct tegra_bo *bo;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, args->handle);
|
||||
gem = drm_gem_object_lookup(file, args->handle);
|
||||
if (!gem)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -672,7 +672,7 @@ static int tegra_gem_set_tiling(struct drm_device *drm, void *data,
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, args->handle);
|
||||
gem = drm_gem_object_lookup(file, args->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -694,7 +694,7 @@ static int tegra_gem_get_tiling(struct drm_device *drm, void *data,
|
|||
struct tegra_bo *bo;
|
||||
int err = 0;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, args->handle);
|
||||
gem = drm_gem_object_lookup(file, args->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -736,7 +736,7 @@ static int tegra_gem_set_flags(struct drm_device *drm, void *data,
|
|||
if (args->flags & ~DRM_TEGRA_GEM_FLAGS)
|
||||
return -EINVAL;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, args->handle);
|
||||
gem = drm_gem_object_lookup(file, args->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -758,7 +758,7 @@ static int tegra_gem_get_flags(struct drm_device *drm, void *data,
|
|||
struct drm_gem_object *gem;
|
||||
struct tegra_bo *bo;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, args->handle);
|
||||
gem = drm_gem_object_lookup(file, args->handle);
|
||||
if (!gem)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -745,13 +745,17 @@ static void tegra_dsi_soft_reset(struct tegra_dsi *dsi)
|
|||
|
||||
static void tegra_dsi_connector_reset(struct drm_connector *connector)
|
||||
{
|
||||
struct tegra_dsi_state *state =
|
||||
kzalloc(sizeof(*state), GFP_KERNEL);
|
||||
struct tegra_dsi_state *state = kzalloc(sizeof(*state), GFP_KERNEL);
|
||||
|
||||
if (state) {
|
||||
if (!state)
|
||||
return;
|
||||
|
||||
if (connector->state) {
|
||||
__drm_atomic_helper_connector_destroy_state(connector->state);
|
||||
kfree(connector->state);
|
||||
__drm_atomic_helper_connector_reset(connector, &state->base);
|
||||
}
|
||||
|
||||
__drm_atomic_helper_connector_reset(connector, &state->base);
|
||||
}
|
||||
|
||||
static struct drm_connector_state *
|
||||
|
@ -764,6 +768,9 @@ tegra_dsi_connector_duplicate_state(struct drm_connector *connector)
|
|||
if (!copy)
|
||||
return NULL;
|
||||
|
||||
__drm_atomic_helper_connector_duplicate_state(connector,
|
||||
©->base);
|
||||
|
||||
return ©->base;
|
||||
}
|
||||
|
||||
|
|
|
@ -149,7 +149,7 @@ struct drm_framebuffer *tegra_fb_create(struct drm_device *drm,
|
|||
unsigned int height = cmd->height / (i ? vsub : 1);
|
||||
unsigned int size, bpp;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, cmd->handles[i]);
|
||||
gem = drm_gem_object_lookup(file, cmd->handles[i]);
|
||||
if (!gem) {
|
||||
err = -ENXIO;
|
||||
goto unreference;
|
||||
|
|
|
@ -401,7 +401,7 @@ int tegra_bo_dumb_map_offset(struct drm_file *file, struct drm_device *drm,
|
|||
struct drm_gem_object *gem;
|
||||
struct tegra_bo *bo;
|
||||
|
||||
gem = drm_gem_object_lookup(drm, file, handle);
|
||||
gem = drm_gem_object_lookup(file, handle);
|
||||
if (!gem) {
|
||||
dev_err(drm->dev, "failed to lookup GEM object\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -500,7 +500,7 @@ udl_fb_user_fb_create(struct drm_device *dev,
|
|||
int ret;
|
||||
uint32_t size;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(file, mode_cmd->handles[0]);
|
||||
if (obj == NULL)
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
||||
|
|
|
@ -217,7 +217,7 @@ int udl_gem_mmap(struct drm_file *file, struct drm_device *dev,
|
|||
int ret = 0;
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (obj == NULL) {
|
||||
ret = -ENOENT;
|
||||
goto unlock;
|
||||
|
|
|
@ -457,7 +457,7 @@ int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data,
|
|||
struct drm_vc4_mmap_bo *args = data;
|
||||
struct drm_gem_object *gem_obj;
|
||||
|
||||
gem_obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
gem_obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (!gem_obj) {
|
||||
DRM_ERROR("Failed to look up GEM BO %d\n", args->handle);
|
||||
return -EINVAL;
|
||||
|
|
|
@ -650,7 +650,7 @@ static void vc4_crtc_destroy_state(struct drm_crtc *crtc,
|
|||
|
||||
}
|
||||
|
||||
__drm_atomic_helper_crtc_destroy_state(crtc, state);
|
||||
__drm_atomic_helper_crtc_destroy_state(state);
|
||||
}
|
||||
|
||||
static const struct drm_crtc_funcs vc4_crtc_funcs = {
|
||||
|
|
|
@ -822,7 +822,7 @@ vc4_wait_bo_ioctl(struct drm_device *dev, void *data,
|
|||
if (args->pad != 0)
|
||||
return -EINVAL;
|
||||
|
||||
gem_obj = drm_gem_object_lookup(dev, file_priv, args->handle);
|
||||
gem_obj = drm_gem_object_lookup(file_priv, args->handle);
|
||||
if (!gem_obj) {
|
||||
DRM_ERROR("Failed to look up GEM BO %d\n", args->handle);
|
||||
return -EINVAL;
|
||||
|
|
|
@ -208,7 +208,7 @@ static void vc4_plane_destroy_state(struct drm_plane *plane,
|
|||
}
|
||||
|
||||
kfree(vc4_state->dlist);
|
||||
__drm_atomic_helper_plane_destroy_state(plane, &vc4_state->base);
|
||||
__drm_atomic_helper_plane_destroy_state(&vc4_state->base);
|
||||
kfree(state);
|
||||
}
|
||||
|
||||
|
|
|
@ -200,7 +200,7 @@ int vgem_gem_dumb_map(struct drm_file *file, struct drm_device *dev,
|
|||
int ret = 0;
|
||||
struct drm_gem_object *obj;
|
||||
|
||||
obj = drm_gem_object_lookup(dev, file, handle);
|
||||
obj = drm_gem_object_lookup(file, handle);
|
||||
if (!obj)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ static int virtio_gpu_crtc_cursor_set(struct drm_crtc *crtc,
|
|||
}
|
||||
|
||||
/* lookup the cursor */
|
||||
gobj = drm_gem_object_lookup(crtc->dev, file_priv, handle);
|
||||
gobj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -447,7 +447,7 @@ virtio_gpu_user_framebuffer_create(struct drm_device *dev,
|
|||
int ret;
|
||||
|
||||
/* lookup object associated with res handle */
|
||||
obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handles[0]);
|
||||
obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]);
|
||||
if (!obj)
|
||||
return ERR_PTR(-EINVAL);
|
||||
|
||||
|
|
|
@ -130,7 +130,7 @@ int virtio_gpu_mode_dumb_mmap(struct drm_file *file_priv,
|
|||
struct drm_gem_object *gobj;
|
||||
struct virtio_gpu_object *obj;
|
||||
BUG_ON(!offset_p);
|
||||
gobj = drm_gem_object_lookup(dev, file_priv, handle);
|
||||
gobj = drm_gem_object_lookup(file_priv, handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
obj = gem_to_virtio_gpu_obj(gobj);
|
||||
|
|
|
@ -133,8 +133,7 @@ static int virtio_gpu_execbuffer(struct drm_device *dev,
|
|||
}
|
||||
|
||||
for (i = 0; i < exbuf->num_bo_handles; i++) {
|
||||
gobj = drm_gem_object_lookup(dev,
|
||||
drm_file, bo_handles[i]);
|
||||
gobj = drm_gem_object_lookup(drm_file, bo_handles[i]);
|
||||
if (!gobj) {
|
||||
drm_free_large(bo_handles);
|
||||
drm_free_large(buflist);
|
||||
|
@ -345,7 +344,7 @@ static int virtio_gpu_resource_info_ioctl(struct drm_device *dev, void *data,
|
|||
struct drm_gem_object *gobj = NULL;
|
||||
struct virtio_gpu_object *qobj = NULL;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, file_priv, ri->bo_handle);
|
||||
gobj = drm_gem_object_lookup(file_priv, ri->bo_handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -374,7 +373,7 @@ static int virtio_gpu_transfer_from_host_ioctl(struct drm_device *dev,
|
|||
if (vgdev->has_virgl_3d == false)
|
||||
return -ENOSYS;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, file, args->bo_handle);
|
||||
gobj = drm_gem_object_lookup(file, args->bo_handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -418,7 +417,7 @@ static int virtio_gpu_transfer_to_host_ioctl(struct drm_device *dev, void *data,
|
|||
int ret;
|
||||
u32 offset = args->offset;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, file, args->bo_handle);
|
||||
gobj = drm_gem_object_lookup(file, args->bo_handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
@ -464,7 +463,7 @@ static int virtio_gpu_wait_ioctl(struct drm_device *dev, void *data,
|
|||
int ret;
|
||||
bool nowait = false;
|
||||
|
||||
gobj = drm_gem_object_lookup(dev, file, args->handle);
|
||||
gobj = drm_gem_object_lookup(file, args->handle);
|
||||
if (gobj == NULL)
|
||||
return -ENOENT;
|
||||
|
||||
|
|
|
@ -119,8 +119,7 @@ void __drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc,
|
|||
struct drm_crtc_state *state);
|
||||
struct drm_crtc_state *
|
||||
drm_atomic_helper_crtc_duplicate_state(struct drm_crtc *crtc);
|
||||
void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *state);
|
||||
void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc_state *state);
|
||||
void drm_atomic_helper_crtc_destroy_state(struct drm_crtc *crtc,
|
||||
struct drm_crtc_state *state);
|
||||
|
||||
|
@ -129,8 +128,7 @@ void __drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane,
|
|||
struct drm_plane_state *state);
|
||||
struct drm_plane_state *
|
||||
drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane);
|
||||
void __drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state);
|
||||
void __drm_atomic_helper_plane_destroy_state(struct drm_plane_state *state);
|
||||
void drm_atomic_helper_plane_destroy_state(struct drm_plane *plane,
|
||||
struct drm_plane_state *state);
|
||||
|
||||
|
@ -146,8 +144,7 @@ struct drm_atomic_state *
|
|||
drm_atomic_helper_duplicate_state(struct drm_device *dev,
|
||||
struct drm_modeset_acquire_ctx *ctx);
|
||||
void
|
||||
__drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
||||
struct drm_connector_state *state);
|
||||
__drm_atomic_helper_connector_destroy_state(struct drm_connector_state *state);
|
||||
void drm_atomic_helper_connector_destroy_state(struct drm_connector *connector,
|
||||
struct drm_connector_state *state);
|
||||
void drm_atomic_helper_legacy_gamma_set(struct drm_crtc *crtc,
|
||||
|
|
|
@ -25,12 +25,15 @@ void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
|
|||
void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
|
||||
int drm_fbdev_cma_create_with_funcs(struct drm_fb_helper *helper,
|
||||
struct drm_fb_helper_surface_size *sizes,
|
||||
struct drm_framebuffer_funcs *funcs);
|
||||
const struct drm_framebuffer_funcs *funcs);
|
||||
|
||||
void drm_fb_cma_destroy(struct drm_framebuffer *fb);
|
||||
int drm_fb_cma_create_handle(struct drm_framebuffer *fb,
|
||||
struct drm_file *file_priv, unsigned int *handle);
|
||||
|
||||
struct drm_framebuffer *drm_fb_cma_create_with_funcs(struct drm_device *dev,
|
||||
struct drm_file *file_priv, const struct drm_mode_fb_cmd2 *mode_cmd,
|
||||
const struct drm_framebuffer_funcs *funcs);
|
||||
struct drm_framebuffer *drm_fb_cma_create(struct drm_device *dev,
|
||||
struct drm_file *file_priv, const struct drm_mode_fb_cmd2 *mode_cmd);
|
||||
|
||||
|
|
|
@ -238,9 +238,7 @@ struct page **drm_gem_get_pages(struct drm_gem_object *obj);
|
|||
void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
|
||||
bool dirty, bool accessed);
|
||||
|
||||
struct drm_gem_object *drm_gem_object_lookup(struct drm_device *dev,
|
||||
struct drm_file *filp,
|
||||
u32 handle);
|
||||
struct drm_gem_object *drm_gem_object_lookup(struct drm_file *filp, u32 handle);
|
||||
int drm_gem_dumb_destroy(struct drm_file *file,
|
||||
struct drm_device *dev,
|
||||
uint32_t handle);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue