The addresses we are trying to read here are not 64-bit aligned, hence using our own helpers to read the 64-bit value.+static inline u64 icssg_readq(const void __iomem *addr)
+{
+ return readl(addr) + ((u64)readl(addr + 4) << 32);
+}
+
+static inline void icssg_writeq(u64 val, void __iomem *addr)
+{
+ writel(lower_32_bits(val), addr);
+ writel(upper_32_bits(val), addr + 4);
+}
Could readq() and writeq() be used, rather than your own helpers?
Andrew