public inbox for linux-tegra@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] gpu: host1x: Do not setup DMA for virtual devices
@ 2024-03-14 15:49 Thierry Reding
  2024-03-15 11:25 ` Jon Hunter
  0 siblings, 1 reply; 4+ messages in thread
From: Thierry Reding @ 2024-03-14 15:49 UTC (permalink / raw)
  To: Thierry Reding; +Cc: Jon Hunter, Jason Gunthorpe, dri-devel, linux-tegra

From: Thierry Reding <treding@nvidia.com>

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 <treding@nvidia.com>
---
 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 = &host1x_device_pm_ops,
 };
 
@@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,
 	device->dev.bus = &host1x_bus_type;
 	device->dev.parent = host1x->dev;
 
-	of_dma_configure(&device->dev, host1x->dev->of_node, true);
-
 	device->dev.dma_parms = &device->dma_parms;
 	dma_set_max_seg_size(&device->dev, UINT_MAX);
 
-- 
2.44.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] gpu: host1x: Do not setup DMA for virtual devices
  2024-03-14 15:49 [PATCH] gpu: host1x: Do not setup DMA for virtual devices Thierry Reding
@ 2024-03-15 11:25 ` Jon Hunter
  2024-04-03 10:07   ` Jon Hunter
  0 siblings, 1 reply; 4+ messages in thread
From: Jon Hunter @ 2024-03-15 11:25 UTC (permalink / raw)
  To: Thierry Reding; +Cc: Jason Gunthorpe, dri-devel, linux-tegra


On 14/03/2024 15:49, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> 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 <treding@nvidia.com>
> ---
>   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 = &host1x_device_pm_ops,
>   };
>   
> @@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,
>   	device->dev.bus = &host1x_bus_type;
>   	device->dev.parent = host1x->dev;
>   
> -	of_dma_configure(&device->dev, host1x->dev->of_node, true);
> -
>   	device->dev.dma_parms = &device->dma_parms;
>   	dma_set_max_seg_size(&device->dev, UINT_MAX);
>   


Tested-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Jon Hunter <jonathanh@nvidia.com>

Thanks!
Jon

-- 
nvpublic

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] gpu: host1x: Do not setup DMA for virtual devices
  2024-03-15 11:25 ` Jon Hunter
@ 2024-04-03 10:07   ` Jon Hunter
  2024-04-08 15:01     ` Thierry Reding
  0 siblings, 1 reply; 4+ messages in thread
From: Jon Hunter @ 2024-04-03 10:07 UTC (permalink / raw)
  To: Thierry Reding; +Cc: Jason Gunthorpe, dri-devel, linux-tegra

Hi Thierry,

On 15/03/2024 11:25, Jon Hunter wrote:
> 
> On 14/03/2024 15:49, Thierry Reding wrote:
>> From: Thierry Reding <treding@nvidia.com>
>>
>> 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 <treding@nvidia.com>
>> ---
>>   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 = &host1x_device_pm_ops,
>>   };
>> @@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,
>>       device->dev.bus = &host1x_bus_type;
>>       device->dev.parent = host1x->dev;
>> -    of_dma_configure(&device->dev, host1x->dev->of_node, true);
>> -
>>       device->dev.dma_parms = &device->dma_parms;
>>       dma_set_max_seg_size(&device->dev, UINT_MAX);
> 
> 
> Tested-by: Jon Hunter <jonathanh@nvidia.com>
> Acked-by: Jon Hunter <jonathanh@nvidia.com>


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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] gpu: host1x: Do not setup DMA for virtual devices
  2024-04-03 10:07   ` Jon Hunter
@ 2024-04-08 15:01     ` Thierry Reding
  0 siblings, 0 replies; 4+ messages in thread
From: Thierry Reding @ 2024-04-08 15:01 UTC (permalink / raw)
  To: Jon Hunter; +Cc: Jason Gunthorpe, dri-devel, linux-tegra

[-- Attachment #1: Type: text/plain, Size: 2887 bytes --]

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 <treding@nvidia.com>
> >>
> >> 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 <treding@nvidia.com>
> >> ---
> >>   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 = &host1x_device_pm_ops,
> >>   };
> >> @@ -458,8 +452,6 @@ static int host1x_device_add(struct host1x *host1x,
> >>       device->dev.bus = &host1x_bus_type;
> >>       device->dev.parent = host1x->dev;
> >> -    of_dma_configure(&device->dev, host1x->dev->of_node, true);
> >> -
> >>       device->dev.dma_parms = &device->dma_parms;
> >>       dma_set_max_seg_size(&device->dev, UINT_MAX);
> > 
> > 
> > Tested-by: Jon Hunter <jonathanh@nvidia.com>
> > Acked-by: Jon Hunter <jonathanh@nvidia.com>
>
>
> 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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-04-08 15:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-14 15:49 [PATCH] gpu: host1x: Do not setup DMA for virtual devices Thierry Reding
2024-03-15 11:25 ` Jon Hunter
2024-04-03 10:07   ` Jon Hunter
2024-04-08 15:01     ` Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox