[alsa-devel] [PATCH 00/48] Rewrite kernel messages with standard printk helpers

Raymond Yau superquad.vortex2 at gmail.com
Fri Feb 28 04:15:36 CET 2014


> >
> > > this is another long series of patches for trivial cleanups.
> > > This time, they replace the printk and snd_print*() calls in ALSA PCI
> > > and USB drivers with dev_err() and co.  This will give nicer and more
> > > consistent outputs.
> > >
> > > The only drawback by these replacements is that alsa-info.sh won't be
> > > able to catch the dmesg lines because it doesn't contain any longer
> > > the word "ALSA", but only show the module name like "snd_intel8x0".
> > >
> > > I'm going to fix alsa-info.sh on git soon later, but if you guys think
> > > "oh no it's disaster!", let me know.  We need to reconsider a better
> > > way to put the known markers (like explicitly putting "ALSA" at the
> > > beginning.)
> > >
> > >
> > seem missing au88x0
>
> Yes, because some driver codes are horrible to work on.
> Patches are welcome.
>
>
since au8820 , au8830 and au8810 use different mmio address , the source of
three modules , the driver use CHIP_AU8810 , CHIP_AU8820 and CHIP_AU8830
for the chip specific code with #ifdef

1) how to convert printk(KERN_INFO CARD_NAME ?
2) do it need to remove "vortex:" at the beginning if dev_xxx function
provide the name of the snd-au8830 ?
3) as Wavetable DMA is not working and au8820 and au8830 have different
mmio address , au88x0_synth is not implemented as separate module
4) gameport and mput401_uart use card name in getting the resource and midi
ports

How do I get the source of topics/ctv-dev-prints ?

and

how do I provide path ?



au88x0_a3d.c-    /*
au88x0_a3d.c:    printk(KERN_DEBUG "vortex: ZeroState slice: %d, source
%d\n",
au88x0_a3d.c-           a->slice, a->source);
--
au88x0_a3d.c-    if ((a->vortex) == NULL) {
au88x0_a3d.c:        printk(KERN_ERR "vortex: ZeroStateA3D: ERROR:
a->vortex is NULL\n");
au88x0_a3d.c-        return;
--
au88x0_a3d.c-    if (v->mixxtlk[0] < 0) {
au88x0_a3d.c:        printk
au88x0_a3d.c-            ("vortex: vortex_Vort3D: ERROR: not enough free
mixer resources.\n");
--
au88x0_a3d.c-    if (v->mixxtlk[1] < 0) {
au88x0_a3d.c:        printk
au88x0_a3d.c-            ("vortex: vortex_Vort3D: ERROR: not enough free
mixer resources.\n");
--
au88x0_a3d.c-    if (a->vortex == NULL) {
au88x0_a3d.c:        printk
au88x0_a3d.c-            ("vortex: Vort3D_InitializeSource: A3D source not
initialized\n");
--
au88x0.c-    if (!(rc = pci_write_config_byte(vortex, 0x40, 0xff))) {
au88x0.c:            printk(KERN_INFO CARD_NAME
au88x0.c-                   ": vortex latency is 0xff\n");
au88x0.c-    } else {
au88x0.c:        printk(KERN_WARNING CARD_NAME
au88x0.c-                ": could not set vortex latency: pci error
0x%x\n", rc);
--
au88x0.c-                || !(rc = pci_write_config_byte(via, 0x42, value |
0x10)))) {
au88x0.c:        printk(KERN_INFO CARD_NAME
au88x0.c-                ": bridge config is 0x%x\n", value | 0x10);
au88x0.c-    } else {
au88x0.c:        printk(KERN_WARNING CARD_NAME
au88x0.c-                ": could not set vortex latency: pci error
0x%x\n", rc);
--
au88x0.c-        if (via) {
au88x0.c:            printk(KERN_INFO CARD_NAME ": Activating latency
workaround...\n");
au88x0.c-            vortex_fix_latency(vortex);
--
au88x0.c-        pci_set_consistent_dma_mask(pci, DMA_BIT_MASK(32)) < 0) {
au88x0.c:        printk(KERN_ERR "error to set DMA mask\n");
au88x0.c-        pci_disable_device(pci);
--
au88x0.c-    if (!chip->mmio) {
au88x0.c:        printk(KERN_ERR "MMIO area remap failed.\n");
au88x0.c-        err = -ENOMEM;
--
au88x0.c-    if ((err = vortex_core_init(chip)) != 0) {
au88x0.c:        printk(KERN_ERR "hw core init failed\n");
au88x0.c-        goto core_out;
--
au88x0.c-                           chip)) != 0) {
au88x0.c:        printk(KERN_ERR "cannot grab irq\n");
au88x0.c-        goto irq_out;
--
au88x0.c-        || wave == NULL) {
au88x0.c:        snd_printk(KERN_ERR "Can't initialize Aureal wavetable
synth\n");
au88x0.c-    } else {
--
au88x0.c-    if ((chip->rev) != 0xfe && (chip->rev) != 0xfa) {
au88x0.c:        printk(KERN_ALERT
au88x0.c-               "vortex: The revision (%x) of your card has not
been seen before.\n",
au88x0.c-               chip->rev);
au88x0.c:        printk(KERN_ALERT
au88x0.c-               "vortex: Please email the results of 'lspci -vv' to
openvortex-dev at nongnu.org.\n");
--
au88x0_core.c-        temp = hwread(vortex->mmio, prev);
au88x0_core.c:        //printk(KERN_INFO "vortex: mixAddWTD: while addr=%x,
val=%x\n", prev, temp);
au88x0_core.c-        if ((++lifeboat) > 0xf) {
au88x0_core.c:            printk(KERN_ERR
au88x0_core.c-                   "vortex_mixer_addWTD: lifeboat
overflow\n");
--
au88x0_core.c-    if (((1 << ch) & eax) == 0) {
au88x0_core.c:        printk(KERN_ERR "mix ALARM %x\n", eax);
au88x0_core.c-        return 0;
--
au88x0_core.c-                   VORTEX_MIXER_RTBASE + (ebx << 2));
au88x0_core.c:            //printk(KERN_INFO "vortex: mixdelWTD: 1 addr=%x,
val=%x, src=%x\n", ebx, edx, src);
au88x0_core.c-            while ((edx & 0xf) != mix) {
au88x0_core.c-                if ((esi) > 0xf) {
au88x0_core.c:                    printk(KERN_ERR
au88x0_core.c-                           "vortex: mixdelWTD: error lifeboat
overflow\n");
--
au88x0_core.c-                       VORTEX_MIXER_RTBASE + ebp);
au88x0_core.c:                //printk(KERN_INFO "vortex: mixdelWTD: while
addr=%x, val=%x\n", ebp, edx);
au88x0_core.c-                esi++;
--
au88x0_core.c-                hwwrite(vortex->mmio, ebx, 0);
au88x0_core.c:                //printk(KERN_INFO "vortex mixdelWTD between
addr= 0x%x, val= 0x%x\n", ebp, edx);
au88x0_core.c-            } else {    /* Delete last entry */
--
au88x0_core.c-                        (esp14 << 2), ebx);
au88x0_core.c:                    //printk(KERN_INFO "vortex mixdelWTD last
addr= 0x%x, val= 0x%x\n", esp14, ebx);
au88x0_core.c-                }
--
au88x0_core.c-    } else {
au88x0_core.c:        //printk(KERN_INFO "removed last mix\n");
au88x0_core.c-        //7be0
--
au88x0_core.c-        if ((++lifeboat) > 0x9) {
au88x0_core.c:            printk(KERN_ERR "Vortex: Src cvr fail\n");
au88x0_core.c-            break;
--
au88x0_core.c-        if ((lifeboat++) > 15) {
au88x0_core.c:            printk(KERN_ERR "Vortex: could not set src-%d
from %d to %d\n",
au88x0_core.c-                   src, hw_ratio, desired_ratio);
--
au88x0_core.c-    /* 0x30f00 e=g=1 esp10=0 ebp=f */
au88x0_core.c:    //printk(KERN_INFO "vortex: SRC %d, d=0x%x, esi=0x%x,
esp10=0x%x, ebp=0x%x\n", src, d, esi, esp10, ebp);
au88x0_core.c-}
--
au88x0_core.c-        temp = hwread(vortex->mmio, prev);
au88x0_core.c:        //printk(KERN_INFO "vortex: srcAddWTD: while addr=%x,
val=%x\n", prev, temp);
au88x0_core.c-        if ((++lifeboat) > 0xf) {
au88x0_core.c:            printk(KERN_ERR
au88x0_core.c-                   "vortex_src_addWTD: lifeboat overflow\n");
--
au88x0_core.c-    if (((1 << ch) & eax) == 0) {
au88x0_core.c:        printk(KERN_ERR "src alarm\n");
au88x0_core.c-        return 0;
--
au88x0_core.c-                   VORTEX_SRC_RTBASE + (ebx << 2));
au88x0_core.c:            //printk(KERN_INFO "vortex: srcdelWTD: 1 addr=%x,
val=%x, src=%x\n", ebx, edx, src);
au88x0_core.c-            while ((edx & 0xf) != src) {
au88x0_core.c-                if ((esi) > 0xf) {
au88x0_core.c:                    printk
au88x0_core.c-                        ("vortex: srcdelWTD: error, lifeboat
overflow\n");
--
au88x0_core.c-                       VORTEX_SRC_RTBASE + ebp);
au88x0_core.c:                //printk(KERN_INFO "vortex: srcdelWTD: while
addr=%x, val=%x\n", ebp, edx);
au88x0_core.c-                esi++;
--
au88x0_core.c-                hwwrite(vortex->mmio, ebx, 0);
au88x0_core.c:                //printk(KERN_INFO "vortex srcdelWTD between
addr= 0x%x, val= 0x%x\n", ebp, edx);
au88x0_core.c-            } else {    /* Delete last entry */
--
au88x0_core.c-                        (esp14 << 2), ebx);
au88x0_core.c:                    //printk(KERN_INFO"vortex srcdelWTD last
addr= 0x%x, val= 0x%x\n", esp14, ebx);
au88x0_core.c-                }
--
au88x0_core.c-        if (lifeboat++ > 0xbb8) {
au88x0_core.c:            printk(KERN_ERR
au88x0_core.c-                   "Vortex: vortex_fifo_setadbctrl fail\n");
--
au88x0_core.c-        if (lifeboat++ > 0xbb8) {
au88x0_core.c:            printk(KERN_ERR "Vortex: vortex_fifo_setwtctrl
fail\n");
au88x0_core.c-            break;
--
au88x0_core.c-        if (lifeboat++ > 0xbb8) {
au88x0_core.c:            printk(KERN_ERR "Vortex: vortex_fifo_setwtctrl
fail (hanging)\n");
au88x0_core.c-            break;
--
au88x0_core.c-        if (hwread(vortex->mmio, addr) != (FIFO_U0 | FIFO_U1))
au88x0_core.c:            printk(KERN_ERR "bad adb fifo reset!");
au88x0_core.c-        vortex_fifo_clearadbdata(vortex, x, FIFO_SIZE);
--
au88x0_core.c-        if (hwread(vortex->mmio, addr) != FIFO_U0)
au88x0_core.c:            printk(KERN_ERR
au88x0_core.c-                   "bad wt fifo reset (0x%08x, 0x%08x)!\n",
--
au88x0_core.c-    /*
au88x0_core.c:    printk(KERN_DEBUG "vortex: cfg0 = 0x%x\nvortex:
cfg1=0x%x\n",
au88x0_core.c-           dma->cfg0, dma->cfg1);
--
au88x0_core.c-    if (delta != 1)
au88x0_core.c:        printk(KERN_INFO "vortex: %d virt=%d, real=%d,
delta=%d\n",
au88x0_core.c-               adbdma, dma->period_virt, dma->period_real,
delta);
--
au88x0_core.c-    if (delta != 1)
au88x0_core.c:        printk(KERN_WARNING "vortex: wt virt = %d, delta =
%d\n",
au88x0_core.c-               dma->period_virt, delta);
--
au88x0_core.c-        if ((lifeboat++) > ADB_MASK) {
au88x0_core.c:            printk(KERN_ERR
au88x0_core.c-                   "vortex_adb_addroutes: unending route!
0x%x\n",
--
au88x0_core.c-        if (((lifeboat++) > ADB_MASK) || (temp == ADB_MASK)) {
au88x0_core.c:            printk(KERN_ERR
au88x0_core.c-                   "vortex_adb_delroutes: route not found!
0x%x\n",
--
au88x0_core.c-                      ADB_CODECOUT(1 + 4));
au88x0_core.c:        /* printk(KERN_DEBUG "SDAC detected "); */
au88x0_core.c-    }
--
au88x0_core.c-                /*
au88x0_core.c:                printk(KERN_DEBUG
au88x0_core.c-                       "vortex: ResManager: type %d out %d\n",
--
au88x0_core.c-                /*
au88x0_core.c:                printk(KERN_DEBUG
au88x0_core.c-                       "vortex: ResManager: type %d in %d\n",
--
au88x0_core.c-    }
au88x0_core.c:    printk(KERN_ERR "vortex: FATAL: ResManager: resource type
%d exhausted.\n", restype);
au88x0_core.c-    return -ENOMEM;
--
au88x0_core.c-                       VORTEX_RESOURCE_LAST);
au88x0_core.c:                printk(KERN_ERR "vortex: out of A3D sources.
Sorry\n");
au88x0_core.c-                return -EBUSY;
--
au88x0_core.c-    if (source == 0) {
au88x0_core.c:        printk(KERN_ERR "vortex: missing irq source\n");
au88x0_core.c-        return IRQ_NONE;
--
au88x0_core.c-        if (source & IRQ_FATAL) {
au88x0_core.c:            printk(KERN_ERR "vortex: IRQ fatal error\n");
au88x0_core.c-        }
au88x0_core.c-        if (source & IRQ_PARITY) {
au88x0_core.c:            printk(KERN_ERR "vortex: IRQ parity error\n");
au88x0_core.c-        }
au88x0_core.c-        if (source & IRQ_REG) {
au88x0_core.c:            printk(KERN_ERR "vortex: IRQ reg error\n");
au88x0_core.c-        }
au88x0_core.c-        if (source & IRQ_FIFO) {
au88x0_core.c:            printk(KERN_ERR "vortex: IRQ fifo error\n");
au88x0_core.c-        }
au88x0_core.c-        if (source & IRQ_DMA) {
au88x0_core.c:            printk(KERN_ERR "vortex: IRQ dma error\n");
au88x0_core.c-        }
--
au88x0_core.c-    if (!handled) {
au88x0_core.c:        printk(KERN_ERR "vortex: unknown irq source %x\n",
source);
au88x0_core.c-    }
--
au88x0_core.c-        if (lifeboat++ > POLL_COUNT) {
au88x0_core.c:            printk(KERN_ERR "vortex: ac97 codec stuck
busy\n");
au88x0_core.c-            return;
--
au88x0_core.c-        if (lifeboat++ > POLL_COUNT) {
au88x0_core.c:            printk(KERN_ERR "vortex: ac97 codec stuck
busy\n");
au88x0_core.c-            return 0xffff;
--
au88x0_core.c-        if (lifeboat++ > POLL_COUNT) {
au88x0_core.c:            printk(KERN_ERR "vortex: ac97 address never
arrived\n");
au88x0_core.c-            return 0xffff;
--
au88x0_core.c-
au88x0_core.c:    printk(KERN_INFO "Vortex: init.... ");
au88x0_core.c-    /* Hardware Init. */
--
au88x0_core.c-
au88x0_core.c:    printk(KERN_INFO "done.\n");
au88x0_core.c-    spin_lock_init(&vortex->lock);
--
au88x0_core.c-
au88x0_core.c:    printk(KERN_INFO "Vortex: shutdown...");
au88x0_core.c-#ifndef CHIP_AU8820
--
au88x0_core.c-
au88x0_core.c:    printk(KERN_INFO "done.\n");
au88x0_core.c-    return 0;
--
au88x0_core.c-        fmt = 0x8;
au88x0_core.c:        printk(KERN_ERR "vortex: format unsupported %d\n",
alsafmt);
au88x0_core.c-        break;
--
au88x0_eq.c-    if (count != 20) {
au88x0_eq.c:        printk(KERN_ERR "vortex: peak count error 20 != %d \n",
count);
au88x0_eq.c-        return -1;
--
au88x0_game.c-    if (!gp) {
au88x0_game.c:        printk(KERN_ERR "vortex: cannot allocate memory for
gameport\n");
au88x0_game.c-        return -ENOMEM;
--
au88x0_mpu401.c-    if (temp != MPU401_ACK /*0xfe */ ) {
au88x0_mpu401.c:        printk(KERN_ERR "midi port doesn't acknowledge!\n");
au88x0_mpu401.c-        return -ENODEV;
--
au88x0_pcm.c-    if (err < 0) {
au88x0_pcm.c:        printk(KERN_ERR "Vortex: pcm page alloc failed!\n");
au88x0_pcm.c-        return err;
--
au88x0_pcm.c-    /*
au88x0_pcm.c:       printk(KERN_INFO "Vortex: periods %d, period_bytes %d,
channels = %d\n", params_periods(hw_params),
au88x0_pcm.c-       params_period_bytes(hw_params),
params_channels(hw_params));
--
au88x0_pcm.c-        // do something to start the PCM engine
au88x0_pcm.c:        //printk(KERN_INFO "vortex: start %d\n", dma);
au88x0_pcm.c-        stream->fifo_enabled = 1;
--
au88x0_pcm.c-        else {
au88x0_pcm.c:            printk(KERN_INFO "vortex: wt start %d\n", dma);
au88x0_pcm.c-            vortex_wtdma_startfifo(chip, dma);
--
au88x0_pcm.c-        // do something to stop the PCM engine
au88x0_pcm.c:        //printk(KERN_INFO "vortex: stop %d\n", dma);
au88x0_pcm.c-        stream->fifo_enabled = 0;
--
au88x0_pcm.c-        else {
au88x0_pcm.c:            printk(KERN_INFO "vortex: wt stop %d\n", dma);
au88x0_pcm.c-            vortex_wtdma_stopfifo(chip, dma);
--
au88x0_pcm.c-    case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
au88x0_pcm.c:        //printk(KERN_INFO "vortex: pause %d\n", dma);
au88x0_pcm.c-        if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT)
--
au88x0_pcm.c-    case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
au88x0_pcm.c:        //printk(KERN_INFO "vortex: resume %d\n", dma);
au88x0_pcm.c-        if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT)
--
au88x0_pcm.c-#endif
au88x0_pcm.c:    //printk(KERN_INFO "vortex: pointer = 0x%x\n",
current_ptr);
au88x0_pcm.c-    spin_unlock(&chip->lock);
--
au88x0_synth.c-    temp = hwread(vortex->mmio, WT_PARM(wt, 3));
au88x0_synth.c:    printk(KERN_DEBUG "vortex: WT PARM3: %x\n", temp);
au88x0_synth.c-    //hwwrite(vortex->mmio, WT_PARM(wt, 3), temp);
--
au88x0_synth.c-
au88x0_synth.c:    printk(KERN_DEBUG "vortex: WT GMODE: %x\n",
hwread(vortex->mmio, WT_GMODE(wt)));
au88x0_synth.c-
--
au88x0_synth.c-    hwwrite(vortex->mmio, WT_PARM(wt, 1), voice->parm1);
au88x0_synth.c:    printk(KERN_DEBUG "vortex: WT GMODE 2 : %x\n",
hwread(vortex->mmio, WT_GMODE(wt)));
au88x0_synth.c-    return 0;
--
au88x0_synth.c-        if (wt >= (NR_WT / NR_WT_PB)) {
au88x0_synth.c:            printk
au88x0_synth.c-                ("vortex: WT SetReg: bank out of range.
reg=0x%x, wt=%d\n",
--
au88x0_synth.c-        if (wt >= NR_WT) {
au88x0_synth.c:            printk(KERN_ERR "vortex: WT SetReg: voice out of
range\n");
au88x0_synth.c-            return 0;
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_RUN(wt), (int)val);
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_PARM(wt,0), (int)val);
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_PARM(wt,1), (int)val);
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_PARM(wt,2), (int)val);
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_PARM(wt,3), (int)val);
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_MUTE(wt), (int)val);
--
au88x0_synth.c-        /*
au88x0_synth.c:        printk(KERN_DEBUG "vortex: WT SetReg(0x%x) =
0x%08x\n",
au88x0_synth.c-               WT_DELAY(wt,0), (int)val);
--
au88x0_synth.c-    /*
au88x0_synth.c:    printk(KERN_DEBUG "vortex: WT SetReg(0x%x) = 0x%08x\n",
ecx, (int)val);
au88x0_synth.c-    */


More information about the Alsa-devel mailing list