As per Documentation/process/volatile-considered-harmful.rst,
using accessor functions do not require volatile as accessors
are written to prevent unwanted optimization.
And we are using ioread32 and iowrite32, so volatile is not require.
This patch removes the volatile from code and remove
the below warning also
warning: passing argument 1 of 'ioread32' discards 'const volatile'
qualifier from pointer target type [-Wdiscarded-qualifiers]
return ioread32(addr);
^~~~
Signed-off-by: Suresh Gupta <suresh.gupta@xilinx.com>
Reviewed-by: Saurabh Sengar <saurabh.singh@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
#define fh_to_chanctx(__fh) container_of(__fh, struct xm2msc_chan_ctx, fh)
#define fh_to_chanctx(__fh) container_of(__fh, struct xm2msc_chan_ctx, fh)
-static inline u32 xm2msc_readreg(const volatile void __iomem *addr)
+static inline u32 xm2msc_readreg(const void __iomem *addr)
{
return ioread32(addr);
}
{
return ioread32(addr);
}
-static inline void xm2msc_write64reg(volatile void __iomem *addr, u64 value)
+static inline void xm2msc_write64reg(void __iomem *addr, u64 value)
{
iowrite32(lower_32_bits(value), addr);
iowrite32(upper_32_bits(value), (void __iomem *)(addr + 4));
}
{
iowrite32(lower_32_bits(value), addr);
iowrite32(upper_32_bits(value), (void __iomem *)(addr + 4));
}
-static inline void xm2msc_writereg(volatile void __iomem *addr, u32 value)
+static inline void xm2msc_writereg(void __iomem *addr, u32 value)
{
iowrite32(value, addr);
}
{
iowrite32(value, addr);
}
-xm2msc_pr_screg(struct device *dev, const volatile void __iomem *base)
+xm2msc_pr_screg(struct device *dev, const void __iomem *base)
{
dev_dbg(dev, "Ctr, GIE, IE, IS OUT\n");
dev_dbg(dev, "0x%x 0x%x 0x%x 0x%x 0x%x\n",
{
dev_dbg(dev, "Ctr, GIE, IE, IS OUT\n");
dev_dbg(dev, "0x%x 0x%x 0x%x 0x%x 0x%x\n",