@@ -35,7 +35,7 @@ static void bochs_unload(struct drm_device *dev)
35
35
dev -> dev_private = NULL ;
36
36
}
37
37
38
- static int bochs_load (struct drm_device * dev , unsigned long flags )
38
+ static int bochs_load (struct drm_device * dev )
39
39
{
40
40
struct bochs_device * bochs ;
41
41
int ret ;
@@ -46,7 +46,7 @@ static int bochs_load(struct drm_device *dev, unsigned long flags)
46
46
dev -> dev_private = bochs ;
47
47
bochs -> dev = dev ;
48
48
49
- ret = bochs_hw_init (dev , flags );
49
+ ret = bochs_hw_init (dev );
50
50
if (ret )
51
51
goto err ;
52
52
@@ -82,8 +82,6 @@ static const struct file_operations bochs_fops = {
82
82
83
83
static struct drm_driver bochs_driver = {
84
84
.driver_features = DRIVER_GEM | DRIVER_MODESET ,
85
- .load = bochs_load ,
86
- .unload = bochs_unload ,
87
85
.fops = & bochs_fops ,
88
86
.name = "bochs-drm" ,
89
87
.desc = "bochs dispi vga interface (qemu stdvga)" ,
@@ -138,6 +136,7 @@ static const struct dev_pm_ops bochs_pm_ops = {
138
136
static int bochs_pci_probe (struct pci_dev * pdev ,
139
137
const struct pci_device_id * ent )
140
138
{
139
+ struct drm_device * dev ;
141
140
unsigned long fbsize ;
142
141
int ret ;
143
142
@@ -151,14 +150,37 @@ static int bochs_pci_probe(struct pci_dev *pdev,
151
150
if (ret )
152
151
return ret ;
153
152
154
- return drm_get_pci_dev (pdev , ent , & bochs_driver );
153
+ dev = drm_dev_alloc (& bochs_driver , & pdev -> dev );
154
+ if (IS_ERR (dev ))
155
+ return PTR_ERR (dev );
156
+
157
+ dev -> pdev = pdev ;
158
+ pci_set_drvdata (pdev , dev );
159
+
160
+ ret = bochs_load (dev );
161
+ if (ret )
162
+ goto err_free_dev ;
163
+
164
+ ret = drm_dev_register (dev , 0 );
165
+ if (ret )
166
+ goto err_unload ;
167
+
168
+ return ret ;
169
+
170
+ err_unload :
171
+ bochs_unload (dev );
172
+ err_free_dev :
173
+ drm_dev_put (dev );
174
+ return ret ;
155
175
}
156
176
157
177
static void bochs_pci_remove (struct pci_dev * pdev )
158
178
{
159
179
struct drm_device * dev = pci_get_drvdata (pdev );
160
180
161
- drm_put_dev (dev );
181
+ drm_dev_unregister (dev );
182
+ bochs_unload (dev );
183
+ drm_dev_put (dev );
162
184
}
163
185
164
186
static const struct pci_device_id bochs_pci_tbl [] = {
0 commit comments