tree:
https://github.com/afaerber/linux.git rtd1295-next
head: cc9d1d90869a1d7a6e44c5dd739a2f25d6f13213
commit: 0f59a70429e84a65fbef854580a3d9a5cc4499bf [56/166] soc: realtek: Add SCPU wrapper
for RTD1295
reproduce:
# apt-get install sparse
# sparse version:
git checkout 0f59a70429e84a65fbef854580a3d9a5cc4499bf
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> drivers/soc/realtek/scpu.c:60:30: sparse: warning: incorrect type
in argument 1 (different address spaces)
drivers/soc/realtek/scpu.c:60:30:
sparse: expected void const volatile [noderef] <asn:2> *addr
drivers/soc/realtek/scpu.c:60:30: sparse: got void *
drivers/soc/realtek/scpu.c:61:31: sparse: warning: incorrect type in argument 1
(different address spaces)
drivers/soc/realtek/scpu.c:61:31: sparse: expected void const volatile [noderef]
<asn:2> *addr
drivers/soc/realtek/scpu.c:61:31: sparse: got void *
drivers/soc/realtek/scpu.c:62:32: sparse: warning: incorrect type in argument 1
(different address spaces)
drivers/soc/realtek/scpu.c:62:32: sparse: expected void const volatile [noderef]
<asn:2> *addr
drivers/soc/realtek/scpu.c:62:32: sparse: got void *
drivers/soc/realtek/scpu.c:65:95: sparse: warning: incorrect type in argument 2
(different address spaces)
drivers/soc/realtek/scpu.c:65:95: sparse: expected void volatile [noderef]
<asn:2> *addr
drivers/soc/realtek/scpu.c:65:95: sparse: got void *
drivers/soc/realtek/scpu.c:97:86: sparse: warning: incorrect type in argument 5
(different address spaces)
drivers/soc/realtek/scpu.c:97:86: sparse: expected void *dev
drivers/soc/realtek/scpu.c:97:86: sparse: got void [noderef] <asn:2>
*[assigned] base
sparse warnings: (new ones prefixed by >>)
drivers/soc/realtek/scpu.c:60:30: sparse: warning: incorrect type in argument 1
(different address spaces)
> drivers/soc/realtek/scpu.c:60:30: sparse: expected void const
volatile [noderef] <asn:2> *addr
> drivers/soc/realtek/scpu.c:60:30: sparse: got void *
drivers/soc/realtek/scpu.c:61:31: sparse: warning: incorrect type in argument 1 (different
address spaces)
drivers/soc/realtek/scpu.c:61:31: sparse: expected void const volatile [noderef]
<asn:2> *addr
drivers/soc/realtek/scpu.c:61:31: sparse: got void *
drivers/soc/realtek/scpu.c:62:32: sparse: warning: incorrect type in argument 1
(different address spaces)
drivers/soc/realtek/scpu.c:62:32: sparse: expected void const volatile [noderef]
<asn:2> *addr
drivers/soc/realtek/scpu.c:62:32: sparse: got void *
drivers/soc/realtek/scpu.c:65:95: sparse: warning: incorrect type in argument 2
(different address spaces)
> drivers/soc/realtek/scpu.c:65:95: sparse: expected void
volatile [noderef] <asn:2> *addr
drivers/soc/realtek/scpu.c:65:95: sparse:
got void *
drivers/soc/realtek/scpu.c:97:86: sparse: warning: incorrect type in argument 5
(different address spaces)
> drivers/soc/realtek/scpu.c:97:86: sparse: expected void *dev
> drivers/soc/realtek/scpu.c:97:86: sparse: got void [noderef] <asn:2>
*[assigned] base
vim +60 drivers/soc/realtek/scpu.c
55
56 static irqreturn_t rtd119x_scpu_handle_irq(int irq, void *base)
57 {
58 u32 dbg_int, dbg_addr, dbg_addr1;
59
60 dbg_int = readl(base + DBG_INT);
61 dbg_addr =
readl(base + DBG_ADDR);
62 dbg_addr1 = readl(base + DBG_ADDR1);
63 pr_debug("%s: DBG_INT 0x%08x\n", __func__, dbg_int);
64 if (dbg_int & (DBG_INT_SCPU_INT_M1 | DBG_INT_SCPU_NEG_INT_M1)) {
65 writel(dbg_int & ~(DBG_INT_SCPU_INT_EN_M1 |
DBG_INT_SCPU_NEG_INT_EN_M1), base + DBG_INT);
66 pr_err("%s: SCPU addr
0x%08x mode %s", __func__,
67 dbg_addr,
68 (dbg_addr1 & DBG_ADDR1_SCPU_DBG_WRITE_M1) ? "W" : "R");
69 return IRQ_HANDLED;
70 }
71
72 return IRQ_NONE;
73 }
74
75 static const struct of_device_id rtd119x_scpu_dt_ids[] = {
76 { .compatible = "realtek,rtd1195-scpu-wrapper" },
77 { .compatible = "realtek,rtd1295-scpu-wrapper" },
78 { }
79 };
80
81 static int rtd119x_scpu_probe(struct platform_device *pdev)
82 {
83 struct resource *res;
84 void __iomem *base;
85 unsigned long addr = 0;
86 int irq, i, ret;
87
88 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
89 base = devm_ioremap_resource(&pdev->dev, res);
90 if (IS_ERR(base))
91 return PTR_ERR(base);
92
93 irq = platform_get_irq(pdev, 0);
94 if (irq <= 0)
95 return -EINVAL;
96
97 ret = request_irq(irq, rtd119x_scpu_handle_irq, IRQF_SHARED,
"scpu_wrapper", base);
98 if (ret) {
99 dev_err(&pdev->dev, "requesting irq %u failed\n", irq);
100 return -EINVAL;
101 }
102
103 for (i = 0; i < 4; i++) {
104 writel_relaxed(0, base + DBG_START + i * 4);
105 writel_relaxed(0, base + DBG_END + i * 4);
106 }
107
108 if (of_device_is_compatible(pdev->dev.of_node,
"realtek,rtd1295-scpu-wrapper"))
109 addr = 0x98000000;
110 else if (of_device_is_compatible(pdev->dev.of_node,
"realtek,rtd1195-scpu-wrapper"))
111 addr = 0x18000000;
112
113 for (i = 0; i < 4; i++) {
114 writel_relaxed(addr, base + DBG_START + i * 4);
115 writel_relaxed(addr + 0x40, base + DBG_END + i * 4);
116 addr += 0x40;
117 }
118
119 writel(DBG_INT_SCPU_INT_EN_M1 | DBG_INT_WRITE_DATA, base + DBG_INT);
120
121 if (of_device_is_compatible(pdev->dev.of_node,
"realtek,rtd1295-scpu-wrapper"))
122 rtd119x_scpu_dbg_scpu_monitor(base, 0, 0x98013b00, 0x98013c00, 0);
123
124 dev_info(&pdev->dev, "probed\n");
125
126 return 0;
127 }
128
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org