* [PATCH] of: address: treat absent dma-ranges as 1:1 translation
@ 2022-05-18 17:57 Lucas Stach
2022-05-19 11:56 ` Sascha Hauer
0 siblings, 1 reply; 2+ messages in thread
From: Lucas Stach @ 2022-05-18 17:57 UTC (permalink / raw)
To: barebox
Some DTs use dma-ranges in child busses without this property being present
in the parent bus. To avoid failing the address translation, do the same as
the Linux kernel and treat absence of this property as a 1:1 translation.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
drivers/of/address.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/of/address.c b/drivers/of/address.c
index 67e8062f5d17..4eafce376d36 100644
--- a/drivers/of/address.c
+++ b/drivers/of/address.c
@@ -301,10 +301,13 @@ static int of_translate_one(struct device_node *parent, struct of_bus *bus,
*
* As far as we know, this damage only exists on Apple machines, so
* This code is only enabled on powerpc. --gcl
+ *
+ * This quirk also applies for 'dma-ranges' which frequently exist in
+ * child nodes without 'dma-ranges' in the parent nodes. --RobH
*/
ranges = of_get_property(parent, rprop, &rlen);
#if !defined(CONFIG_PPC)
- if (ranges == NULL) {
+ if (ranges == NULL && strcmp(rprop, "dma-ranges")) {
pr_vdebug("OF: no ranges; cannot translate\n");
return 1;
}
--
2.35.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] of: address: treat absent dma-ranges as 1:1 translation
2022-05-18 17:57 [PATCH] of: address: treat absent dma-ranges as 1:1 translation Lucas Stach
@ 2022-05-19 11:56 ` Sascha Hauer
0 siblings, 0 replies; 2+ messages in thread
From: Sascha Hauer @ 2022-05-19 11:56 UTC (permalink / raw)
To: Lucas Stach; +Cc: barebox
On Wed, May 18, 2022 at 07:57:45PM +0200, Lucas Stach wrote:
> Some DTs use dma-ranges in child busses without this property being present
> in the parent bus. To avoid failing the address translation, do the same as
> the Linux kernel and treat absence of this property as a 1:1 translation.
>
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> ---
> drivers/of/address.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
Applied, thanks
Sascha
>
> diff --git a/drivers/of/address.c b/drivers/of/address.c
> index 67e8062f5d17..4eafce376d36 100644
> --- a/drivers/of/address.c
> +++ b/drivers/of/address.c
> @@ -301,10 +301,13 @@ static int of_translate_one(struct device_node *parent, struct of_bus *bus,
> *
> * As far as we know, this damage only exists on Apple machines, so
> * This code is only enabled on powerpc. --gcl
> + *
> + * This quirk also applies for 'dma-ranges' which frequently exist in
> + * child nodes without 'dma-ranges' in the parent nodes. --RobH
> */
> ranges = of_get_property(parent, rprop, &rlen);
> #if !defined(CONFIG_PPC)
> - if (ranges == NULL) {
> + if (ranges == NULL && strcmp(rprop, "dma-ranges")) {
> pr_vdebug("OF: no ranges; cannot translate\n");
> return 1;
> }
> --
> 2.35.3
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-05-19 11:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-18 17:57 [PATCH] of: address: treat absent dma-ranges as 1:1 translation Lucas Stach
2022-05-19 11:56 ` Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox