sound/hda/controllers/cix-ipbloq.c:223:50: sparse: sparse: cast truncates bits from constant value (ffffffff70000000 becomes 70000000)
From: kernel test robot
Date: Mon Mar 16 2026 - 07:15:17 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f338e77383789c0cae23ca3d48adcc5e9e137e3c
commit: d91e9bd10125a9b0427420453b11f56228a6d6d0 ALSA: hda: add CIX IPBLOQ HDA controller support
date: 3 months ago
config: nios2-randconfig-r112-20260316 (https://download.01.org/0day-ci/archive/20260316/202603161916.hSwLiB3N-lkp@xxxxxxxxx/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260316/202603161916.hSwLiB3N-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603161916.hSwLiB3N-lkp@xxxxxxxxx/
sparse warnings: (new ones prefixed by >>)
>> sound/hda/controllers/cix-ipbloq.c:223:50: sparse: sparse: cast truncates bits from constant value (ffffffff70000000 becomes 70000000)
vim +223 sound/hda/controllers/cix-ipbloq.c
179
180 static int cix_ipbloq_hda_create(struct cix_ipbloq_hda *hda,
181 struct snd_card *card,
182 unsigned int driver_caps)
183 {
184 static const struct snd_device_ops ops = {
185 .dev_disconnect = cix_ipbloq_hda_dev_disconnect,
186 .dev_free = cix_ipbloq_hda_dev_free,
187 };
188 struct azx *chip;
189 int err;
190
191 chip = &hda->chip;
192 chip->card = card;
193 chip->ops = &cix_ipbloq_hda_ops;
194 chip->driver_caps = driver_caps;
195 chip->driver_type = driver_caps & 0xff;
196 chip->dev_index = 0;
197 chip->single_cmd = 0;
198 chip->codec_probe_mask = -1;
199 chip->align_buffer_size = 1;
200 chip->jackpoll_interval = msecs_to_jiffies(CIX_IPBLOQ_JACKPOLL_DEFAULT_TIME_MS);
201 mutex_init(&chip->open_mutex);
202 INIT_LIST_HEAD(&chip->pcm_list);
203
204 /*
205 * HD-audio controllers appear pretty inaccurate about the update-IRQ timing.
206 * The IRQ is issued before actually the data is processed. So use stream
207 * link position by default instead of dma position buffer.
208 */
209 chip->get_position[0] = chip->get_position[1] = azx_get_pos_lpib;
210
211 err = azx_bus_init(chip, NULL);
212 if (err < 0) {
213 dev_err(hda->dev, "failed to init bus, err = %d\n", err);
214 return err;
215 }
216
217 /* RIRBSTS.RINTFL cannot be cleared, cause interrupt storm */
218 chip->bus.core.polling_mode = 1;
219 chip->bus.core.not_use_interrupts = 1;
220
221 chip->bus.core.aligned_mmio = 1;
222 chip->bus.core.dma_stop_delay = 100;
> 223 chip->bus.core.addr_offset = (dma_addr_t)CIX_IPBLOQ_SKY1_ADDR_HOST_TO_HDAC_OFFSET;
224
225 chip->bus.jackpoll_in_suspend = 1;
226
227 err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops);
228 if (err < 0) {
229 dev_err(card->dev, "failed to create device, err = %d\n", err);
230 return err;
231 }
232
233 return 0;
234 }
235
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki