diff options
Diffstat (limited to 'drivers/gpu/nvgpu/pci.c')
-rw-r--r-- | drivers/gpu/nvgpu/pci.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/pci.c b/drivers/gpu/nvgpu/pci.c index 9ae5e2c6..3057a625 100644 --- a/drivers/gpu/nvgpu/pci.c +++ b/drivers/gpu/nvgpu/pci.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include "gk20a/gk20a.h" | 21 | #include "gk20a/gk20a.h" |
22 | #include "gk20a/platform_gk20a.h" | 22 | #include "gk20a/platform_gk20a.h" |
23 | 23 | ||
24 | #define PCI_INTERFACE_NAME "nvgpu-pci-%s%%s" | 24 | #define PCI_INTERFACE_NAME "card-%s%%s" |
25 | 25 | ||
26 | static int nvgpu_pci_tegra_probe(struct device *dev) | 26 | static int nvgpu_pci_tegra_probe(struct device *dev) |
27 | { | 27 | { |
@@ -135,6 +135,17 @@ static int nvgpu_pci_init_support(struct pci_dev *pdev) | |||
135 | return err; | 135 | return err; |
136 | } | 136 | } |
137 | 137 | ||
138 | static char *nvgpu_pci_devnode(struct device *dev, umode_t *mode) | ||
139 | { | ||
140 | return kasprintf(GFP_KERNEL, "nvgpu-pci/%s", dev_name(dev)); | ||
141 | } | ||
142 | |||
143 | struct class nvgpu_pci_class = { | ||
144 | .owner = THIS_MODULE, | ||
145 | .name = "nvidia-pci-gpu", | ||
146 | .devnode = nvgpu_pci_devnode, | ||
147 | }; | ||
148 | |||
138 | static int nvgpu_pci_probe(struct pci_dev *pdev, | 149 | static int nvgpu_pci_probe(struct pci_dev *pdev, |
139 | const struct pci_device_id *pent) | 150 | const struct pci_device_id *pent) |
140 | { | 151 | { |
@@ -187,7 +198,7 @@ static int nvgpu_pci_probe(struct pci_dev *pdev, | |||
187 | if (!nodefmt) | 198 | if (!nodefmt) |
188 | return -ENOMEM; | 199 | return -ENOMEM; |
189 | 200 | ||
190 | err = gk20a_user_init(&pdev->dev, nodefmt); | 201 | err = gk20a_user_init(&pdev->dev, nodefmt, &nvgpu_pci_class); |
191 | kfree(nodefmt); | 202 | kfree(nodefmt); |
192 | nodefmt = NULL; | 203 | nodefmt = NULL; |
193 | if (err) | 204 | if (err) |
@@ -248,7 +259,7 @@ static void nvgpu_pci_remove(struct pci_dev *pdev) | |||
248 | if (g->remove_support) | 259 | if (g->remove_support) |
249 | g->remove_support(g->dev); | 260 | g->remove_support(g->dev); |
250 | 261 | ||
251 | gk20a_user_deinit(g->dev); | 262 | gk20a_user_deinit(g->dev, &nvgpu_pci_class); |
252 | 263 | ||
253 | debugfs_remove_recursive(platform->debugfs); | 264 | debugfs_remove_recursive(platform->debugfs); |
254 | debugfs_remove_recursive(platform->debugfs_alias); | 265 | debugfs_remove_recursive(platform->debugfs_alias); |
@@ -270,10 +281,17 @@ static struct pci_driver nvgpu_pci_driver = { | |||
270 | 281 | ||
271 | int __init nvgpu_pci_init(void) | 282 | int __init nvgpu_pci_init(void) |
272 | { | 283 | { |
284 | int ret; | ||
285 | |||
286 | ret = class_register(&nvgpu_pci_class); | ||
287 | if (ret) | ||
288 | return ret; | ||
289 | |||
273 | return pci_register_driver(&nvgpu_pci_driver); | 290 | return pci_register_driver(&nvgpu_pci_driver); |
274 | } | 291 | } |
275 | 292 | ||
276 | void __exit nvgpu_pci_exit(void) | 293 | void __exit nvgpu_pci_exit(void) |
277 | { | 294 | { |
278 | pci_unregister_driver(&nvgpu_pci_driver); | 295 | pci_unregister_driver(&nvgpu_pci_driver); |
296 | class_unregister(&nvgpu_pci_class); | ||
279 | } | 297 | } |