static unsigned long snd_ad1816a_timer_resolution(struct snd_timer *timer)
 {
-       snd_assert(timer != NULL, return 0);
+       if (snd_BUG_ON(!timer))
+               return 0;
 
        return 10000;
 }
        unsigned int idx;
        int err;
 
-       snd_assert(chip != NULL && chip->card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!chip || !chip->card))
+               return -EINVAL;
 
        card = chip->card;
 
 
        int err;
        struct snd_kcontrol_new *kcontrol;
 
-       snd_assert(chip != NULL && chip->card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!chip || !chip->card))
+               return -EINVAL;
        card = chip->card;
        strcpy(card->mixername, snd_wss_chip_id(chip));
 
 
        int err;
        unsigned char reg, val;
 
-       snd_assert(chip != NULL && chip->card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!chip || !chip->card))
+               return -EINVAL;
 
        card = chip->card;
 
 
        static unsigned char dmas[8] =
                {6, 1, 0, 2, 0, 3, 4, 5};
 
-       snd_assert(gus != NULL, return -EINVAL);
+       if (snd_BUG_ON(!gus))
+               return -EINVAL;
        card = gus->card;
-       snd_assert(card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!card))
+               return -EINVAL;
 
        gus->mix_cntrl_reg &= 0xf8;
        gus->mix_cntrl_reg |= 0x01;     /* disable MIC, LINE IN, enable LINE OUT */
 
        unsigned int idx, max;
        int err;
 
-       snd_assert(gus != NULL, return -EINVAL);
+       if (snd_BUG_ON(!gus))
+               return -EINVAL;
        card = gus->card;
-       snd_assert(card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!card))
+               return -EINVAL;
 
        if (gus->ics_flag)
                snd_component_add(card, "ICS2101");
 
        
        bpos = samples_to_bytes(runtime, pos) + (voice * (pcmp->dma_size / 2));
        len = samples_to_bytes(runtime, count);
-       snd_assert(bpos <= pcmp->dma_size, return -EIO);
-       snd_assert(bpos + len <= pcmp->dma_size, return -EIO);
+       if (snd_BUG_ON(bpos > pcmp->dma_size))
+               return -EIO;
+       if (snd_BUG_ON(bpos + len > pcmp->dma_size))
+               return -EIO;
        if (copy_from_user(runtime->dma_area + bpos, src, len))
                return -EFAULT;
        if (snd_gf1_pcm_use_dma && len > 32) {
        
        bpos = samples_to_bytes(runtime, pos) + (voice * (pcmp->dma_size / 2));
        len = samples_to_bytes(runtime, count);
-       snd_assert(bpos <= pcmp->dma_size, return -EIO);
-       snd_assert(bpos + len <= pcmp->dma_size, return -EIO);
+       if (snd_BUG_ON(bpos > pcmp->dma_size))
+               return -EIO;
+       if (snd_BUG_ON(bpos + len > pcmp->dma_size))
+               return -EIO;
        snd_pcm_format_set_silence(runtime->format, runtime->dma_area + bpos, count);
        if (snd_gf1_pcm_use_dma && len > 32) {
                return snd_gf1_pcm_block_change(substream, bpos, pcmp->memory + bpos, len);
 
        unsigned int idx;
        int err;
 
-       snd_assert(miro != NULL && miro->card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!miro || !miro->card))
+               return -EINVAL;
 
        card = miro->card;
 
 
 {
        int i, err = 0;
 
-       snd_assert(emu != NULL && card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!emu || !card))
+               return -EINVAL;
 
        spin_lock_init(&emu->control_lock);
 
 
        struct snd_emu8000 *emu;
 
        emu = rec->hw;
-       snd_assert(sp != NULL, return -EINVAL);
+       if (snd_BUG_ON(!sp))
+               return -EINVAL;
 
        if (sp->v.size == 0)
                return 0;
 
        struct snd_sb_csp_start start_info;
        int err;
 
-       snd_assert(p != NULL, return -EINVAL);
+       if (snd_BUG_ON(!p))
+               return -EINVAL;
 
        if (snd_sb_csp_check_version(p))
                return -ENODEV;
        struct snd_card *card;
        int err;
 
-       snd_assert(p != NULL, return -EINVAL);
+       if (snd_BUG_ON(!p))
+               return -EINVAL;
 
        card = p->chip->card;
        p->qpos_left = p->qpos_right = SNDRV_SB_CSP_QSOUND_MAX_RIGHT / 2;
        struct snd_card *card;
        unsigned long flags;
 
-       snd_assert(p != NULL, return);
+       if (snd_BUG_ON(!p))
+               return;
 
        card = p->chip->card;   
        
 
 static int snd_sb16_set_dma_mode(struct snd_sb *chip, int what)
 {
        if (chip->dma8 < 0 || chip->dma16 < 0) {
-               snd_assert(what == 0, return -EINVAL);
+               if (snd_BUG_ON(what))
+                       return -EINVAL;
                return 0;
        }
        if (what == 0) {
 
        switch (chip->hardware) {
        case SB_HW_PRO:
                if (runtime->channels > 1) {
-                       snd_assert(rate == SB8_RATE(11025) || rate == SB8_RATE(22050), return -EINVAL);
+                       if (snd_BUG_ON(rate != SB8_RATE(11025) &&
+                                      rate != SB8_RATE(22050)))
+                               return -EINVAL;
                        chip->playback_format = SB_DSP_HI_OUTPUT_AUTO;
                        break;
                }
        switch (chip->hardware) {
        case SB_HW_PRO:
                if (runtime->channels > 1) {
-                       snd_assert(rate == SB8_RATE(11025) || rate == SB8_RATE(22050), return -EINVAL);
+                       if (snd_BUG_ON(rate != SB8_RATE(11025) &&
+                                      rate != SB8_RATE(22050)))
+                               return -EINVAL;
                        chip->capture_format = SB_DSP_HI_INPUT_AUTO;
                        break;
                }
 
                .dev_free =     snd_sbdsp_dev_free,
        };
 
-       snd_assert(r_chip != NULL, return -EINVAL);
+       if (snd_BUG_ON(!r_chip))
+               return -EINVAL;
        *r_chip = NULL;
        chip = kzalloc(sizeof(*chip), GFP_KERNEL);
        if (chip == NULL)
 
        struct snd_card *card;
        int err;
 
-       snd_assert(chip != NULL && chip->card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!chip || !chip->card))
+               return -EINVAL;
 
        card = chip->card;
 
 static void save_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
 {
        unsigned char *val = chip->saved_regs;
-       snd_assert(num_regs <= ARRAY_SIZE(chip->saved_regs), return);
+       if (snd_BUG_ON(num_regs > ARRAY_SIZE(chip->saved_regs)))
+               return;
        for (; num_regs; num_regs--)
                *val++ = snd_sbmixer_read(chip, *regs++);
 }
 static void restore_mixer(struct snd_sb *chip, unsigned char *regs, int num_regs)
 {
        unsigned char *val = chip->saved_regs;
-       snd_assert(num_regs <= ARRAY_SIZE(chip->saved_regs), return);
+       if (snd_BUG_ON(num_regs > ARRAY_SIZE(chip->saved_regs)))
+               return;
        for (; num_regs; num_regs--)
                snd_sbmixer_write(chip, *regs++, *val++);
 }
 
        unsigned short *pd;
        int err = 0;
 
-       snd_assert(sdev->card != NULL, return -ENODEV);
-       
        card = sdev->card;
-
-       snd_assert(card->private_data != NULL, return -ENODEV);
+       if (snd_BUG_ON(!card))
+               return -ENODEV;
+       if (snd_BUG_ON(!card->private_data))
+               return -ENODEV;
 
        acard = card->private_data;
        dev = &acard->wavefront;
 
        snd_wavefront_midi_t *midi;
        snd_wavefront_mpu_id mpu;
 
-       snd_assert(substream != NULL && substream->rmidi != NULL, return -EIO);
-       snd_assert(substream->rmidi->private_data != NULL, return -EIO);
+       if (snd_BUG_ON(!substream || !substream->rmidi))
+               return -ENXIO;
+       if (snd_BUG_ON(!substream->rmidi->private_data))
+               return -ENXIO;
 
        mpu = *((snd_wavefront_mpu_id *) substream->rmidi->private_data);
 
        snd_wavefront_midi_t *midi;
        snd_wavefront_mpu_id mpu;
 
-       snd_assert(substream != NULL && substream->rmidi != NULL, return -EIO);
-       snd_assert(substream->rmidi->private_data != NULL, return -EIO);
+       if (snd_BUG_ON(!substream || !substream->rmidi))
+               return -ENXIO;
+       if (snd_BUG_ON(!substream->rmidi->private_data))
+               return -ENXIO;
 
        mpu = *((snd_wavefront_mpu_id *) substream->rmidi->private_data);
 
        snd_wavefront_midi_t *midi;
        snd_wavefront_mpu_id mpu;
 
-       snd_assert(substream != NULL && substream->rmidi != NULL, return -EIO);
-       snd_assert(substream->rmidi->private_data != NULL, return -EIO);
+       if (snd_BUG_ON(!substream || !substream->rmidi))
+               return -ENXIO;
+       if (snd_BUG_ON(!substream->rmidi->private_data))
+               return -ENXIO;
 
        mpu = *((snd_wavefront_mpu_id *) substream->rmidi->private_data);
 
        snd_wavefront_midi_t *midi;
        snd_wavefront_mpu_id mpu;
 
-       snd_assert(substream != NULL && substream->rmidi != NULL, return -EIO);
-       snd_assert(substream->rmidi->private_data != NULL, return -EIO);
+       if (snd_BUG_ON(!substream || !substream->rmidi))
+               return -ENXIO;
+       if (snd_BUG_ON(!substream->rmidi->private_data))
+               return -ENXIO;
 
        mpu = *((snd_wavefront_mpu_id *) substream->rmidi->private_data);
 
 
 
        card = (struct snd_card *) hw->card;
 
-       snd_assert(card != NULL, return -ENODEV);
-
-       snd_assert(card->private_data != NULL, return -ENODEV);
+       if (snd_BUG_ON(!card))
+               return -ENODEV;
+       if (snd_BUG_ON(!card->private_data))
+               return -ENODEV;
 
        acard = card->private_data;
        dev = &acard->wavefront;
 
        char **ptexts = texts;
        struct snd_wss *chip = snd_kcontrol_chip(kcontrol);
 
-       snd_assert(chip->card != NULL, return -EINVAL);
+       if (snd_BUG_ON(!chip->card))
+               return -EINVAL;
        uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
        uinfo->count = 2;
        uinfo->value.enumerated.items = 4;
        unsigned int idx;
        int err;
 
-       snd_assert(chip != NULL && chip->pcm != NULL, return -EINVAL);
+       if (snd_BUG_ON(!chip || !chip->pcm))
+               return -EINVAL;
 
        card = chip->card;