Am Mittwoch, dem 21.06.2023 um 22:44 +0800 schrieb Sui Jingfeng: > Hi, > > On 2023/6/21 18:00, Lucas Stach wrote: > > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.h b/drivers/gpu/drm/etnaviv/etnaviv_drv.h > > > index 9cd72948cfad..644e5712c050 100644 > > > --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.h > > > +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.h > > > @@ -46,6 +46,12 @@ struct etnaviv_drm_private { > > > struct xarray active_contexts; > > > u32 next_context_id; > > > > > > + /* > > > + * If true, the GPU is capable of snooping cpu cache. Here, it > > > + * also means that cache coherency is enforced by the hardware. > > > + */ > > > + bool dma_coherent; > > > + > > No need for this, I think. Just use dev_is_dma_coherent() where you > > need to know this. > > > No, we want this value cached by the driver. > Why? dev_is_dma_coherent() is a header-only function with a single pointer chasing operation. Your cache is also a single pointer chasing access, just that we now need storage for this information in both struct device and struct etnaviv_gpu. Regards, Lucas > We only need call dev_is_dma_coherent() once! > > We need to reuse this variable on other places. >