forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/media/pci/tw686x/tw686x-audio.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (C) 2015 VanguardiaSur - www.vanguardiasur.com.ar
34 *
....@@ -7,10 +8,6 @@
78 * Based on:
89 * Driver for Intersil|Techwell TW6869 based DVR cards
910 * (c) 2011-12 liran <jli11@intersil.com> [Intersil|Techwell China]
10
- *
11
- * This program is free software; you can redistribute it and/or modify it
12
- * under the terms of version 2 of the GNU General Public License
13
- * as published by the Free Software Foundation.
1411 */
1512
1613 #include <linux/types.h>
....@@ -79,17 +76,6 @@
7976 ac->ptr = done->dma - ac->buf[0].dma;
8077 snd_pcm_period_elapsed(ac->ss);
8178 }
82
-}
83
-
84
-static int tw686x_pcm_hw_params(struct snd_pcm_substream *ss,
85
- struct snd_pcm_hw_params *hw_params)
86
-{
87
- return snd_pcm_lib_malloc_pages(ss, params_buffer_bytes(hw_params));
88
-}
89
-
90
-static int tw686x_pcm_hw_free(struct snd_pcm_substream *ss)
91
-{
92
- return snd_pcm_lib_free_pages(ss);
9379 }
9480
9581 /*
....@@ -272,9 +258,6 @@
272258 static const struct snd_pcm_ops tw686x_pcm_ops = {
273259 .open = tw686x_pcm_open,
274260 .close = tw686x_pcm_close,
275
- .ioctl = snd_pcm_lib_ioctl,
276
- .hw_params = tw686x_pcm_hw_params,
277
- .hw_free = tw686x_pcm_hw_free,
278261 .prepare = tw686x_pcm_prepare,
279262 .trigger = tw686x_pcm_trigger,
280263 .pointer = tw686x_pcm_pointer,
....@@ -295,17 +278,18 @@
295278 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &tw686x_pcm_ops);
296279 snd_pcm_chip(pcm) = dev;
297280 pcm->info_flags = 0;
298
- strlcpy(pcm->name, "tw686x PCM", sizeof(pcm->name));
281
+ strscpy(pcm->name, "tw686x PCM", sizeof(pcm->name));
299282
300283 for (i = 0, ss = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
301284 ss; ss = ss->next, i++)
302285 snprintf(ss->name, sizeof(ss->name), "vch%u audio", i);
303286
304
- return snd_pcm_lib_preallocate_pages_for_all(pcm,
287
+ snd_pcm_set_managed_buffer_all(pcm,
305288 SNDRV_DMA_TYPE_DEV,
306
- snd_dma_pci_data(dev->pci_dev),
289
+ &dev->pci_dev->dev,
307290 TW686X_AUDIO_PAGE_MAX * AUDIO_DMA_SIZE_MAX,
308291 TW686X_AUDIO_PAGE_MAX * AUDIO_DMA_SIZE_MAX);
292
+ return 0;
309293 }
310294
311295 static void tw686x_audio_dma_free(struct tw686x_dev *dev,
....@@ -390,9 +374,9 @@
390374 return err;
391375
392376 dev->snd_card = card;
393
- strlcpy(card->driver, "tw686x", sizeof(card->driver));
394
- strlcpy(card->shortname, "tw686x", sizeof(card->shortname));
395
- strlcpy(card->longname, pci_name(pci_dev), sizeof(card->longname));
377
+ strscpy(card->driver, "tw686x", sizeof(card->driver));
378
+ strscpy(card->shortname, "tw686x", sizeof(card->shortname));
379
+ strscpy(card->longname, pci_name(pci_dev), sizeof(card->longname));
396380 snd_card_set_dev(card, &pci_dev->dev);
397381
398382 for (ch = 0; ch < max_channels(dev); ch++) {