]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
ALSA: Fix register programming in Freescale MPC8610 HPCD sound driver
authorTimur Tabi <timur@freescale.com>
Fri, 13 Jun 2008 19:02:31 +0000 (14:02 -0500)
committerJaroslav Kysela <perex@perex.cz>
Wed, 18 Jun 2008 07:24:32 +0000 (09:24 +0200)
Fix the Freescale MPC8610 HPCD sound driver so that it programs the DMACR
and PMUXCR registers in the global utilities correctly.

Signed-off-by: Timur Tabi <timur@freescale.com>
Acked-by: Liam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
sound/soc/fsl/mpc8610_hpcd.c

index a00aac7a71f1c10e88b681e4867647bf96d9c328..8820c3f8d171e88ffa83ae8d0942cd7e56712d82 100644 (file)
@@ -58,9 +58,9 @@ static int mpc8610_hpcd_machine_probe(struct platform_device *sound_device)
                sound_device->dev.platform_data;
 
        /* Program the signal routing between the SSI and the DMA */
-       guts_set_dmacr(machine_data->guts, machine_data->dma_id + 1,
+       guts_set_dmacr(machine_data->guts, machine_data->dma_id,
                machine_data->dma_channel_id[0], CCSR_GUTS_DMACR_DEV_SSI);
-       guts_set_dmacr(machine_data->guts, machine_data->dma_id + 1,
+       guts_set_dmacr(machine_data->guts, machine_data->dma_id,
                machine_data->dma_channel_id[1], CCSR_GUTS_DMACR_DEV_SSI);
 
        guts_set_pmuxcr_dma(machine_data->guts, machine_data->dma_id,
@@ -170,9 +170,9 @@ int mpc8610_hpcd_machine_remove(struct platform_device *sound_device)
 
        /* Restore the signal routing */
 
-       guts_set_dmacr(machine_data->guts, machine_data->dma_id + 1,
+       guts_set_dmacr(machine_data->guts, machine_data->dma_id,
                machine_data->dma_channel_id[0], 0);
-       guts_set_dmacr(machine_data->guts, machine_data->dma_id + 1,
+       guts_set_dmacr(machine_data->guts, machine_data->dma_id,
                machine_data->dma_channel_id[1], 0);
 
        switch (machine_data->ssi_id) {
@@ -182,7 +182,7 @@ int mpc8610_hpcd_machine_remove(struct platform_device *sound_device)
                break;
        case 1:
                clrsetbits_be32(&machine_data->guts->pmuxcr,
-                       CCSR_GUTS_PMUXCR_SSI2_MASK, CCSR_GUTS_PMUXCR_SSI1_LA);
+                       CCSR_GUTS_PMUXCR_SSI2_MASK, CCSR_GUTS_PMUXCR_SSI2_LA);
                break;
        }