pinctrl: loongson2: Fix some const correctness
authorLinus Walleij <linus.walleij@linaro.org>
Fri, 25 Nov 2022 10:34:35 +0000 (11:34 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 25 Nov 2022 10:41:01 +0000 (11:41 +0100)
The kernel robot using sparse is complaining like this:

drivers/pinctrl/pinctrl-loongson2.c:212:21: sparse:
 sparse: incorrect type in argument 1 (different address spaces) @@
 expected void const volatile [noderef] __iomem *addr @@
 got void *[noderef] __iomem reg @@
(...)

I think the problem is simply that the register base is defined
as void * __iomem instead of void __iomem * and this is because
of the way const correctness works with pointer infix order.

Fix it up. I think.

Reported-by: kernel test robot <lkp@intel.com>
Cc: zhanghongchen <zhanghongchen@loongson.cn>
Cc: Yinbo Zhu <zhuyinbo@loongson.cn>
Fixes: f73f88acbc18 ("pinctrl: pinctrl-loongson2: add pinctrl driver support")
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-loongson2.c

index 1e9ec87..a72ffec 100644 (file)
@@ -45,7 +45,7 @@ struct loongson2_pinctrl {
        struct pinctrl_desc desc;
        struct device_node *of_node;
        spinlock_t lock;
-       void * __iomem reg_base;
+       void __iomem *reg_base;
 };
 
 struct loongson2_pmx_group {
@@ -202,7 +202,7 @@ static int loongson2_pmx_set_mux(struct pinctrl_dev *pcdev, unsigned int func_nu
                              unsigned int group_num)
 {
        struct loongson2_pinctrl *pctrl = pinctrl_dev_get_drvdata(pcdev);
-       void * __iomem reg = pctrl->reg_base +
+       void __iomem *reg = pctrl->reg_base +
                                loongson2_pmx_groups[group_num].reg;
        unsigned int mux_bit = loongson2_pmx_groups[group_num].bit;
        unsigned int val;