[PATCH] drm/hisilicon: Fixed pcie resource conflict using the general API

2020-02-21 Thread Tian Tao
the kernel provide the drm_fb_helper_remove_conflicting_pci_framebuffer
to remvoe the pcie resource conflict,there is no need to driver it again.

Signed-off-by: Tian Tao 
---
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 22 +-
 1 file changed, 5 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c 
b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
index 7ebe831..0f7dba7 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
@@ -47,22 +47,6 @@ static irqreturn_t hibmc_drm_interrupt(int irq, void *arg)
return IRQ_HANDLED;
 }
 
-static void hibmc_remove_framebuffers(struct pci_dev *pdev)
-{
-   struct apertures_struct *ap;
-
-   ap = alloc_apertures(1);
-   if (!ap)
-   return;
-
-   ap->ranges[0].base = pci_resource_start(pdev, 0);
-   ap->ranges[0].size = pci_resource_len(pdev, 0);
-
-   drm_fb_helper_remove_conflicting_framebuffers(ap, "hibmcdrmfb", false);
-
-   kfree(ap);
-}
-
 static struct drm_driver hibmc_driver = {
.driver_features= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
.fops   = &hibmc_fops,
@@ -343,7 +327,11 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
struct drm_device *dev;
int ret;
 
-   hibmc_remove_framebuffers(pdev);
+   ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev,
+   "hibmcdrmfb");
+   if (ret)
+   return ret;
+
 
dev = drm_dev_alloc(&hibmc_driver, &pdev->dev);
if (IS_ERR(dev)) {
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/hisilicon: Fixed pcie resource conflict using the general API

2020-02-21 Thread tiantao (H)

Sorry,my mistake. I sent the wrong patch, please ignore the patch below

在 2020/2/21 16:52, Thomas Zimmermann 写道:

Hi

Am 21.02.20 um 08:06 schrieb Xinliang Liu:

Hi tao,
Are you sending a wrong patch?
Function hibmc_remove_framebuffers is added by your prior reviewing patch.
Please send patch based on drm-misc-next branch[1] or linux-next.


There's drm_fb_helper_remove_conflicting_pci_framebuffers() which
already implements the functionality. I asked to try using it instead of
creating an own implementation.

Best regards
Thomas



Thanks,
-Xinliang

[1] https://anongit.freedesktop.org/git/drm-misc.git

On Fri, 21 Feb 2020 at 13:56, Tian Tao mailto:tiant...@hisilicon.com>> wrote:

 the kernel provide the drm_fb_helper_remove_conflicting_pci_framebuffer
 to remvoe the pcie resource conflict,there is no need to driver it
 again.

 Signed-off-by: Tian Tao mailto:tiant...@hisilicon.com>>
 ---
  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 22
 +-
  1 file changed, 5 insertions(+), 17 deletions(-)

 diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
 b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
 index 7ebe831..0f7dba7 100644
 --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
 +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
 @@ -47,22 +47,6 @@ static irqreturn_t hibmc_drm_interrupt(int irq,
 void *arg)
         return IRQ_HANDLED;
  }

 -static void hibmc_remove_framebuffers(struct pci_dev *pdev)
 -{
 -       struct apertures_struct *ap;
 -
 -       ap = alloc_apertures(1);
 -       if (!ap)
 -               return;
 -
 -       ap->ranges[0].base = pci_resource_start(pdev, 0);
 -       ap->ranges[0].size = pci_resource_len(pdev, 0);
 -
 -       drm_fb_helper_remove_conflicting_framebuffers(ap,
 "hibmcdrmfb", false);
 -
 -       kfree(ap);
 -}
 -
  static struct drm_driver hibmc_driver = {
         .driver_features        = DRIVER_GEM | DRIVER_MODESET |
 DRIVER_ATOMIC,
         .fops                   = &hibmc_fops,
 @@ -343,7 +327,11 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
         struct drm_device *dev;
         int ret;

 -       hibmc_remove_framebuffers(pdev);
 +       ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev,
 +
  "hibmcdrmfb");
 +       if (ret)
 +               return ret;
 +

         dev = drm_dev_alloc(&hibmc_driver, &pdev->dev);
         if (IS_ERR(dev)) {
 --
 2.7.4





___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/hisilicon: Fixed pcie resource conflict using the general API

2020-02-21 Thread Xinliang Liu
Hi tao,
Are you sending a wrong patch?
Function hibmc_remove_framebuffers is added by your prior reviewing patch.
Please send patch based on drm-misc-next branch[1] or linux-next.

Thanks,
-Xinliang

[1] https://anongit.freedesktop.org/git/drm-misc.git

On Fri, 21 Feb 2020 at 13:56, Tian Tao  wrote:

> the kernel provide the drm_fb_helper_remove_conflicting_pci_framebuffer
> to remvoe the pcie resource conflict,there is no need to driver it again.
>
> Signed-off-by: Tian Tao 
> ---
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 22
> +-
>  1 file changed, 5 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 7ebe831..0f7dba7 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -47,22 +47,6 @@ static irqreturn_t hibmc_drm_interrupt(int irq, void
> *arg)
> return IRQ_HANDLED;
>  }
>
> -static void hibmc_remove_framebuffers(struct pci_dev *pdev)
> -{
> -   struct apertures_struct *ap;
> -
> -   ap = alloc_apertures(1);
> -   if (!ap)
> -   return;
> -
> -   ap->ranges[0].base = pci_resource_start(pdev, 0);
> -   ap->ranges[0].size = pci_resource_len(pdev, 0);
> -
> -   drm_fb_helper_remove_conflicting_framebuffers(ap, "hibmcdrmfb",
> false);
> -
> -   kfree(ap);
> -}
> -
>  static struct drm_driver hibmc_driver = {
> .driver_features= DRIVER_GEM | DRIVER_MODESET |
> DRIVER_ATOMIC,
> .fops   = &hibmc_fops,
> @@ -343,7 +327,11 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
> struct drm_device *dev;
> int ret;
>
> -   hibmc_remove_framebuffers(pdev);
> +   ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev,
> +
>  "hibmcdrmfb");
> +   if (ret)
> +   return ret;
> +
>
> dev = drm_dev_alloc(&hibmc_driver, &pdev->dev);
> if (IS_ERR(dev)) {
> --
> 2.7.4
>
>
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/hisilicon: Fixed pcie resource conflict using the general API

2020-02-21 Thread Thomas Zimmermann
Hi

Am 21.02.20 um 06:55 schrieb Tian Tao:
> the kernel provide the drm_fb_helper_remove_conflicting_pci_framebuffer
> to remvoe the pcie resource conflict,there is no need to driver it again.
> 
> Signed-off-by: Tian Tao 
> ---
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 22 +-
>  1 file changed, 5 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c 
> b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 7ebe831..0f7dba7 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -47,22 +47,6 @@ static irqreturn_t hibmc_drm_interrupt(int irq, void *arg)
>   return IRQ_HANDLED;
>  }
>  
> -static void hibmc_remove_framebuffers(struct pci_dev *pdev)
> -{
> - struct apertures_struct *ap;
> -
> - ap = alloc_apertures(1);
> - if (!ap)
> - return;
> -
> - ap->ranges[0].base = pci_resource_start(pdev, 0);
> - ap->ranges[0].size = pci_resource_len(pdev, 0);
> -
> - drm_fb_helper_remove_conflicting_framebuffers(ap, "hibmcdrmfb", false);
> -
> - kfree(ap);
> -}
> -
>  static struct drm_driver hibmc_driver = {
>   .driver_features= DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC,
>   .fops   = &hibmc_fops,
> @@ -343,7 +327,11 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
>   struct drm_device *dev;
>   int ret;
>  
> - hibmc_remove_framebuffers(pdev);
> + ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev,
> + "hibmcdrmfb");
> + if (ret)
> + return ret;
> +
>  

Only one empty line please. With this change

Acked-by: Thomas Zimmermann 


>   dev = drm_dev_alloc(&hibmc_driver, &pdev->dev);
>   if (IS_ERR(dev)) {
> 

-- 
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



signature.asc
Description: OpenPGP digital signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH] drm/hisilicon: Fixed pcie resource conflict using the general API

2020-02-21 Thread Thomas Zimmermann
Hi

Am 21.02.20 um 08:06 schrieb Xinliang Liu:
> Hi tao,
> Are you sending a wrong patch?
> Function hibmc_remove_framebuffers is added by your prior reviewing patch.
> Please send patch based on drm-misc-next branch[1] or linux-next.

There's drm_fb_helper_remove_conflicting_pci_framebuffers() which
already implements the functionality. I asked to try using it instead of
creating an own implementation.

Best regards
Thomas

> 
> Thanks,
> -Xinliang
> 
> [1] https://anongit.freedesktop.org/git/drm-misc.git
> 
> On Fri, 21 Feb 2020 at 13:56, Tian Tao  > wrote:
> 
> the kernel provide the drm_fb_helper_remove_conflicting_pci_framebuffer
> to remvoe the pcie resource conflict,there is no need to driver it
> again.
> 
> Signed-off-by: Tian Tao  >
> ---
>  drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 22
> +-
>  1 file changed, 5 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> index 7ebe831..0f7dba7 100644
> --- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> +++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c
> @@ -47,22 +47,6 @@ static irqreturn_t hibmc_drm_interrupt(int irq,
> void *arg)
>         return IRQ_HANDLED;
>  }
> 
> -static void hibmc_remove_framebuffers(struct pci_dev *pdev)
> -{
> -       struct apertures_struct *ap;
> -
> -       ap = alloc_apertures(1);
> -       if (!ap)
> -               return;
> -
> -       ap->ranges[0].base = pci_resource_start(pdev, 0);
> -       ap->ranges[0].size = pci_resource_len(pdev, 0);
> -
> -       drm_fb_helper_remove_conflicting_framebuffers(ap,
> "hibmcdrmfb", false);
> -
> -       kfree(ap);
> -}
> -
>  static struct drm_driver hibmc_driver = {
>         .driver_features        = DRIVER_GEM | DRIVER_MODESET |
> DRIVER_ATOMIC,
>         .fops                   = &hibmc_fops,
> @@ -343,7 +327,11 @@ static int hibmc_pci_probe(struct pci_dev *pdev,
>         struct drm_device *dev;
>         int ret;
> 
> -       hibmc_remove_framebuffers(pdev);
> +       ret = drm_fb_helper_remove_conflicting_pci_framebuffers(pdev,
> +                                                             
>  "hibmcdrmfb");
> +       if (ret)
> +               return ret;
> +
> 
>         dev = drm_dev_alloc(&hibmc_driver, &pdev->dev);
>         if (IS_ERR(dev)) {
> -- 
> 2.7.4
> 

-- 
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



signature.asc
Description: OpenPGP digital signature
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel