[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