.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * SAA713x ALSA support for V4L |
---|
3 | | - * |
---|
4 | | - * This program is free software; you can redistribute it and/or modify |
---|
5 | | - * it under the terms of the GNU General Public License as published by |
---|
6 | | - * the Free Software Foundation, version 2 |
---|
7 | | - * |
---|
8 | | - * This program is distributed in the hope that it will be useful, |
---|
9 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
10 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
11 | | - * GNU General Public License for more details. |
---|
12 | | - * |
---|
13 | 4 | */ |
---|
14 | 5 | |
---|
15 | 6 | #include "saa7134.h" |
---|
.. | .. |
---|
261 | 252 | return err; |
---|
262 | 253 | } |
---|
263 | 254 | |
---|
264 | | -static int saa7134_alsa_dma_init(struct saa7134_dev *dev, int nr_pages) |
---|
| 255 | +static int saa7134_alsa_dma_init(struct saa7134_dev *dev, |
---|
| 256 | + unsigned long nr_pages) |
---|
265 | 257 | { |
---|
266 | 258 | struct saa7134_dmasound *dma = &dev->dmasound; |
---|
267 | 259 | struct page *pg; |
---|
.. | .. |
---|
269 | 261 | |
---|
270 | 262 | dma->vaddr = vmalloc_32(nr_pages << PAGE_SHIFT); |
---|
271 | 263 | if (NULL == dma->vaddr) { |
---|
272 | | - pr_debug("vmalloc_32(%d pages) failed\n", nr_pages); |
---|
| 264 | + pr_debug("vmalloc_32(%lu pages) failed\n", nr_pages); |
---|
273 | 265 | return -ENOMEM; |
---|
274 | 266 | } |
---|
275 | 267 | |
---|
276 | | - pr_debug("vmalloc is at addr %p, size=%d\n", |
---|
| 268 | + pr_debug("vmalloc is at addr %p, size=%lu\n", |
---|
277 | 269 | dma->vaddr, nr_pages << PAGE_SHIFT); |
---|
278 | 270 | |
---|
279 | 271 | memset(dma->vaddr, 0, nr_pages << PAGE_SHIFT); |
---|
.. | .. |
---|
306 | 298 | struct saa7134_dmasound *dma = &dev->dmasound; |
---|
307 | 299 | |
---|
308 | 300 | dma->sglen = dma_map_sg(&dev->pci->dev, dma->sglist, |
---|
309 | | - dma->nr_pages, PCI_DMA_FROMDEVICE); |
---|
| 301 | + dma->nr_pages, DMA_FROM_DEVICE); |
---|
310 | 302 | |
---|
311 | 303 | if (0 == dma->sglen) { |
---|
312 | 304 | pr_warn("%s: saa7134_alsa_map_sg failed\n", __func__); |
---|
.. | .. |
---|
322 | 314 | if (!dma->sglen) |
---|
323 | 315 | return 0; |
---|
324 | 316 | |
---|
325 | | - dma_unmap_sg(&dev->pci->dev, dma->sglist, dma->sglen, PCI_DMA_FROMDEVICE); |
---|
| 317 | + dma_unmap_sg(&dev->pci->dev, dma->sglist, dma->nr_pages, DMA_FROM_DEVICE); |
---|
326 | 318 | dma->sglen = 0; |
---|
327 | 319 | return 0; |
---|
328 | 320 | } |
---|
.. | .. |
---|
874 | 866 | static const struct snd_pcm_ops snd_card_saa7134_capture_ops = { |
---|
875 | 867 | .open = snd_card_saa7134_capture_open, |
---|
876 | 868 | .close = snd_card_saa7134_capture_close, |
---|
877 | | - .ioctl = snd_pcm_lib_ioctl, |
---|
878 | 869 | .hw_params = snd_card_saa7134_hw_params, |
---|
879 | 870 | .hw_free = snd_card_saa7134_hw_free, |
---|
880 | 871 | .prepare = snd_card_saa7134_capture_prepare, |
---|
.. | .. |
---|
901 | 892 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_card_saa7134_capture_ops); |
---|
902 | 893 | pcm->private_data = saa7134; |
---|
903 | 894 | pcm->info_flags = 0; |
---|
904 | | - strcpy(pcm->name, "SAA7134 PCM"); |
---|
| 895 | + strscpy(pcm->name, "SAA7134 PCM", sizeof(pcm->name)); |
---|
905 | 896 | return 0; |
---|
906 | 897 | } |
---|
907 | 898 | |
---|
.. | .. |
---|
1074 | 1065 | unsigned int idx; |
---|
1075 | 1066 | int err, addr; |
---|
1076 | 1067 | |
---|
1077 | | - strcpy(card->mixername, "SAA7134 Mixer"); |
---|
| 1068 | + strscpy(card->mixername, "SAA7134 Mixer", sizeof(card->mixername)); |
---|
1078 | 1069 | |
---|
1079 | 1070 | for (idx = 0; idx < ARRAY_SIZE(snd_saa7134_volume_controls); idx++) { |
---|
1080 | 1071 | kcontrol = snd_ctl_new1(&snd_saa7134_volume_controls[idx], |
---|
.. | .. |
---|
1138 | 1129 | if (err < 0) |
---|
1139 | 1130 | return err; |
---|
1140 | 1131 | |
---|
1141 | | - strcpy(card->driver, "SAA7134"); |
---|
| 1132 | + strscpy(card->driver, "SAA7134", sizeof(card->driver)); |
---|
1142 | 1133 | |
---|
1143 | 1134 | /* Card "creation" */ |
---|
1144 | 1135 | |
---|
.. | .. |
---|
1178 | 1169 | |
---|
1179 | 1170 | /* End of "creation" */ |
---|
1180 | 1171 | |
---|
1181 | | - strcpy(card->shortname, "SAA7134"); |
---|
| 1172 | + strscpy(card->shortname, "SAA7134", sizeof(card->shortname)); |
---|
1182 | 1173 | sprintf(card->longname, "%s at 0x%lx irq %d", |
---|
1183 | 1174 | chip->dev->name, chip->iobase, chip->irq); |
---|
1184 | 1175 | |
---|
.. | .. |
---|
1223 | 1214 | |
---|
1224 | 1215 | static int saa7134_alsa_init(void) |
---|
1225 | 1216 | { |
---|
1226 | | - struct saa7134_dev *dev = NULL; |
---|
1227 | | - struct list_head *list; |
---|
| 1217 | + struct saa7134_dev *dev; |
---|
1228 | 1218 | |
---|
1229 | 1219 | saa7134_dmasound_init = alsa_device_init; |
---|
1230 | 1220 | saa7134_dmasound_exit = alsa_device_exit; |
---|
1231 | 1221 | |
---|
1232 | 1222 | pr_info("saa7134 ALSA driver for DMA sound loaded\n"); |
---|
1233 | 1223 | |
---|
1234 | | - list_for_each(list,&saa7134_devlist) { |
---|
1235 | | - dev = list_entry(list, struct saa7134_dev, devlist); |
---|
| 1224 | + list_for_each_entry(dev, &saa7134_devlist, devlist) { |
---|
1236 | 1225 | if (dev->pci->device == PCI_DEVICE_ID_PHILIPS_SAA7130) |
---|
1237 | 1226 | pr_info("%s/alsa: %s doesn't support digital audio\n", |
---|
1238 | 1227 | dev->name, saa7134_boards[dev->board].name); |
---|
.. | .. |
---|
1240 | 1229 | alsa_device_init(dev); |
---|
1241 | 1230 | } |
---|
1242 | 1231 | |
---|
1243 | | - if (dev == NULL) |
---|
| 1232 | + if (list_empty(&saa7134_devlist)) |
---|
1244 | 1233 | pr_info("saa7134 ALSA: no saa7134 cards found\n"); |
---|
1245 | 1234 | |
---|
1246 | 1235 | return 0; |
---|