On Tue, Mar 17, 2015 at 01:32:21AM -0700, Paul Walmsley wrote: > static inline u32 gizmo_readl(struct tegra_ahb *ahb, u32 offset) > { > - return readl(ahb->regs - 4 + offset); > + return readl(ahb->regs + ahb->offset + offset); > } > > static inline void gizmo_writel(struct tegra_ahb *ahb, u32 value, u32 offset) > { > - writel(value, ahb->regs - 4 + offset); > + writel(value, ahb->regs + ahb->offset + offset); Rather than storing the offset... > @@ -262,18 +283,15 @@ static int tegra_ahb_probe(struct platform_device *pdev) > if (IS_ERR(ahb->regs)) > return PTR_ERR(ahb->regs); > > + ad = of_id->data; > ahb->dev = &pdev->dev; > + ahb->offset = ad->offset; What about ahb->regs += ad->offset; here and avoid the addition and extra loads on every access. -- FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html