/* ========================================================================== // // Function Name: csl_audio_render_get_current_buffer // // Description: Get the current render buffer for this streamID // // =========================================================================*/ UInt16 csl_audio_render_get_current_buffer(UInt32 streamID) { CSL_CAPH_Render_Drv_t *audDrv = NULL; if (streamID != CSL_CAPH_STREAM_NONE) audDrv = &sRenderDrv[streamID]; else return 0; if ((audDrv->dmaCH < CSL_CAPH_DMA_CH1) || (audDrv->dmaCH > CSL_CAPH_DMA_CH16)) return 0; if (FALSE == csl_caph_QueryHWClock()) { /*the CAPH clock may be not turned on.*/ aError( "csl_audio_render_get_current_position caph clock is not ON!! audDrv %x, streamID %d, audDrv->dmaCH %d ", (int)audDrv, (int)streamID, audDrv->dmaCH); return 0; } if (audDrv->dmaCH != CSL_CAPH_DMA_NONE) return csl_caph_dma_check_dmabuffer(audDrv->dmaCH); else return 0; }
int AtMaudTst(brcm_alsa_chip_t *pChip, Int32 ParamCount, Int32 *Params) { aTrace(LOG_AUDIO_DRIVER, "%s P1-P6=%ld %ld %ld %ld %ld %ld cnt=%ld.\n", __func__, Params[0], Params[1], Params[2], Params[3], Params[4], Params[5], ParamCount); /* test command 110/101 is to control the HW clock. In this case, dont enable the clock */ if (Params[0] != 110 && Params[0] != 101) csl_caph_ControlHWClock(TRUE); switch (Params[0]) { case 50: /* set audio debug level */ gAudioDebugLevel = Params[1]; break; case 51: /* print audio debug level */ pr_info("audio debug level is 0x%x\n", gAudioDebugLevel); break; case 98: #ifdef CONFIG_BCM_MODEM DJB_GetStatistics(); #endif break; case 99: if (voip_running) { AUDTST_VoIP_Stop(); voip_running = FALSE; } break; case 100: if (!voip_running) { /* Params[1] - Mic Params[2] - speaker Params[3] - Delay (msec) Params[4] - Codectype: Params[5] - Codec bit rate: */ AUDTST_VoIP(Params[1], Params[2], Params[3], Params[4], Params[5]); voip_running = TRUE; } break; case 101: Params[0] = (Int32) csl_caph_QueryHWClock(); aTrace(LOG_AUDIO_DRIVER, "csl_caph_QueryHWClock %ld.\n", Params[0]); break; case 110: if (Params[1] == 1) { aTrace(LOG_AUDIO_DRIVER, "Enable CAPH clock\n"); csl_caph_ControlHWClock(TRUE); } else if (Params[1] == 0) { aTrace(LOG_AUDIO_DRIVER, "Disable CAPH clock\n"); csl_caph_ControlHWClock(FALSE); } break; case 500: /*at*maudtst=500, */ { char *address; unsigned int value = 0, gain1 = 0, gain2 = 0, gain3 = 0, gain4 = 0; unsigned int index; #define CHAL_CAPH_SRCM_MAX_FIFOS 15 #define SRCMIXER_A SRCMIXER_SRC_M1D1_CH1M_GAIN_CTRL_OFFSET #define SRCMIXER_B SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_OFFSET /* 4 bytes */ #define SRCMIXER_MIX_CH_GAIN_CTRL_OFFSET ((SRCMIXER_A - SRCMIXER_B)/4) address = (char *)ioremap_nocache((UInt32) (AUDIOH_BASE_ADDR + AUDIOH_AUDIORX_VRX1_OFFSET), sizeof(UInt32)); if (!address) { pr_err(" address ioremap failed\n"); return 0; } value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (AUDIOH_AUDIORX_VRX1_AUDIORX_VRX_GAINCTRL_MASK); gain1 >>= (AUDIOH_AUDIORX_VRX1_AUDIORX_VRX_GAINCTRL_SHIFT); pr_err("AUDIOH_AUDIORX_VRX1=0x%x, AMIC_PGA=0x%x\n", value, gain1); address = (char *)ioremap_nocache((UInt32) (AUDIOH_BASE_ADDR + AUDIOH_VIN_FILTER_CTRL_OFFSET), sizeof(UInt32)); if (!address) { pr_err(" address ioremap failed\n"); return 0; } value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (AUDIOH_VIN_FILTER_CTRL_DMIC1_CIC_BIT_SEL_MASK); gain1 >>= (AUDIOH_VIN_FILTER_CTRL_DMIC1_CIC_BIT_SEL_SHIFT); gain2 = value; gain2 &= (AUDIOH_VIN_FILTER_CTRL_DMIC1_CIC_FINE_SCL_MASK); gain2 >>= (AUDIOH_VIN_FILTER_CTRL_DMIC1_CIC_FINE_SCL_SHIFT); gain3 = value; gain3 &= (AUDIOH_VIN_FILTER_CTRL_DMIC2_CIC_BIT_SEL_MASK); gain3 >>= (AUDIOH_VIN_FILTER_CTRL_DMIC2_CIC_BIT_SEL_SHIFT); gain4 = value; gain4 &= (AUDIOH_VIN_FILTER_CTRL_DMIC2_CIC_FINE_SCL_MASK); gain4 >>= (AUDIOH_VIN_FILTER_CTRL_DMIC2_CIC_FINE_SCL_SHIFT); pr_err(" AUDIOH_VIN_FILTER_CTRL=0x%x\n", value); pr_err("DMIC1_CIC_BIT_SEL=0x%x, DMIC1_CIC_FINE=0x%x\n", gain1, gain2); pr_err("DMIC2_CIC_BIT_SEL=0x%x, " "DMIC2_CIC_FINE_SCL=0x%x\n", gain3, gain4); address = (char *)ioremap_nocache((UInt32) (AUDIOH_BASE_ADDR + AUDIOH_NVIN_FILTER_CTRL_OFFSET), sizeof(UInt32)); if (!address) { pr_err(" address ioremap failed\n"); return 0; } value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (AUDIOH_NVIN_FILTER_CTRL_DMIC3_CIC_BIT_SEL_MASK); gain1 >>= (AUDIOH_NVIN_FILTER_CTRL_DMIC3_CIC_BIT_SEL_SHIFT); gain2 = value; gain2 &= (AUDIOH_NVIN_FILTER_CTRL_DMIC3_CIC_FINE_SCL_MASK); gain2 >>= (AUDIOH_NVIN_FILTER_CTRL_DMIC3_CIC_FINE_SCL_SHIFT); gain3 = value; gain3 &= (AUDIOH_NVIN_FILTER_CTRL_DMIC4_CIC_BIT_SEL_MASK); gain3 >>= (AUDIOH_NVIN_FILTER_CTRL_DMIC4_CIC_BIT_SEL_SHIFT); gain4 = value; gain4 &= (AUDIOH_NVIN_FILTER_CTRL_DMIC4_CIC_FINE_SCL_MASK); gain4 >>= (AUDIOH_NVIN_FILTER_CTRL_DMIC4_CIC_FINE_SCL_SHIFT); pr_err(" AUDIOH_VIN_FILTER_CTRL=0x%x\n", value); pr_err("DMIC3_CIC_BIT_SEL=0x%x, DMIC3_CIC_FINE=0x%x\n", gain1, gain2); pr_err("DMIC4_CIC_BIT_SEL=0x%x, " "DMIC4_CIC_FINE_SCL=0x%x\n", gain3, gain4); address = (char *) ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_OFFSET), sizeof(UInt32)); if (!address) { pr_err(" address ioremap failed\n"); return 0; } value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 1, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 2, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH3M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 3, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH4M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 4, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH5L_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 5 left, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH5R_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 5 right, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH6L_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 6 left, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH6R_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 6 right, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH7L_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 7 left, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D0_CH7R_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D0, channel 7 right, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); /********/ address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH1M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH1M_GAIN_CTRL_SRC_M1D0_CH1M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 1, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH2M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 2, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH3M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 3, Target_Gain" "=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH4M_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 4, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH5L_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 5 left, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH5R_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 5 right, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH6L_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 6 left, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH6R_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 6 right, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH7L_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 7 left, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); address = (char *)ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + SRCMIXER_SRC_M1D1_CH7R_GAIN_CTRL_OFFSET), sizeof(UInt32)); value = ioread32(address); iounmap(address); gain1 = value; gain1 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_MASK); gain1 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_GAIN_RAMPSTEP_SHIFT); gain2 = value; gain2 &= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_MASK); gain2 >>= (SRCMIXER_SRC_M1D0_CH2M_GAIN_CTRL_SRC_M1D0_CH2M_TARGET_GAIN_SHIFT); pr_err("MIXER 1 D1, channel 7 right, " "Target_Gain=0x%x, Gain_RampStep=0x%x\n", gain2, gain1); /**********/ for (index = 0x00000160; index <= 0x00000270; index = index + 4) { address = (char *) ioremap_nocache((UInt32) (SRCMIXER_BASE_ADDR + index), sizeof(UInt32)); value = ioread32(address); iounmap(address); pr_err("SRCMIXER_BASE_ADDR + offset 0x%x, " "value = 0x%x\n", index, value); } } /* 500 cmd */ break; case 1000: /*at*maudtst=1000,addr,len */ { u32 value, index, phy_addr, size; char *addr; if (Params[2] == 0) size = 1; else size = Params[2] >> 2; phy_addr = Params[1]; if (!phy_addr) { pr_err("invalid addr 0\n"); return 0; } addr = ioremap_nocache(phy_addr, sizeof(u32)); if (!addr) { pr_err(" addr ioremap failed\n"); return 0; } pr_err("Read phy_addr 0x%08x (virtual %p), " "size = 0x%08x bytes\n", phy_addr, addr, size << 2); iounmap(addr); for (index = 0; index < size; index++) { addr = ioremap_nocache(phy_addr, sizeof(u32)); if (addr) { value = ioread32(addr); iounmap(addr); pr_err("[%08x] = %08x\n", phy_addr, value); } phy_addr += 4; } } break; default: aTrace(LOG_AUDIO_DRIVER, "%s Not supported command\n", __func__); return -1; } return 0; }