[PATCH v4 08/13] dm: Introduce dev_phys_to_bus()/dev_bus_to_phys()

Stefan Roese sr at denx.de
Tue Dec 22 16:27:44 CET 2020


On 22.12.20 13:35, Nicolas Saenz Julienne wrote:
> These functions, instead of relying on hard-coded platform-specific
> address translations, make use of the DMA constraints provided by the DM
> core. This allows for per-device translations.
> 
> We can't yet get rid of the legacy phys_to_bus()/bus_to_phys()
> implementations as some of its users are not integrated into the
> device model.
> 
> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne at suse.de>
> Reviewed-by: Simon Glass <sjg at chromium.org>

Reviewed-by: Stefan Roese <sr at denx.de>

Thanks,
Stefan

> ---
> Changes since v2:
>   - Use CONFIG_DM_DMA
> 
>   include/phys2bus.h | 16 ++++++++++++++++
>   1 file changed, 16 insertions(+)
> 
> diff --git a/include/phys2bus.h b/include/phys2bus.h
> index dc9b8e5a25..516d630aea 100644
> --- a/include/phys2bus.h
> +++ b/include/phys2bus.h
> @@ -21,4 +21,20 @@ static inline unsigned long bus_to_phys(unsigned long bus)
>   }
>   #endif
>   
> +#if CONFIG_IS_ENABLED(DM_DMA)
> +#include <dm/device.h>
> +
> +static inline dma_addr_t dev_phys_to_bus(struct udevice *dev,
> +					 phys_addr_t phys)
> +{
> +	return phys - dev->dma_offset;
> +}
> +
> +static inline phys_addr_t dev_bus_to_phys(struct udevice *dev,
> +					  dma_addr_t bus)
> +{
> +	return bus + dev->dma_offset;
> +}
> +#endif
> +
>   #endif
> 


Viele Grüße,
Stefan

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr at denx.de


More information about the U-Boot mailing list