On Wed, Jan 22, 2014 at 03:01:01PM -0300, Ezequiel Garcia wrote:
On Wed, Jan 22, 2014 at 01:21:36PM -0300, Ezequiel Garcia wrote:
quoted
quoted
I don't see a good way out that would preserve backwards compatibility,
other than hardcoding the physical address in the driver, which seems
just as bad as breaking compatibility. That said, it is always the
same constant (0xf1000000 + 0x20000 + 0x0108) on Dove, Kirkwood and
Orion5x (not on mv78xx0, but that doesn't use the wdt), so hardcoding
a fallback would technically work, but we should print a fat warning at
boot time if we actually fall back to that.
Yes, I was thinking just about this. Namely:
[..]
How about something like this?
I liked Arnd's idea to use an offset from the first register. With the
mbus driver we can now actually change the 0xF1.. prefix via the DT.
+ dev_warn(&pdev->dev, "falling back to harcoded RSTOUT reg 0x%x\n",
+ ORION_RSTOUT_MASK);
Maybe:
dev_warn(&pdev->dev, FW_BUG "falling back to harcoded RSTOUT reg 0x%x\n",
?
quoted hunk ↗ jump to hunk
@@ -139,10 +166,7 @@ static int orion_wdt_probe(struct platform_device *pdev)
if (!wdt_reg)
return -ENOMEM;
- res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
- if (!res)
- return -ENODEV;
- wdt_rstout = devm_ioremap(&pdev->dev, res->start, resource_size(res));
+ wdt_rstout = try_compat_rstout_ioremap(pdev);
if (!wdt_rstout)
return -ENOMEM;
ENOMEM is probably not the right errno? Is there a standard errno for
malformed DT?
Jason