add the shutdown function to release the resource.
v2:
Remove the unnecessary unmap function.
Signed-off-by: Tian Tao <[email protected]>
Reviewed-by: Sam Ravnborg <[email protected]>
---
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index a6fd0c2..0250a10 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -337,7 +337,7 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
dev->pdev = pdev;
pci_set_drvdata(pdev, dev);
- ret = pci_enable_device(pdev);
+ ret = pcim_enable_device(pdev);
if (ret) {
DRM_ERROR("failed to enable pci device: %d\n", ret);
goto err_free;
@@ -376,6 +376,11 @@ static void hibmc_pci_remove(struct pci_dev *pdev)
drm_dev_put(dev);
}
+static void hibmc_pci_shutdown(struct pci_dev *pdev)
+{
+ hibmc_pci_remove(pdev);
+}
+
static struct pci_device_id hibmc_pci_table[] = {
{ PCI_VDEVICE(HUAWEI, 0x1711) },
{0,}
@@ -386,6 +391,7 @@ static struct pci_driver hibmc_pci_driver = {
.id_table = hibmc_pci_table,
.probe = hibmc_pci_probe,
.remove = hibmc_pci_remove,
+ .shutdown = hibmc_pci_shutdown,
.driver.pm = &hibmc_pm_ops,
};
--
2.7.4
Hi
Am 16.04.20 um 03:02 schrieb Tian Tao:
> add the shutdown function to release the resource.
Why is this necessary for hibmc? The other PCI drivers don't require a
shutdown method.
>
> v2:
> Remove the unnecessary unmap function.
>
> Signed-off-by: Tian Tao <[email protected]>
> Reviewed-by: Sam Ravnborg <[email protected]>
> ---
> drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index a6fd0c2..0250a10 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -337,7 +337,7 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
> dev->pdev = pdev;
> pci_set_drvdata(pdev, dev);
>
> - ret = pci_enable_device(pdev);
> + ret = pcim_enable_device(pdev);
This probably makes sense.
Best regards
Thomas
> if (ret) {
> DRM_ERROR("failed to enable pci device: %d\n", ret);
> goto err_free;
> @@ -376,6 +376,11 @@ static void hibmc_pci_remove(struct pci_dev *pdev)
> drm_dev_put(dev);
> }
>
> +static void hibmc_pci_shutdown(struct pci_dev *pdev)
> +{
> + hibmc_pci_remove(pdev);
> +}
> +
> static struct pci_device_id hibmc_pci_table[] = {
> { PCI_VDEVICE(HUAWEI, 0x1711) },
> {0,}
> @@ -386,6 +391,7 @@ static struct pci_driver hibmc_pci_driver = {
> .id_table = hibmc_pci_table,
> .probe = hibmc_pci_probe,
> .remove = hibmc_pci_remove,
> + .shutdown = hibmc_pci_shutdown,
> .driver.pm = &hibmc_pm_ops,
> };
>
>
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer