Re: [PATCH] gpu: host1x: Do not setup DMA for virtual devices

2024-04-08 Thread Thierry Reding
On Wed Apr 3, 2024 at 12:07 PM CEST, Jon Hunter wrote:
> Hi Thierry,
>
> On 15/03/2024 11:25, Jon Hunter wrote:
> > 
> > On 14/03/2024 15:49, Thierry Reding wrote:
> >> From: Thierry Reding 
> >>
> >> The host1x devices are virtual compound devices and do not perform DMA
> >> accesses themselves, so they do not need to be set up for DMA.
> >>
> >> Ideally we would also not need to set up DMA masks for the virtual
> >> devices, but we currently still need those for legacy support on old
> >> hardware.
> >>
> >> Signed-off-by: Thierry Reding 
> >> ---
> >>   drivers/gpu/host1x/bus.c | 8 
> >>   1 file changed, 8 deletions(-)
> >>
> >> diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
> >> index 783975d1384f..7c52757a89db 100644
> >> --- a/drivers/gpu/host1x/bus.c
> >> +++ b/drivers/gpu/host1x/bus.c
> >> @@ -351,11 +351,6 @@ static int host1x_device_uevent(const struct 
> >> device *dev,
> >>   return 0;
> >>   }
> >> -static int host1x_dma_configure(struct device *dev)
> >> -{
> >> -    return of_dma_configure(dev, dev->of_node, true);
> >> -}
> >> -
> >>   static const struct dev_pm_ops host1x_device_pm_ops = {
> >>   .suspend = pm_generic_suspend,
> >>   .resume = pm_generic_resume,
> >> @@ -369,7 +364,6 @@ const struct bus_type host1x_bus_type = {
> >>   .name = "host1x",
> >>   .match = host1x_device_match,
> >>   .uevent = host1x_device_uevent,
> >> -    .dma_configure = host1x_dma_configure,
> >>   .pm = _device_pm_ops,
> >>   };
> >> @@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,
> >>   device->dev.bus = _bus_type;
> >>   device->dev.parent = host1x->dev;
> >> -    of_dma_configure(>dev, host1x->dev->of_node, true);
> >> -
> >>   device->dev.dma_parms = >dma_parms;
> >>   dma_set_max_seg_size(>dev, UINT_MAX);
> > 
> > 
> > Tested-by: Jon Hunter 
> > Acked-by: Jon Hunter 
>
>
> I don't see this in -next yet?
>
> Ideally, if we don't see any issues with this we should pull this into 
> v6.8.y stable branch because I am now seeing the warning there. Should 
> we apply a fixes tag to this?

I was finally able to run some finally tests on this and pushed it to
drm-misc-fixes, so it should go into linux-next and then Linus' tree
sometime soon.

I decided against adding a Fixes tag because it's difficult to backport
this all the way to the release which contains the commit that added
the issue. Adding a Fixes tag to the commit that ended up exposing the
issue didn't seem right either, so let's get this into mainline first
and then manually ask stable maintainers to pick this up.

Thierry


signature.asc
Description: PGP signature


Re: [PATCH] gpu: host1x: Do not setup DMA for virtual devices

2024-04-03 Thread Jon Hunter

Hi Thierry,

On 15/03/2024 11:25, Jon Hunter wrote:


On 14/03/2024 15:49, Thierry Reding wrote:

From: Thierry Reding 

The host1x devices are virtual compound devices and do not perform DMA
accesses themselves, so they do not need to be set up for DMA.

Ideally we would also not need to set up DMA masks for the virtual
devices, but we currently still need those for legacy support on old
hardware.

Signed-off-by: Thierry Reding 
---
  drivers/gpu/host1x/bus.c | 8 
  1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
index 783975d1384f..7c52757a89db 100644
--- a/drivers/gpu/host1x/bus.c
+++ b/drivers/gpu/host1x/bus.c
@@ -351,11 +351,6 @@ static int host1x_device_uevent(const struct 
device *dev,

  return 0;
  }
-static int host1x_dma_configure(struct device *dev)
-{
-    return of_dma_configure(dev, dev->of_node, true);
-}
-
  static const struct dev_pm_ops host1x_device_pm_ops = {
  .suspend = pm_generic_suspend,
  .resume = pm_generic_resume,
@@ -369,7 +364,6 @@ const struct bus_type host1x_bus_type = {
  .name = "host1x",
  .match = host1x_device_match,
  .uevent = host1x_device_uevent,
-    .dma_configure = host1x_dma_configure,
  .pm = _device_pm_ops,
  };
@@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,
  device->dev.bus = _bus_type;
  device->dev.parent = host1x->dev;
-    of_dma_configure(>dev, host1x->dev->of_node, true);
-
  device->dev.dma_parms = >dma_parms;
  dma_set_max_seg_size(>dev, UINT_MAX);



Tested-by: Jon Hunter 
Acked-by: Jon Hunter 



I don't see this in -next yet?

Ideally, if we don't see any issues with this we should pull this into 
v6.8.y stable branch because I am now seeing the warning there. Should 
we apply a fixes tag to this?


Thanks
Jon

--
nvpublic


Re: [PATCH] gpu: host1x: Do not setup DMA for virtual devices

2024-03-15 Thread Jon Hunter



On 14/03/2024 15:49, Thierry Reding wrote:

From: Thierry Reding 

The host1x devices are virtual compound devices and do not perform DMA
accesses themselves, so they do not need to be set up for DMA.

Ideally we would also not need to set up DMA masks for the virtual
devices, but we currently still need those for legacy support on old
hardware.

Signed-off-by: Thierry Reding 
---
  drivers/gpu/host1x/bus.c | 8 
  1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
index 783975d1384f..7c52757a89db 100644
--- a/drivers/gpu/host1x/bus.c
+++ b/drivers/gpu/host1x/bus.c
@@ -351,11 +351,6 @@ static int host1x_device_uevent(const struct device *dev,
return 0;
  }
  
-static int host1x_dma_configure(struct device *dev)

-{
-   return of_dma_configure(dev, dev->of_node, true);
-}
-
  static const struct dev_pm_ops host1x_device_pm_ops = {
.suspend = pm_generic_suspend,
.resume = pm_generic_resume,
@@ -369,7 +364,6 @@ const struct bus_type host1x_bus_type = {
.name = "host1x",
.match = host1x_device_match,
.uevent = host1x_device_uevent,
-   .dma_configure = host1x_dma_configure,
.pm = _device_pm_ops,
  };
  
@@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,

device->dev.bus = _bus_type;
device->dev.parent = host1x->dev;
  
-	of_dma_configure(>dev, host1x->dev->of_node, true);

-
device->dev.dma_parms = >dma_parms;
dma_set_max_seg_size(>dev, UINT_MAX);
  



Tested-by: Jon Hunter 
Acked-by: Jon Hunter 

Thanks!
Jon

--
nvpublic