Skip to content

Commit cbdded7

Browse files
Gabriel Krisman Bertazikraxel
authored andcommitted
drm: qxl: Embed drm_device into driver structure
This is the recommended way to create the drm_device structure, according to DRM documentation. Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk> Link: http://patchwork.freedesktop.org/patch/msgid/20170127010548.27970-4-krisman@collabora.co.uk Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
1 parent d74d74a commit cbdded7

File tree

10 files changed

+52
-57
lines changed

10 files changed

+52
-57
lines changed

drivers/gpu/drm/qxl/qxl_debugfs.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ int qxl_debugfs_add_files(struct qxl_device *qdev,
133133
qdev->debugfs_count = i;
134134
#if defined(CONFIG_DEBUG_FS)
135135
drm_debugfs_create_files(files, nfiles,
136-
qdev->ddev->primary->debugfs_root,
137-
qdev->ddev->primary);
136+
qdev->ddev.primary->debugfs_root,
137+
qdev->ddev.primary);
138138
#endif
139139
return 0;
140140
}
@@ -147,7 +147,7 @@ void qxl_debugfs_remove_files(struct qxl_device *qdev)
147147
for (i = 0; i < qdev->debugfs_count; i++) {
148148
drm_debugfs_remove_files(qdev->debugfs[i].files,
149149
qdev->debugfs[i].num_files,
150-
qdev->ddev->primary);
150+
qdev->ddev.primary);
151151
}
152152
#endif
153153
}

drivers/gpu/drm/qxl/qxl_display.c

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ static int qxl_display_copy_rom_client_monitors_config(struct qxl_device *qdev)
136136

137137
static void qxl_update_offset_props(struct qxl_device *qdev)
138138
{
139-
struct drm_device *dev = qdev->ddev;
139+
struct drm_device *dev = &qdev->ddev;
140140
struct drm_connector *connector;
141141
struct qxl_output *output;
142142
struct qxl_head *head;
@@ -156,7 +156,7 @@ static void qxl_update_offset_props(struct qxl_device *qdev)
156156
void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
157157
{
158158

159-
struct drm_device *dev = qdev->ddev;
159+
struct drm_device *dev = &qdev->ddev;
160160
int status;
161161

162162
status = qxl_display_copy_rom_client_monitors_config(qdev);
@@ -174,10 +174,10 @@ void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
174174
drm_modeset_lock_all(dev);
175175
qxl_update_offset_props(qdev);
176176
drm_modeset_unlock_all(dev);
177-
if (!drm_helper_hpd_irq_event(qdev->ddev)) {
177+
if (!drm_helper_hpd_irq_event(dev)) {
178178
/* notify that the monitor configuration changed, to
179179
adjust at the arbitrary resolution */
180-
drm_kms_helper_hotplug_event(qdev->ddev);
180+
drm_kms_helper_hotplug_event(dev);
181181
}
182182
}
183183

@@ -1036,7 +1036,7 @@ static int qxl_mode_create_hotplug_mode_update_property(struct qxl_device *qdev)
10361036
return 0;
10371037

10381038
qdev->hotplug_mode_update_property =
1039-
drm_property_create_range(qdev->ddev, DRM_MODE_PROP_IMMUTABLE,
1039+
drm_property_create_range(&qdev->ddev, DRM_MODE_PROP_IMMUTABLE,
10401040
"hotplug_mode_update", 0, 1);
10411041

10421042
return 0;
@@ -1175,28 +1175,28 @@ int qxl_modeset_init(struct qxl_device *qdev)
11751175
int i;
11761176
int ret;
11771177

1178-
drm_mode_config_init(qdev->ddev);
1178+
drm_mode_config_init(&qdev->ddev);
11791179

11801180
ret = qxl_create_monitors_object(qdev);
11811181
if (ret)
11821182
return ret;
11831183

1184-
qdev->ddev->mode_config.funcs = (void *)&qxl_mode_funcs;
1184+
qdev->ddev.mode_config.funcs = (void *)&qxl_mode_funcs;
11851185

11861186
/* modes will be validated against the framebuffer size */
1187-
qdev->ddev->mode_config.min_width = 320;
1188-
qdev->ddev->mode_config.min_height = 200;
1189-
qdev->ddev->mode_config.max_width = 8192;
1190-
qdev->ddev->mode_config.max_height = 8192;
1187+
qdev->ddev.mode_config.min_width = 320;
1188+
qdev->ddev.mode_config.min_height = 200;
1189+
qdev->ddev.mode_config.max_width = 8192;
1190+
qdev->ddev.mode_config.max_height = 8192;
11911191

1192-
qdev->ddev->mode_config.fb_base = qdev->vram_base;
1192+
qdev->ddev.mode_config.fb_base = qdev->vram_base;
11931193

1194-
drm_mode_create_suggested_offset_properties(qdev->ddev);
1194+
drm_mode_create_suggested_offset_properties(&qdev->ddev);
11951195
qxl_mode_create_hotplug_mode_update_property(qdev);
11961196

11971197
for (i = 0 ; i < qxl_num_crtc; ++i) {
1198-
qdev_crtc_init(qdev->ddev, i);
1199-
qdev_output_init(qdev->ddev, i);
1198+
qdev_crtc_init(&qdev->ddev, i);
1199+
qdev_output_init(&qdev->ddev, i);
12001200
}
12011201

12021202
qdev->mode_info.mode_config_initialized = true;
@@ -1214,7 +1214,7 @@ void qxl_modeset_fini(struct qxl_device *qdev)
12141214

12151215
qxl_destroy_monitors_object(qdev);
12161216
if (qdev->mode_info.mode_config_initialized) {
1217-
drm_mode_config_cleanup(qdev->ddev);
1217+
drm_mode_config_cleanup(&qdev->ddev);
12181218
qdev->mode_info.mode_config_initialized = false;
12191219
}
12201220
}

drivers/gpu/drm/qxl/qxl_drv.c

Lines changed: 9 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ static struct pci_driver qxl_pci_driver;
6262
static int
6363
qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
6464
{
65-
struct drm_device *drm;
6665
struct qxl_device *qdev;
6766
int ret;
6867

@@ -72,40 +71,30 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
7271
return -EINVAL; /* TODO: ENODEV ? */
7372
}
7473

75-
drm = drm_dev_alloc(&qxl_driver, &pdev->dev);
76-
if (IS_ERR(drm))
77-
return -ENOMEM;
78-
7974
qdev = kzalloc(sizeof(struct qxl_device), GFP_KERNEL);
80-
if (!qdev) {
81-
ret = -ENOMEM;
82-
goto free_drm_device;
83-
}
75+
if (!qdev)
76+
return -ENOMEM;
8477

8578
ret = pci_enable_device(pdev);
8679
if (ret)
87-
goto free_drm_device;
88-
89-
drm->pdev = pdev;
90-
pci_set_drvdata(pdev, drm);
91-
drm->dev_private = qdev;
80+
goto free_dev;
9281

93-
ret = qxl_device_init(qdev, drm, pdev, ent->driver_data);
82+
ret = qxl_device_init(qdev, &qxl_driver, pdev, ent->driver_data);
9483
if (ret)
9584
goto disable_pci;
9685

97-
ret = drm_vblank_init(drm, 1);
86+
ret = drm_vblank_init(&qdev->ddev, 1);
9887
if (ret)
9988
goto unload;
10089

10190
ret = qxl_modeset_init(qdev);
10291
if (ret)
10392
goto vblank_cleanup;
10493

105-
drm_kms_helper_poll_init(qdev->ddev);
94+
drm_kms_helper_poll_init(&qdev->ddev);
10695

10796
/* Complete initialization. */
108-
ret = drm_dev_register(drm, ent->driver_data);
97+
ret = drm_dev_register(&qdev->ddev, ent->driver_data);
10998
if (ret)
11099
goto modeset_cleanup;
111100

@@ -114,14 +103,13 @@ qxl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
114103
modeset_cleanup:
115104
qxl_modeset_fini(qdev);
116105
vblank_cleanup:
117-
drm_vblank_cleanup(drm);
106+
drm_vblank_cleanup(&qdev->ddev);
118107
unload:
119108
qxl_device_fini(qdev);
120109
disable_pci:
121110
pci_disable_device(pdev);
122-
free_drm_device:
111+
free_dev:
123112
kfree(qdev);
124-
kfree(drm);
125113
return ret;
126114
}
127115

drivers/gpu/drm/qxl/qxl_drv.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ void qxl_debugfs_remove_files(struct qxl_device *qdev);
242242
struct qxl_device;
243243

244244
struct qxl_device {
245-
struct drm_device *ddev;
245+
struct drm_device ddev;
246246
unsigned long flags;
247247

248248
resource_size_t vram_base, vram_size;
@@ -334,8 +334,8 @@ __printf(2,3) void qxl_io_log(struct qxl_device *qdev, const char *fmt, ...);
334334
extern const struct drm_ioctl_desc qxl_ioctls[];
335335
extern int qxl_max_ioctl;
336336

337-
int qxl_device_init(struct qxl_device *qdev, struct drm_device *ddev,
338-
struct pci_dev *pdev, unsigned long flags);
337+
int qxl_device_init(struct qxl_device *qdev, struct drm_driver *drv,
338+
struct pci_dev *pdev, unsigned long flags);
339339
void qxl_device_fini(struct qxl_device *qdev);
340340

341341
int qxl_modeset_init(struct qxl_device *qdev);

drivers/gpu/drm/qxl/qxl_fb.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev,
268268

269269
info->par = qfbdev;
270270

271-
qxl_framebuffer_init(qdev->ddev, &qfbdev->qfb, &mode_cmd, gobj,
271+
qxl_framebuffer_init(&qdev->ddev, &qfbdev->qfb, &mode_cmd, gobj,
272272
&qxlfb_fb_funcs);
273273

274274
fb = &qfbdev->qfb.base;
@@ -297,7 +297,7 @@ static int qxlfb_create(struct qxl_fbdev *qfbdev,
297297
sizes->fb_height);
298298

299299
/* setup aperture base/size for vesafb takeover */
300-
info->apertures->ranges[0].base = qdev->ddev->mode_config.fb_base;
300+
info->apertures->ranges[0].base = qdev->ddev.mode_config.fb_base;
301301
info->apertures->ranges[0].size = qdev->vram_size;
302302

303303
info->fix.mmio_start = 0;
@@ -395,10 +395,10 @@ int qxl_fbdev_init(struct qxl_device *qdev)
395395
spin_lock_init(&qfbdev->delayed_ops_lock);
396396
INIT_LIST_HEAD(&qfbdev->delayed_ops);
397397

398-
drm_fb_helper_prepare(qdev->ddev, &qfbdev->helper,
398+
drm_fb_helper_prepare(&qdev->ddev, &qfbdev->helper,
399399
&qxl_fb_helper_funcs);
400400

401-
ret = drm_fb_helper_init(qdev->ddev, &qfbdev->helper,
401+
ret = drm_fb_helper_init(&qdev->ddev, &qfbdev->helper,
402402
qxl_num_crtc,
403403
QXLFB_CONN_LIMIT);
404404
if (ret)
@@ -426,7 +426,7 @@ void qxl_fbdev_fini(struct qxl_device *qdev)
426426
if (!qdev->mode_info.qfbdev)
427427
return;
428428

429-
qxl_fbdev_destroy(qdev->ddev, qdev->mode_info.qfbdev);
429+
qxl_fbdev_destroy(&qdev->ddev, qdev->mode_info.qfbdev);
430430
kfree(qdev->mode_info.qfbdev);
431431
qdev->mode_info.qfbdev = NULL;
432432
}

drivers/gpu/drm/qxl/qxl_ioctl.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ static int qxl_map_ioctl(struct drm_device *dev, void *data,
6464
struct qxl_device *qdev = dev->dev_private;
6565
struct drm_qxl_map *qxl_map = data;
6666

67-
return qxl_mode_dumb_mmap(file_priv, qdev->ddev, qxl_map->handle,
67+
return qxl_mode_dumb_mmap(file_priv, &qdev->ddev, qxl_map->handle,
6868
&qxl_map->offset);
6969
}
7070

drivers/gpu/drm/qxl/qxl_irq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ int qxl_irq_init(struct qxl_device *qdev)
9090
atomic_set(&qdev->irq_received_cursor, 0);
9191
atomic_set(&qdev->irq_received_io_cmd, 0);
9292
qdev->irq_received_error = 0;
93-
ret = drm_irq_install(qdev->ddev, qdev->ddev->pdev->irq);
93+
ret = drm_irq_install(&qdev->ddev, qdev->ddev.pdev->irq);
9494
qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
9595
if (unlikely(ret != 0)) {
9696
DRM_ERROR("Failed installing irq: %d\n", ret);

drivers/gpu/drm/qxl/qxl_kms.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,20 @@ static void qxl_gc_work(struct work_struct *work)
116116
}
117117

118118
int qxl_device_init(struct qxl_device *qdev,
119-
struct drm_device *ddev,
119+
struct drm_driver *drv,
120120
struct pci_dev *pdev,
121121
unsigned long flags)
122122
{
123123
int r, sb;
124124

125-
qdev->ddev = ddev;
125+
r = drm_dev_init(&qdev->ddev, drv, &pdev->dev);
126+
if (r)
127+
return r;
128+
129+
qdev->ddev.pdev = pdev;
130+
pci_set_drvdata(pdev, &qdev->ddev);
131+
qdev->ddev.dev_private = qdev;
132+
126133
qdev->flags = flags;
127134

128135
mutex_init(&qdev->gem.mutex);

drivers/gpu/drm/qxl/qxl_object.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ int qxl_bo_create(struct qxl_device *qdev,
9393
if (bo == NULL)
9494
return -ENOMEM;
9595
size = roundup(size, PAGE_SIZE);
96-
r = drm_gem_object_init(qdev->ddev, &bo->gem_base, size);
96+
r = drm_gem_object_init(&qdev->ddev, &bo->gem_base, size);
9797
if (unlikely(r)) {
9898
kfree(bo);
9999
return r;
@@ -113,7 +113,7 @@ int qxl_bo_create(struct qxl_device *qdev,
113113
NULL, NULL, &qxl_ttm_bo_destroy);
114114
if (unlikely(r != 0)) {
115115
if (r != -ERESTARTSYS)
116-
dev_err(qdev->ddev->dev,
116+
dev_err(qdev->ddev.dev,
117117
"object_init failed for (%lu, 0x%08X)\n",
118118
size, domain);
119119
return r;
@@ -270,9 +270,9 @@ void qxl_bo_force_delete(struct qxl_device *qdev)
270270

271271
if (list_empty(&qdev->gem.objects))
272272
return;
273-
dev_err(qdev->ddev->dev, "Userspace still has active objects !\n");
273+
dev_err(qdev->ddev.dev, "Userspace still has active objects !\n");
274274
list_for_each_entry_safe(bo, n, &qdev->gem.objects, list) {
275-
dev_err(qdev->ddev->dev, "%p %p %lu %lu force free\n",
275+
dev_err(qdev->ddev.dev, "%p %p %lu %lu force free\n",
276276
&bo->gem_base, bo, (unsigned long)bo->gem_base.size,
277277
*((unsigned long *)&bo->gem_base.refcount));
278278
mutex_lock(&qdev->gem.mutex);

drivers/gpu/drm/qxl/qxl_ttm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ int qxl_ttm_init(struct qxl_device *qdev)
408408
r = ttm_bo_device_init(&qdev->mman.bdev,
409409
qdev->mman.bo_global_ref.ref.object,
410410
&qxl_bo_driver,
411-
qdev->ddev->anon_inode->i_mapping,
411+
qdev->ddev.anon_inode->i_mapping,
412412
DRM_FILE_PAGE_OFFSET, 0);
413413
if (r) {
414414
DRM_ERROR("failed initializing buffer object driver(%d).\n", r);

0 commit comments

Comments
 (0)