forked from luck/tmp_suning_uos_patched
Merge tag 'topic/lockless-gem-bo-freeing-2016-06-01' of git://anongit.freedesktop.org/drm-intel into drm-next
lockless gem bo freeing patches (and the oddball related patch) for all the drivers who's maintainers are asleep at the helm - includes you ;-) I based this on top of drm-fixes to include Chris' fix for the cma issue. * tag 'topic/lockless-gem-bo-freeing-2016-06-01' of git://anongit.freedesktop.org/drm-intel: (21 commits) drm/arcpgu: Use lockless gem BO free callback drm/sun4i: Use lockless gem BO free callback drm/omapdrm: Nuke dummy fb->dirty callback drm/msm: Nuke dummy fb->dirty callback drm/rockchip: Use cma gem vm ops drm/sti: Use lockless gem BO free callback drm: sti: remove useless call to dev->struct_mutex drm/virtio: Use lockless gem BO free callback drm/tilcdc: Use lockless gem BO free callback drm/shmob: Use lockless gem BO free callback drm/rockchip: Use lockless gem BO free callback drm/rcar-du: Use lockless gem BO free callback drm/qxl: Use lockless gem BO free callback drm/nouveau: Use lockless gem BO free callback drm/mga200g: Use lockless gem BO free callback drm/fls-dcu: Use lockless gem BO free callback drm/cirrus: Use lockless gem BO free callback drm/bochs: Use lockless gem BO free callback drm/atmel: Use lockless gem BO free callback drm/ast: Use lockless gem BO free callback ...
This commit is contained in:
commit
bb4cec0222
|
@ -207,7 +207,7 @@ static struct drm_driver arcpgu_drm_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.gem_prime_export = drm_gem_prime_export,
|
||||
.gem_prime_import = drm_gem_prime_import,
|
||||
|
|
|
@ -197,7 +197,7 @@ static struct drm_driver armada_drm_driver = {
|
|||
.debugfs_init = armada_drm_debugfs_init,
|
||||
.debugfs_cleanup = armada_drm_debugfs_cleanup,
|
||||
#endif
|
||||
.gem_free_object = armada_gem_free_object,
|
||||
.gem_free_object_unlocked = armada_gem_free_object,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
.gem_prime_export = armada_gem_prime_export,
|
||||
|
|
|
@ -209,7 +209,7 @@ static struct drm_driver driver = {
|
|||
.minor = DRIVER_MINOR,
|
||||
.patchlevel = DRIVER_PATCHLEVEL,
|
||||
|
||||
.gem_free_object = ast_gem_free_object,
|
||||
.gem_free_object_unlocked = ast_gem_free_object,
|
||||
.dumb_create = ast_dumb_create,
|
||||
.dumb_map_offset = ast_dumb_mmap_offset,
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
|
|
|
@ -776,7 +776,7 @@ static struct drm_driver atmel_hlcdc_dc_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.enable_vblank = atmel_hlcdc_dc_enable_vblank,
|
||||
.disable_vblank = atmel_hlcdc_dc_disable_vblank,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
|
|
|
@ -89,7 +89,7 @@ static struct drm_driver bochs_driver = {
|
|||
.date = "20130925",
|
||||
.major = 1,
|
||||
.minor = 0,
|
||||
.gem_free_object = bochs_gem_free_object,
|
||||
.gem_free_object_unlocked = bochs_gem_free_object,
|
||||
.dumb_create = bochs_dumb_create,
|
||||
.dumb_map_offset = bochs_dumb_mmap_offset,
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
|
|
|
@ -142,7 +142,7 @@ static struct drm_driver driver = {
|
|||
.major = DRIVER_MAJOR,
|
||||
.minor = DRIVER_MINOR,
|
||||
.patchlevel = DRIVER_PATCHLEVEL,
|
||||
.gem_free_object = cirrus_gem_free_object,
|
||||
.gem_free_object_unlocked = cirrus_gem_free_object,
|
||||
.dumb_create = cirrus_dumb_create,
|
||||
.dumb_map_offset = cirrus_dumb_mmap_offset,
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
|
|
|
@ -198,7 +198,7 @@ static struct drm_driver fsl_dcu_drm_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.enable_vblank = fsl_dcu_drm_enable_vblank,
|
||||
.disable_vblank = fsl_dcu_drm_disable_vblank,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
|
|
|
@ -101,7 +101,7 @@ static struct drm_driver driver = {
|
|||
.minor = DRIVER_MINOR,
|
||||
.patchlevel = DRIVER_PATCHLEVEL,
|
||||
|
||||
.gem_free_object = mgag200_gem_free_object,
|
||||
.gem_free_object_unlocked = mgag200_gem_free_object,
|
||||
.dumb_create = mgag200_dumb_create,
|
||||
.dumb_map_offset = mgag200_dumb_mmap_offset,
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
|
|
|
@ -56,17 +56,9 @@ static void msm_framebuffer_destroy(struct drm_framebuffer *fb)
|
|||
kfree(msm_fb);
|
||||
}
|
||||
|
||||
static int msm_framebuffer_dirty(struct drm_framebuffer *fb,
|
||||
struct drm_file *file_priv, unsigned flags, unsigned color,
|
||||
struct drm_clip_rect *clips, unsigned num_clips)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct drm_framebuffer_funcs msm_framebuffer_funcs = {
|
||||
.create_handle = msm_framebuffer_create_handle,
|
||||
.destroy = msm_framebuffer_destroy,
|
||||
.dirty = msm_framebuffer_dirty,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
|
|
|
@ -962,7 +962,7 @@ driver_stub = {
|
|||
.gem_prime_vmap = nouveau_gem_prime_vmap,
|
||||
.gem_prime_vunmap = nouveau_gem_prime_vunmap,
|
||||
|
||||
.gem_free_object = nouveau_gem_object_del,
|
||||
.gem_free_object_unlocked = nouveau_gem_object_del,
|
||||
.gem_open_object = nouveau_gem_object_open,
|
||||
.gem_close_object = nouveau_gem_object_close,
|
||||
|
||||
|
|
|
@ -122,17 +122,9 @@ static void omap_framebuffer_destroy(struct drm_framebuffer *fb)
|
|||
kfree(omap_fb);
|
||||
}
|
||||
|
||||
static int omap_framebuffer_dirty(struct drm_framebuffer *fb,
|
||||
struct drm_file *file_priv, unsigned flags, unsigned color,
|
||||
struct drm_clip_rect *clips, unsigned num_clips)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct drm_framebuffer_funcs omap_framebuffer_funcs = {
|
||||
.create_handle = omap_framebuffer_create_handle,
|
||||
.destroy = omap_framebuffer_destroy,
|
||||
.dirty = omap_framebuffer_dirty,
|
||||
};
|
||||
|
||||
static uint32_t get_linear_addr(struct plane *plane,
|
||||
|
|
|
@ -256,7 +256,7 @@ static struct drm_driver qxl_driver = {
|
|||
.gem_prime_vmap = qxl_gem_prime_vmap,
|
||||
.gem_prime_vunmap = qxl_gem_prime_vunmap,
|
||||
.gem_prime_mmap = qxl_gem_prime_mmap,
|
||||
.gem_free_object = qxl_gem_object_free,
|
||||
.gem_free_object_unlocked = qxl_gem_object_free,
|
||||
.gem_open_object = qxl_gem_object_open,
|
||||
.gem_close_object = qxl_gem_object_close,
|
||||
.fops = &qxl_fops,
|
||||
|
|
|
@ -217,7 +217,7 @@ static struct drm_driver rcar_du_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.enable_vblank = rcar_du_enable_vblank,
|
||||
.disable_vblank = rcar_du_disable_vblank,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <drm/drmP.h>
|
||||
#include <drm/drm_crtc_helper.h>
|
||||
#include <drm/drm_fb_helper.h>
|
||||
#include <drm/drm_gem_cma_helper.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/module.h>
|
||||
|
@ -300,11 +301,6 @@ static const struct file_operations rockchip_drm_driver_fops = {
|
|||
.release = drm_release,
|
||||
};
|
||||
|
||||
const struct vm_operations_struct rockchip_drm_vm_ops = {
|
||||
.open = drm_gem_vm_open,
|
||||
.close = drm_gem_vm_close,
|
||||
};
|
||||
|
||||
static struct drm_driver rockchip_drm_driver = {
|
||||
.driver_features = DRIVER_MODESET | DRIVER_GEM |
|
||||
DRIVER_PRIME | DRIVER_ATOMIC,
|
||||
|
@ -315,8 +311,8 @@ static struct drm_driver rockchip_drm_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.enable_vblank = rockchip_drm_crtc_enable_vblank,
|
||||
.disable_vblank = rockchip_drm_crtc_disable_vblank,
|
||||
.gem_vm_ops = &rockchip_drm_vm_ops,
|
||||
.gem_free_object = rockchip_gem_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.gem_free_object_unlocked = rockchip_gem_free_object,
|
||||
.dumb_create = rockchip_gem_dumb_create,
|
||||
.dumb_map_offset = rockchip_gem_dumb_map_offset,
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
|
|
|
@ -264,7 +264,7 @@ static struct drm_driver shmob_drm_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.enable_vblank = shmob_drm_enable_vblank,
|
||||
.disable_vblank = shmob_drm_disable_vblank,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.prime_handle_to_fd = drm_gem_prime_handle_to_fd,
|
||||
.prime_fd_to_handle = drm_gem_prime_fd_to_handle,
|
||||
|
|
|
@ -105,12 +105,6 @@ static int cursor_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_cursor *cursor = (struct sti_cursor *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "%s: (vaddr = 0x%p)",
|
||||
sti_plane_to_str(&cursor->plane), cursor->regs);
|
||||
|
@ -129,7 +123,6 @@ static int cursor_dbg_show(struct seq_file *s, void *data)
|
|||
DBGFS_DUMP(CUR_AWE);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -72,11 +72,6 @@ static int sti_drm_fps_dbg_show(struct seq_file *s, void *data)
|
|||
struct drm_info_node *node = s->private;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
struct drm_plane *p;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
list_for_each_entry(p, &dev->mode_config.plane_list, head) {
|
||||
struct sti_plane *plane = to_sti_plane(p);
|
||||
|
@ -86,7 +81,6 @@ static int sti_drm_fps_dbg_show(struct seq_file *s, void *data)
|
|||
plane->fps_info.fips_str);
|
||||
}
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -310,7 +304,7 @@ static struct drm_driver sti_driver = {
|
|||
.driver_features = DRIVER_HAVE_IRQ | DRIVER_MODESET |
|
||||
DRIVER_GEM | DRIVER_PRIME | DRIVER_ATOMIC,
|
||||
.load = sti_load,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.dumb_create = drm_gem_cma_dumb_create,
|
||||
.dumb_map_offset = drm_gem_cma_dumb_map_offset,
|
||||
|
|
|
@ -177,12 +177,6 @@ static int dvo_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_dvo *dvo = (struct sti_dvo *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "DVO: (vaddr = 0x%p)", dvo->regs);
|
||||
DBGFS_DUMP(DVO_AWG_DIGSYNC_CTRL);
|
||||
|
@ -193,7 +187,6 @@ static int dvo_dbg_show(struct seq_file *s, void *data)
|
|||
dvo_dbg_awg_microcode(s, dvo->regs + DVO_DIGSYNC_INSTR_I);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -208,14 +208,8 @@ static int gdp_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_gdp *gdp = (struct sti_gdp *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
struct drm_plane *drm_plane = &gdp->plane.drm_plane;
|
||||
struct drm_crtc *crtc = drm_plane->crtc;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "%s: (vaddr = 0x%p)",
|
||||
sti_plane_to_str(&gdp->plane), gdp->regs);
|
||||
|
@ -248,7 +242,6 @@ static int gdp_dbg_show(struct seq_file *s, void *data)
|
|||
seq_printf(s, " Connected to DRM CRTC #%d (%s)\n",
|
||||
crtc->base.id, sti_mixer_to_str(to_sti_mixer(crtc)));
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -279,13 +272,7 @@ static int gdp_node_dbg_show(struct seq_file *s, void *arg)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_gdp *gdp = (struct sti_gdp *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
unsigned int b;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
for (b = 0; b < GDP_NODE_NB_BANK; b++) {
|
||||
seq_printf(s, "\n%s[%d].top", sti_plane_to_str(&gdp->plane), b);
|
||||
|
@ -294,7 +281,6 @@ static int gdp_node_dbg_show(struct seq_file *s, void *arg)
|
|||
gdp_node_dump_node(s, gdp->node_list[b].btm_field);
|
||||
}
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -376,12 +376,6 @@ static int hda_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_hda *hda = (struct sti_hda *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "HD Analog: (vaddr = 0x%p)", hda->regs);
|
||||
DBGFS_DUMP(HDA_ANA_CFG);
|
||||
|
@ -397,7 +391,6 @@ static int hda_dbg_show(struct seq_file *s, void *data)
|
|||
hda_dbg_video_dacs_ctrl(s, hda->video_dacs_ctrl);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -628,12 +628,6 @@ static int hdmi_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_hdmi *hdmi = (struct sti_hdmi *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "HDMI: (vaddr = 0x%p)", hdmi->regs);
|
||||
DBGFS_DUMP("\n", HDMI_CFG);
|
||||
|
@ -690,7 +684,6 @@ static int hdmi_dbg_show(struct seq_file *s, void *data)
|
|||
DBGFS_DUMP_DI(HDMI_SW_DI_N_PKT_WORD6, HDMI_IFRAME_SLOT_VENDOR);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -555,14 +555,8 @@ static int hqvdp_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_hqvdp *hqvdp = (struct sti_hqvdp *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int cmd, cmd_offset, infoxp70;
|
||||
void *virt;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "%s: (vaddr = 0x%p)",
|
||||
sti_plane_to_str(&hqvdp->plane), hqvdp->regs);
|
||||
|
@ -630,7 +624,6 @@ static int hqvdp_dbg_show(struct seq_file *s, void *data)
|
|||
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -151,12 +151,6 @@ static int mixer_dbg_show(struct seq_file *s, void *arg)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_mixer *mixer = (struct sti_mixer *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "%s: (vaddr = 0x%p)",
|
||||
sti_mixer_to_str(mixer), mixer->regs);
|
||||
|
@ -176,7 +170,6 @@ static int mixer_dbg_show(struct seq_file *s, void *arg)
|
|||
mixer_dbg_mxn(s, mixer->regs + GAM_MIXER_MX0);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -515,13 +515,7 @@ static int tvout_dbg_show(struct seq_file *s, void *data)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_tvout *tvout = (struct sti_tvout *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
struct drm_crtc *crtc;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "TVOUT: (vaddr = 0x%p)", tvout->regs);
|
||||
|
||||
|
@ -587,7 +581,6 @@ static int tvout_dbg_show(struct seq_file *s, void *data)
|
|||
DBGFS_DUMP(TVO_AUX_IN_VID_FORMAT);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -92,12 +92,6 @@ static int vid_dbg_show(struct seq_file *s, void *arg)
|
|||
{
|
||||
struct drm_info_node *node = s->private;
|
||||
struct sti_vid *vid = (struct sti_vid *)node->info_ent->data;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
int ret;
|
||||
|
||||
ret = mutex_lock_interruptible(&dev->struct_mutex);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_printf(s, "VID: (vaddr= 0x%p)", vid->regs);
|
||||
|
||||
|
@ -122,7 +116,6 @@ static int vid_dbg_show(struct seq_file *s, void *arg)
|
|||
DBGFS_DUMP(VID_CSAT);
|
||||
seq_puts(s, "\n");
|
||||
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ static struct drm_driver sun4i_drv_driver = {
|
|||
.dumb_create = drm_gem_cma_dumb_create,
|
||||
.dumb_destroy = drm_gem_dumb_destroy,
|
||||
.dumb_map_offset = drm_gem_cma_dumb_map_offset,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
|
||||
/* PRIME Operations */
|
||||
|
|
|
@ -549,7 +549,7 @@ static struct drm_driver tilcdc_driver = {
|
|||
.get_vblank_counter = drm_vblank_no_hw_counter,
|
||||
.enable_vblank = tilcdc_enable_vblank,
|
||||
.disable_vblank = tilcdc_disable_vblank,
|
||||
.gem_free_object = drm_gem_cma_free_object,
|
||||
.gem_free_object_unlocked = drm_gem_cma_free_object,
|
||||
.gem_vm_ops = &drm_gem_cma_vm_ops,
|
||||
.dumb_create = drm_gem_cma_dumb_create,
|
||||
.dumb_map_offset = drm_gem_cma_dumb_map_offset,
|
||||
|
|
|
@ -143,7 +143,7 @@ static struct drm_driver driver = {
|
|||
.gem_prime_vunmap = virtgpu_gem_prime_vunmap,
|
||||
.gem_prime_mmap = virtgpu_gem_prime_mmap,
|
||||
|
||||
.gem_free_object = virtio_gpu_gem_free_object,
|
||||
.gem_free_object_unlocked = virtio_gpu_gem_free_object,
|
||||
.gem_open_object = virtio_gpu_gem_object_open,
|
||||
.gem_close_object = virtio_gpu_gem_object_close,
|
||||
.fops = &virtio_gpu_driver_fops,
|
||||
|
|
Loading…
Reference in New Issue
Block a user