]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - sound/pci/echoaudio/layla24_dsp.c
ALSA: Kill snd_assert() in sound/pci/*
[linux-2.6-omap-h63xx.git] / sound / pci / echoaudio / layla24_dsp.c
index 7ec5b63d0dcec008b0a7200ca5d57cef4ae42438..d61b5cbcccad4235314d6d0bd05ee93e82ed282f 100644 (file)
@@ -42,7 +42,8 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
        int err;
 
        DE_INIT(("init_hw() - Layla24\n"));
-       snd_assert((subdevice_id & 0xfff0) == LAYLA24, return -ENODEV);
+       if (snd_BUG_ON((subdevice_id & 0xfff0) != LAYLA24))
+               return -ENODEV;
 
        if ((err = init_dsp_comm_page(chip))) {
                DE_INIT(("init_hw - could not initialize DSP comm page\n"));
@@ -73,7 +74,8 @@ static int init_hw(struct echoaudio *chip, u16 device_id, u16 subdevice_id)
                return err;
 
        err = set_digital_mode(chip, DIGITAL_MODE_SPDIF_RCA);
-       snd_assert(err >= 0, return err);
+       if (err < 0)
+               return err;
        err = set_professional_spdif(chip, TRUE);
 
        DE_INIT(("init_hw done\n"));
@@ -158,8 +160,9 @@ static int set_sample_rate(struct echoaudio *chip, u32 rate)
 {
        u32 control_reg, clock, base_rate;
 
-       snd_assert(rate < 50000 || chip->digital_mode != DIGITAL_MODE_ADAT,
-                  return -EINVAL);
+       if (snd_BUG_ON(rate >= 50000 &&
+                      chip->digital_mode == DIGITAL_MODE_ADAT))
+               return -EINVAL;
 
        /* Only set the clock for internal mode. */
        if (chip->input_clock != ECHO_CLOCK_INTERNAL) {
@@ -302,11 +305,11 @@ static int switch_asic(struct echoaudio *chip, const struct firmware *asic)
 
        /*  Check to see if this is already loaded */
        if (asic != chip->asic_code) {
-               monitors = kmalloc(MONITOR_ARRAY_SIZE, GFP_KERNEL);
+               monitors = kmemdup(chip->comm_page->monitors,
+                                       MONITOR_ARRAY_SIZE, GFP_KERNEL);
                if (! monitors)
                        return -ENOMEM;
 
-               memcpy(monitors, chip->comm_page->monitors, MONITOR_ARRAY_SIZE);
                memset(chip->comm_page->monitors, ECHOGAIN_MUTED,
                       MONITOR_ARRAY_SIZE);