ALSA: echoaudio: Deletion of a check before release_and_free_resource()
[firefly-linux-kernel-4.4.55.git] / sound / pci / echoaudio / echoaudio.c
index db1b247d85872dc61e08a89db364b54fccc08337..21228adaa70cb104b58580ec6392f129a9011708 100644 (file)
@@ -48,13 +48,16 @@ static int get_firmware(const struct firmware **fw_entry,
 
 #ifdef CONFIG_PM_SLEEP
        if (chip->fw_cache[fw_index]) {
-               DE_ACT(("firmware requested: %s is cached\n", card_fw[fw_index].data));
+               dev_dbg(chip->card->dev,
+                       "firmware requested: %s is cached\n",
+                       card_fw[fw_index].data);
                *fw_entry = chip->fw_cache[fw_index];
                return 0;
        }
 #endif
 
-       DE_ACT(("firmware requested: %s\n", card_fw[fw_index].data));
+       dev_dbg(chip->card->dev,
+               "firmware requested: %s\n", card_fw[fw_index].data);
        snprintf(name, sizeof(name), "ea/%s", card_fw[fw_index].data);
        err = request_firmware(fw_entry, name, pci_device(chip));
        if (err < 0)
@@ -73,10 +76,9 @@ static void free_firmware(const struct firmware *fw_entry,
                          struct echoaudio *chip)
 {
 #ifdef CONFIG_PM_SLEEP
-       DE_ACT(("firmware not released (kept in cache)\n"));
+       dev_dbg(chip->card->dev, "firmware not released (kept in cache)\n");
 #else
        release_firmware(fw_entry);
-       DE_ACT(("firmware released\n"));
 #endif
 }
 
@@ -90,10 +92,9 @@ static void free_firmware_cache(struct echoaudio *chip)
        for (i = 0; i < 8 ; i++)
                if (chip->fw_cache[i]) {
                        release_firmware(chip->fw_cache[i]);
-                       DE_ACT(("release_firmware(%d)\n", i));
+                       dev_dbg(chip->card->dev, "release_firmware(%d)\n", i);
                }
 
-       DE_ACT(("firmware_cache released\n"));
 #endif
 }
 
@@ -287,7 +288,7 @@ static int pcm_open(struct snd_pcm_substream *substream,
 
        /* Set up hw capabilities and contraints */
        memcpy(&pipe->hw, &pcm_hardware_skel, sizeof(struct snd_pcm_hardware));
-       DE_HWP(("max_channels=%d\n", max_channels));
+       dev_dbg(chip->card->dev, "max_channels=%d\n", max_channels);
        pipe->constr.list = channels_list;
        pipe->constr.mask = 0;
        for (i = 0; channels_list[i] <= max_channels; i++);
@@ -337,7 +338,7 @@ static int pcm_open(struct snd_pcm_substream *substream,
        if ((err = snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV,
                                       snd_dma_pci_data(chip->pci),
                                       PAGE_SIZE, &pipe->sgpage)) < 0) {
-               DE_HWP(("s-g list allocation failed\n"));
+               dev_err(chip->card->dev, "s-g list allocation failed\n");
                return err;
        }
 
@@ -351,7 +352,6 @@ static int pcm_analog_in_open(struct snd_pcm_substream *substream)
        struct echoaudio *chip = snd_pcm_substream_chip(substream);
        int err;
 
-       DE_ACT(("pcm_analog_in_open\n"));
        if ((err = pcm_open(substream, num_analog_busses_in(chip) -
                            substream->number)) < 0)
                return err;
@@ -368,9 +368,9 @@ static int pcm_analog_in_open(struct snd_pcm_substream *substream)
        atomic_inc(&chip->opencount);
        if (atomic_read(&chip->opencount) > 1 && chip->rate_set)
                chip->can_set_rate=0;
-       DE_HWP(("pcm_analog_in_open  cs=%d  oc=%d  r=%d\n",
+       dev_dbg(chip->card->dev, "pcm_analog_in_open  cs=%d  oc=%d  r=%d\n",
                chip->can_set_rate, atomic_read(&chip->opencount),
-               chip->sample_rate));
+               chip->sample_rate);
        return 0;
 }
 
@@ -386,7 +386,6 @@ static int pcm_analog_out_open(struct snd_pcm_substream *substream)
 #else
        max_channels = num_analog_busses_out(chip);
 #endif
-       DE_ACT(("pcm_analog_out_open\n"));
        if ((err = pcm_open(substream, max_channels - substream->number)) < 0)
                return err;
        if ((err = snd_pcm_hw_rule_add(substream->runtime, 0,
@@ -404,9 +403,9 @@ static int pcm_analog_out_open(struct snd_pcm_substream *substream)
        atomic_inc(&chip->opencount);
        if (atomic_read(&chip->opencount) > 1 && chip->rate_set)
                chip->can_set_rate=0;
-       DE_HWP(("pcm_analog_out_open  cs=%d  oc=%d  r=%d\n",
+       dev_dbg(chip->card->dev, "pcm_analog_out_open  cs=%d  oc=%d  r=%d\n",
                chip->can_set_rate, atomic_read(&chip->opencount),
-               chip->sample_rate));
+               chip->sample_rate);
        return 0;
 }
 
@@ -419,7 +418,6 @@ static int pcm_digital_in_open(struct snd_pcm_substream *substream)
        struct echoaudio *chip = snd_pcm_substream_chip(substream);
        int err, max_channels;
 
-       DE_ACT(("pcm_digital_in_open\n"));
        max_channels = num_digital_busses_in(chip) - substream->number;
        mutex_lock(&chip->mode_mutex);
        if (chip->digital_mode == DIGITAL_MODE_ADAT)
@@ -461,7 +459,6 @@ static int pcm_digital_out_open(struct snd_pcm_substream *substream)
        struct echoaudio *chip = snd_pcm_substream_chip(substream);
        int err, max_channels;
 
-       DE_ACT(("pcm_digital_out_open\n"));
        max_channels = num_digital_busses_out(chip) - substream->number;
        mutex_lock(&chip->mode_mutex);
        if (chip->digital_mode == DIGITAL_MODE_ADAT)
@@ -508,18 +505,17 @@ static int pcm_close(struct snd_pcm_substream *substream)
        /* Nothing to do here. Audio is already off and pipe will be
         * freed by its callback
         */
-       DE_ACT(("pcm_close\n"));
 
        atomic_dec(&chip->opencount);
        oc = atomic_read(&chip->opencount);
-       DE_ACT(("pcm_close  oc=%d  cs=%d  rs=%d\n", oc,
-               chip->can_set_rate, chip->rate_set));
+       dev_dbg(chip->card->dev, "pcm_close  oc=%d  cs=%d  rs=%d\n", oc,
+               chip->can_set_rate, chip->rate_set);
        if (oc < 2)
                chip->can_set_rate = 1;
        if (oc == 0)
                chip->rate_set = 0;
-       DE_ACT(("pcm_close2 oc=%d  cs=%d  rs=%d\n", oc,
-               chip->can_set_rate,chip->rate_set));
+       dev_dbg(chip->card->dev, "pcm_close2 oc=%d  cs=%d  rs=%d\n", oc,
+               chip->can_set_rate, chip->rate_set);
 
        return 0;
 }
@@ -543,7 +539,7 @@ static int init_engine(struct snd_pcm_substream *substream,
         */
        spin_lock_irq(&chip->lock);
        if (pipe->index >= 0) {
-               DE_HWP(("hwp_ie free(%d)\n", pipe->index));
+               dev_dbg(chip->card->dev, "hwp_ie free(%d)\n", pipe->index);
                err = free_pipes(chip, pipe);
                snd_BUG_ON(err);
                chip->substream[pipe->index] = NULL;
@@ -552,16 +548,17 @@ static int init_engine(struct snd_pcm_substream *substream,
        err = allocate_pipes(chip, pipe, pipe_index, interleave);
        if (err < 0) {
                spin_unlock_irq(&chip->lock);
-               DE_ACT((KERN_NOTICE "allocate_pipes(%d) err=%d\n",
-                       pipe_index, err));
+               dev_err(chip->card->dev, "allocate_pipes(%d) err=%d\n",
+                       pipe_index, err);
                return err;
        }
        spin_unlock_irq(&chip->lock);
-       DE_ACT((KERN_NOTICE "allocate_pipes()=%d\n", pipe_index));
+       dev_dbg(chip->card->dev, "allocate_pipes()=%d\n", pipe_index);
 
-       DE_HWP(("pcm_hw_params (bufsize=%dB periods=%d persize=%dB)\n",
+       dev_dbg(chip->card->dev,
+               "pcm_hw_params (bufsize=%dB periods=%d persize=%dB)\n",
                params_buffer_bytes(hw_params), params_periods(hw_params),
-               params_period_bytes(hw_params)));
+               params_period_bytes(hw_params));
        err = snd_pcm_lib_malloc_pages(substream,
                                       params_buffer_bytes(hw_params));
        if (err < 0) {
@@ -616,7 +613,6 @@ static int init_engine(struct snd_pcm_substream *substream,
        spin_lock_irq(&chip->lock);
        set_sample_rate(chip, hw_params->rate_num / hw_params->rate_den);
        spin_unlock_irq(&chip->lock);
-       DE_HWP(("pcm_hw_params ok\n"));
        return 0;
 }
 
@@ -680,14 +676,13 @@ static int pcm_hw_free(struct snd_pcm_substream *substream)
 
        spin_lock_irq(&chip->lock);
        if (pipe->index >= 0) {
-               DE_HWP(("pcm_hw_free(%d)\n", pipe->index));
+               dev_dbg(chip->card->dev, "pcm_hw_free(%d)\n", pipe->index);
                free_pipes(chip, pipe);
                chip->substream[pipe->index] = NULL;
                pipe->index = -1;
        }
        spin_unlock_irq(&chip->lock);
 
-       DE_HWP(("pcm_hw_freed\n"));
        snd_pcm_lib_free_pages(substream);
        return 0;
 }
@@ -701,8 +696,8 @@ static int pcm_prepare(struct snd_pcm_substream *substream)
        struct audioformat format;
        int pipe_index = ((struct audiopipe *)runtime->private_data)->index;
 
-       DE_HWP(("Prepare rate=%d format=%d channels=%d\n",
-               runtime->rate, runtime->format, runtime->channels));
+       dev_dbg(chip->card->dev, "Prepare rate=%d format=%d channels=%d\n",
+               runtime->rate, runtime->format, runtime->channels);
        format.interleave = runtime->channels;
        format.data_are_bigendian = 0;
        format.mono_to_stereo = 0;
@@ -722,8 +717,9 @@ static int pcm_prepare(struct snd_pcm_substream *substream)
                format.bits_per_sample = 32;
                break;
        default:
-               DE_HWP(("Prepare error: unsupported format %d\n",
-                       runtime->format));
+               dev_err(chip->card->dev,
+                       "Prepare error: unsupported format %d\n",
+                       runtime->format);
                return -EINVAL;
        }
 
@@ -758,10 +754,8 @@ static int pcm_trigger(struct snd_pcm_substream *substream, int cmd)
        spin_lock(&chip->lock);
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_RESUME:
-               DE_ACT(("pcm_trigger resume\n"));
        case SNDRV_PCM_TRIGGER_START:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-               DE_ACT(("pcm_trigger start\n"));
                for (i = 0; i < DSP_MAXPIPES; i++) {
                        if (channelmask & (1 << i)) {
                                pipe = chip->substream[i]->runtime->private_data;
@@ -783,9 +777,7 @@ static int pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                                      chip->pipe_cyclic_mask);
                break;
        case SNDRV_PCM_TRIGGER_SUSPEND:
-               DE_ACT(("pcm_trigger suspend\n"));
        case SNDRV_PCM_TRIGGER_STOP:
-               DE_ACT(("pcm_trigger stop\n"));
                for (i = 0; i < DSP_MAXPIPES; i++) {
                        if (channelmask & (1 << i)) {
                                pipe = chip->substream[i]->runtime->private_data;
@@ -795,7 +787,6 @@ static int pcm_trigger(struct snd_pcm_substream *substream, int cmd)
                err = stop_transport(chip, channelmask);
                break;
        case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-               DE_ACT(("pcm_trigger pause\n"));
                for (i = 0; i < DSP_MAXPIPES; i++) {
                        if (channelmask & (1 << i)) {
                                pipe = chip->substream[i]->runtime->private_data;
@@ -932,7 +923,6 @@ static int snd_echo_new_pcm(struct echoaudio *chip)
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &analog_capture_ops);
        if ((err = snd_echo_preallocate_pages(pcm, snd_dma_pci_data(chip->pci))) < 0)
                return err;
-       DE_INIT(("Analog PCM ok\n"));
 
 #ifdef ECHOCARD_HAS_DIGITAL_IO
        /* PCM#1 Digital inputs, no outputs */
@@ -945,7 +935,6 @@ static int snd_echo_new_pcm(struct echoaudio *chip)
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &digital_capture_ops);
        if ((err = snd_echo_preallocate_pages(pcm, snd_dma_pci_data(chip->pci))) < 0)
                return err;
-       DE_INIT(("Digital PCM ok\n"));
 #endif /* ECHOCARD_HAS_DIGITAL_IO */
 
 #else /* ECHOCARD_HAS_VMIXER */
@@ -967,7 +956,6 @@ static int snd_echo_new_pcm(struct echoaudio *chip)
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &analog_capture_ops);
        if ((err = snd_echo_preallocate_pages(pcm, snd_dma_pci_data(chip->pci))) < 0)
                return err;
-       DE_INIT(("Analog PCM ok\n"));
 
 #ifdef ECHOCARD_HAS_DIGITAL_IO
        /* PCM#1 Digital i/o */
@@ -982,7 +970,6 @@ static int snd_echo_new_pcm(struct echoaudio *chip)
        snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &digital_capture_ops);
        if ((err = snd_echo_preallocate_pages(pcm, snd_dma_pci_data(chip->pci))) < 0)
                return err;
-       DE_INIT(("Digital PCM ok\n"));
 #endif /* ECHOCARD_HAS_DIGITAL_IO */
 
 #endif /* ECHOCARD_HAS_VMIXER */
@@ -1475,7 +1462,8 @@ static int snd_echo_digital_mode_put(struct snd_kcontrol *kcontrol,
                                snd_ctl_notify(chip->card,
                                               SNDRV_CTL_EVENT_MASK_VALUE,
                                               &chip->clock_src_ctl->id);
-                               DE_ACT(("SDM() =%d\n", changed));
+                               dev_dbg(chip->card->dev,
+                                       "SDM() =%d\n", changed);
                        }
                        if (changed >= 0)
                                changed = 1;    /* No errors */
@@ -1602,7 +1590,8 @@ static int snd_echo_clock_source_put(struct snd_kcontrol *kcontrol,
        }
 
        if (changed < 0)
-               DE_ACT(("seticlk val%d err 0x%x\n", dclock, changed));
+               dev_dbg(chip->card->dev,
+                       "seticlk val%d err 0x%x\n", dclock, changed);
 
        return changed;
 }
@@ -1859,7 +1848,7 @@ static irqreturn_t snd_echo_interrupt(int irq, void *dev_id)
 #ifdef ECHOCARD_HAS_MIDI
        if (st > 0 && chip->midi_in) {
                snd_rawmidi_receive(chip->midi_in, chip->midi_buffer, st);
-               DE_MID(("rawmidi_iread=%d\n", st));
+               dev_dbg(chip->card->dev, "rawmidi_iread=%d\n", st);
        }
 #endif
        return IRQ_HANDLED;
@@ -1874,10 +1863,8 @@ static irqreturn_t snd_echo_interrupt(int irq, void *dev_id)
 
 static int snd_echo_free(struct echoaudio *chip)
 {
-       DE_INIT(("Stop DSP...\n"));
        if (chip->comm_page)
                rest_in_peace(chip);
-       DE_INIT(("Stopped.\n"));
 
        if (chip->irq >= 0)
                free_irq(chip->irq, chip);
@@ -1888,17 +1875,14 @@ static int snd_echo_free(struct echoaudio *chip)
        if (chip->dsp_registers)
                iounmap(chip->dsp_registers);
 
-       if (chip->iores)
-               release_and_free_resource(chip->iores);
+       release_and_free_resource(chip->iores);
 
-       DE_INIT(("MMIO freed.\n"));
 
        pci_disable_device(chip->pci);
 
        /* release chip data */
        free_firmware_cache(chip);
        kfree(chip);
-       DE_INIT(("Chip freed.\n"));
        return 0;
 }
 
@@ -1908,7 +1892,6 @@ static int snd_echo_dev_free(struct snd_device *device)
 {
        struct echoaudio *chip = device->device_data;
 
-       DE_INIT(("snd_echo_dev_free()...\n"));
        return snd_echo_free(chip);
 }
 
@@ -1941,7 +1924,7 @@ static int snd_echo_create(struct snd_card *card,
                        pci_disable_device(pci);
                        return -ENOMEM;
                }
-               DE_INIT(("chip=%p\n", chip));
+               dev_dbg(card->dev, "chip=%p\n", chip);
                spin_lock_init(&chip->lock);
                chip->card = card;
                chip->pci = pci;
@@ -1978,8 +1961,8 @@ static int snd_echo_create(struct snd_card *card,
                return -EBUSY;
        }
        chip->irq = pci->irq;
-       DE_INIT(("pci=%p irq=%d subdev=%04x Init hardware...\n",
-                chip->pci, chip->irq, chip->pci->subsystem_device));
+       dev_dbg(card->dev, "pci=%p irq=%d subdev=%04x Init hardware...\n",
+               chip->pci, chip->irq, chip->pci->subsystem_device);
 
        /* Create the DSP comm page - this is the area of memory used for most
        of the communication with the DSP, which accesses it via bus mastering */
@@ -1997,11 +1980,10 @@ static int snd_echo_create(struct snd_card *card,
        if (err >= 0)
                err = set_mixer_defaults(chip);
        if (err < 0) {
-               DE_INIT(("init_hw err=%d\n", err));
+               dev_err(card->dev, "init_hw err=%d\n", err);
                snd_echo_free(chip);
                return err;
        }
-       DE_INIT(("Card init OK\n"));
 
        if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
                snd_echo_free(chip);
@@ -2031,7 +2013,6 @@ static int snd_echo_probe(struct pci_dev *pci,
                return -ENOENT;
        }
 
-       DE_INIT(("Echoaudio driver starting...\n"));
        i = 0;
        err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
                           0, &card);
@@ -2184,7 +2165,6 @@ static int snd_echo_suspend(struct device *dev)
        struct pci_dev *pci = to_pci_dev(dev);
        struct echoaudio *chip = dev_get_drvdata(dev);
 
-       DE_INIT(("suspend start\n"));
        snd_pcm_suspend_all(chip->analog_pcm);
        snd_pcm_suspend_all(chip->digital_pcm);
 
@@ -2211,7 +2191,6 @@ static int snd_echo_suspend(struct device *dev)
        pci_save_state(pci);
        pci_disable_device(pci);
 
-       DE_INIT(("suspend done\n"));
        return 0;
 }
 
@@ -2225,7 +2204,6 @@ static int snd_echo_resume(struct device *dev)
        u32 pipe_alloc_mask;
        int err;
 
-       DE_INIT(("resume start\n"));
        pci_restore_state(pci);
        commpage_bak = kmalloc(sizeof(struct echoaudio), GFP_KERNEL);
        if (commpage_bak == NULL)
@@ -2236,11 +2214,10 @@ static int snd_echo_resume(struct device *dev)
        err = init_hw(chip, chip->pci->device, chip->pci->subsystem_device);
        if (err < 0) {
                kfree(commpage_bak);
-               DE_INIT(("resume init_hw err=%d\n", err));
+               dev_err(dev, "resume init_hw err=%d\n", err);
                snd_echo_free(chip);
                return err;
        }
-       DE_INIT(("resume init OK\n"));
 
        /* Temporarily set chip->pipe_alloc_mask=0 otherwise
         * restore_dsp_settings() fails.
@@ -2253,7 +2230,6 @@ static int snd_echo_resume(struct device *dev)
                kfree(commpage_bak);
                return err;
        }
-       DE_INIT(("resume restore OK\n"));
 
        memcpy(&commpage->audio_format, &commpage_bak->audio_format,
                sizeof(commpage->audio_format));
@@ -2270,7 +2246,7 @@ static int snd_echo_resume(struct device *dev)
                return -EBUSY;
        }
        chip->irq = pci->irq;
-       DE_INIT(("resume irq=%d\n", chip->irq));
+       dev_dbg(dev, "resume irq=%d\n", chip->irq);
 
 #ifdef ECHOCARD_HAS_MIDI
        if (chip->midi_input_enabled)
@@ -2279,7 +2255,6 @@ static int snd_echo_resume(struct device *dev)
                snd_echo_midi_output_trigger(chip->midi_out, 1);
 #endif
 
-       DE_INIT(("resume done\n"));
        return 0;
 }