* arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: cast removes address space '__iomem' of expression
@ 2023-08-07 2:58 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-08-07 2:58 UTC (permalink / raw)
To: Benjamin Gray
Cc: oe-kbuild-all, linux-kernel, Michael Ellerman, Christophe Leroy
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 52a93d39b17dc7eb98b6aa3edb93943248e03b2f
commit: 86582e6189dd8f9f52c25d46c70fe5d111da6345 powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
date: 5 days ago
config: powerpc-randconfig-r071-20230807 (https://download.01.org/0day-ci/archive/20230807/202308071025.KCEf7Mhd-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230807/202308071025.KCEf7Mhd-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308071025.KCEf7Mhd-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: cast removes address space '__iomem' of expression
>> arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __iomem *addr @@ got void * @@
arch/powerpc/platforms/powermac/time.c:210:24: sparse: expected void [noderef] __iomem *addr
arch/powerpc/platforms/powermac/time.c:210:24: sparse: got void *
arch/powerpc/platforms/powermac/time.c:192:30: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/powermac/time.c:192:30: sparse: sparse: dereference of noderef expression
arch/powerpc/platforms/powermac/time.c:196:27: sparse: sparse: cast truncates bits from constant value (b798 becomes 98)
vim +/__iomem +210 arch/powerpc/platforms/powermac/time.c
161
162 #ifdef CONFIG_PPC32
163 /*
164 * Calibrate the decrementer register using VIA timer 1.
165 * This is used both on powermacs and CHRP machines.
166 */
167 static int __init via_calibrate_decr(void)
168 {
169 struct device_node *vias;
170 volatile unsigned char __iomem *via;
171 int count = VIA_TIMER_FREQ_6 / 100;
172 unsigned int dstart, dend;
173 struct resource rsrc;
174
175 vias = of_find_node_by_name(NULL, "via-cuda");
176 if (vias == NULL)
177 vias = of_find_node_by_name(NULL, "via-pmu");
178 if (vias == NULL)
179 vias = of_find_node_by_name(NULL, "via");
180 if (vias == NULL || of_address_to_resource(vias, 0, &rsrc)) {
181 of_node_put(vias);
182 return 0;
183 }
184 of_node_put(vias);
185 via = early_ioremap(rsrc.start, resource_size(&rsrc));
186 if (via == NULL) {
187 printk(KERN_ERR "Failed to map VIA for timer calibration !\n");
188 return 0;
189 }
190
191 /* set timer 1 for continuous interrupts */
192 out_8(&via[ACR], (via[ACR] & ~T1MODE) | T1MODE_CONT);
193 /* set the counter to a small value */
194 out_8(&via[T1CH], 2);
195 /* set the latch to `count' */
196 out_8(&via[T1LL], count);
197 out_8(&via[T1LH], count >> 8);
198 /* wait until it hits 0 */
199 while ((in_8(&via[IFR]) & T1_INT) == 0)
200 ;
201 dstart = get_dec();
202 /* clear the interrupt & wait until it hits 0 again */
203 in_8(&via[T1CL]);
204 while ((in_8(&via[IFR]) & T1_INT) == 0)
205 ;
206 dend = get_dec();
207
208 ppc_tb_freq = (dstart - dend) * 100 / 6;
209
> 210 early_iounmap((void *)via, resource_size(&rsrc));
211
212 return 1;
213 }
214 #endif
215
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2023-08-07 2:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-07 2:58 arch/powerpc/platforms/powermac/time.c:210:24: sparse: sparse: cast removes address space '__iomem' of expression kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.