]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - sound/pci/ymfpci/ymfpci_main.c
Merge tag 'pci-v5.6-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
[linux.git] / sound / pci / ymfpci / ymfpci_main.c
index d3907811f698bbdf9f218bef65a5164dfbc50ab6..db7d76a3cfeb75aa2879bb4e96d6f263e1305fa2 100644 (file)
@@ -122,14 +122,14 @@ static u32 snd_ymfpci_calc_delta(u32 rate)
        }
 }
 
-static u32 def_rate[8] = {
+static const u32 def_rate[8] = {
        100, 2000, 8000, 11025, 16000, 22050, 32000, 48000
 };
 
 static u32 snd_ymfpci_calc_lpfK(u32 rate)
 {
        u32 i;
-       static u32 val[8] = {
+       static const u32 val[8] = {
                0x00570000, 0x06AA0000, 0x18B20000, 0x20930000,
                0x2B9A0000, 0x35A10000, 0x3EAA0000, 0x40000000
        };
@@ -145,7 +145,7 @@ static u32 snd_ymfpci_calc_lpfK(u32 rate)
 static u32 snd_ymfpci_calc_lpfQ(u32 rate)
 {
        u32 i;
-       static u32 val[8] = {
+       static const u32 val[8] = {
                0x35280000, 0x34A70000, 0x32020000, 0x31770000,
                0x31390000, 0x31C90000, 0x33D00000, 0x40000000
        };
@@ -628,8 +628,6 @@ static int snd_ymfpci_playback_hw_params(struct snd_pcm_substream *substream,
        struct snd_ymfpci_pcm *ypcm = runtime->private_data;
        int err;
 
-       if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0)
-               return err;
        if ((err = snd_ymfpci_pcm_voice_alloc(ypcm, params_channels(hw_params))) < 0)
                return err;
        return 0;
@@ -647,7 +645,6 @@ static int snd_ymfpci_playback_hw_free(struct snd_pcm_substream *substream)
 
        /* wait, until the PCI operations are not finished */
        snd_ymfpci_irq_wait(chip);
-       snd_pcm_lib_free_pages(substream);
        if (ypcm->voices[1]) {
                snd_ymfpci_voice_free(chip, ypcm->voices[1]);
                ypcm->voices[1] = NULL;
@@ -683,19 +680,13 @@ static int snd_ymfpci_playback_prepare(struct snd_pcm_substream *substream)
        return 0;
 }
 
-static int snd_ymfpci_capture_hw_params(struct snd_pcm_substream *substream,
-                                       struct snd_pcm_hw_params *hw_params)
-{
-       return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
-}
-
 static int snd_ymfpci_capture_hw_free(struct snd_pcm_substream *substream)
 {
        struct snd_ymfpci *chip = snd_pcm_substream_chip(substream);
 
        /* wait, until the PCI operations are not finished */
        snd_ymfpci_irq_wait(chip);
-       return snd_pcm_lib_free_pages(substream);
+       return 0;
 }
 
 static int snd_ymfpci_capture_prepare(struct snd_pcm_substream *substream)
@@ -1112,7 +1103,6 @@ static int snd_ymfpci_capture_close(struct snd_pcm_substream *substream)
 static const struct snd_pcm_ops snd_ymfpci_playback_ops = {
        .open =                 snd_ymfpci_playback_open,
        .close =                snd_ymfpci_playback_close,
-       .ioctl =                snd_pcm_lib_ioctl,
        .hw_params =            snd_ymfpci_playback_hw_params,
        .hw_free =              snd_ymfpci_playback_hw_free,
        .prepare =              snd_ymfpci_playback_prepare,
@@ -1123,8 +1113,6 @@ static const struct snd_pcm_ops snd_ymfpci_playback_ops = {
 static const struct snd_pcm_ops snd_ymfpci_capture_rec_ops = {
        .open =                 snd_ymfpci_capture_rec_open,
        .close =                snd_ymfpci_capture_close,
-       .ioctl =                snd_pcm_lib_ioctl,
-       .hw_params =            snd_ymfpci_capture_hw_params,
        .hw_free =              snd_ymfpci_capture_hw_free,
        .prepare =              snd_ymfpci_capture_prepare,
        .trigger =              snd_ymfpci_capture_trigger,
@@ -1148,9 +1136,8 @@ int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device)
        strcpy(pcm->name, "YMFPCI");
        chip->pcm = pcm;
 
-       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
-                                             &chip->pci->dev,
-                                             64*1024, 256*1024);
+       snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
+                                      &chip->pci->dev, 64*1024, 256*1024);
 
        return snd_pcm_add_chmap_ctls(pcm, SNDRV_PCM_STREAM_PLAYBACK,
                                     snd_pcm_std_chmaps, 2, 0, NULL);
@@ -1159,8 +1146,6 @@ int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device)
 static const struct snd_pcm_ops snd_ymfpci_capture_ac97_ops = {
        .open =                 snd_ymfpci_capture_ac97_open,
        .close =                snd_ymfpci_capture_close,
-       .ioctl =                snd_pcm_lib_ioctl,
-       .hw_params =            snd_ymfpci_capture_hw_params,
        .hw_free =              snd_ymfpci_capture_hw_free,
        .prepare =              snd_ymfpci_capture_prepare,
        .trigger =              snd_ymfpci_capture_trigger,
@@ -1184,9 +1169,8 @@ int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device)
                chip->device_id == PCI_DEVICE_ID_YAMAHA_754 ? "Direct Recording" : "AC'97");
        chip->pcm2 = pcm;
 
-       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
-                                             &chip->pci->dev,
-                                             64*1024, 256*1024);
+       snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
+                                      &chip->pci->dev, 64*1024, 256*1024);
 
        return 0;
 }
@@ -1194,7 +1178,6 @@ int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device)
 static const struct snd_pcm_ops snd_ymfpci_playback_spdif_ops = {
        .open =                 snd_ymfpci_playback_spdif_open,
        .close =                snd_ymfpci_playback_spdif_close,
-       .ioctl =                snd_pcm_lib_ioctl,
        .hw_params =            snd_ymfpci_playback_hw_params,
        .hw_free =              snd_ymfpci_playback_hw_free,
        .prepare =              snd_ymfpci_playback_prepare,
@@ -1218,9 +1201,8 @@ int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device)
        strcpy(pcm->name, "YMFPCI - IEC958");
        chip->pcm_spdif = pcm;
 
-       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
-                                             &chip->pci->dev,
-                                             64*1024, 256*1024);
+       snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
+                                      &chip->pci->dev, 64*1024, 256*1024);
 
        return 0;
 }
@@ -1228,7 +1210,6 @@ int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device)
 static const struct snd_pcm_ops snd_ymfpci_playback_4ch_ops = {
        .open =                 snd_ymfpci_playback_4ch_open,
        .close =                snd_ymfpci_playback_4ch_close,
-       .ioctl =                snd_pcm_lib_ioctl,
        .hw_params =            snd_ymfpci_playback_hw_params,
        .hw_free =              snd_ymfpci_playback_hw_free,
        .prepare =              snd_ymfpci_playback_prepare,
@@ -1260,9 +1241,8 @@ int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device)
        strcpy(pcm->name, "YMFPCI - Rear PCM");
        chip->pcm_4ch = pcm;
 
-       snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
-                                             &chip->pci->dev,
-                                             64*1024, 256*1024);
+       snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
+                                      &chip->pci->dev, 64*1024, 256*1024);
 
        return snd_pcm_add_chmap_ctls(pcm, SNDRV_PCM_STREAM_PLAYBACK,
                                     surround_map, 2, 0, NULL);
@@ -1608,7 +1588,7 @@ static const struct snd_kcontrol_new snd_ymfpci_dup4ch = {
        .put = snd_ymfpci_put_dup4ch,
 };
 
-static struct snd_kcontrol_new snd_ymfpci_controls[] = {
+static const struct snd_kcontrol_new snd_ymfpci_controls[] = {
 {
        .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
        .name = "Wave Playback Volume",
@@ -1800,7 +1780,7 @@ int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch)
        struct snd_pcm_substream *substream;
        unsigned int idx;
        int err;
-       static struct snd_ac97_bus_ops ops = {
+       static const struct snd_ac97_bus_ops ops = {
                .write = snd_ymfpci_codec_write,
                .read = snd_ymfpci_codec_read,
        };
@@ -1928,7 +1908,7 @@ static int snd_ymfpci_timer_precise_resolution(struct snd_timer *timer,
        return 0;
 }
 
-static struct snd_timer_hardware snd_ymfpci_timer_hw = {
+static const struct snd_timer_hardware snd_ymfpci_timer_hw = {
        .flags = SNDRV_TIMER_HW_AUTO,
        .resolution = 10417, /* 1 / 96 kHz = 10.41666...us */
        .ticks = 0x10000,
@@ -2254,7 +2234,7 @@ static int snd_ymfpci_dev_free(struct snd_device *device)
 }
 
 #ifdef CONFIG_PM_SLEEP
-static int saved_regs_index[] = {
+static const int saved_regs_index[] = {
        /* spdif */
        YDSXGR_SPDIFOUTCTRL,
        YDSXGR_SPDIFOUTSTATUS,
@@ -2347,7 +2327,7 @@ int snd_ymfpci_create(struct snd_card *card,
 {
        struct snd_ymfpci *chip;
        int err;
-       static struct snd_device_ops ops = {
+       static const struct snd_device_ops ops = {
                .dev_free =     snd_ymfpci_dev_free,
        };
        
@@ -2391,6 +2371,7 @@ int snd_ymfpci_create(struct snd_card *card,
                goto free_chip;
        }
        chip->irq = pci->irq;
+       card->sync_irq = chip->irq;
 
        snd_ymfpci_aclink_reset(pci);
        if (snd_ymfpci_codec_ready(chip, 0) < 0) {