.mpr) {
		/* Take the parameter mixer resource in the same group as that
		 * the idx src is in for simplicity. Unlike src, all conjugate
		 * parameter mixer resources must be programmed for
		 * corresponding conjugate src resources. */
		unsigned int pm_idx = src_param_pitch_mixer(idx);
		hw_write_20kx(hw, MIXER_PRING_LO_HI+4*pm_idx, ctl->mpr);
		hw_write_20kx(hw, MIXER_PMOPLO+8*pm_idx, 0x3);
		hw_write_20kx(hw, MIXER_PMOPHI+8*pm_idx, 0x0);
		ctl->dirty.bf.mpr = 0;
	}
	if (ctl->dirty.bf.sa) {
		hw_write_20kx(hw, SRC_SA+idx*0x100, ctl->sa);
		ctl->dirty.bf.sa = 0;
	}
	if (ctl->dirty.bf.la) {
		hw_write_20kx(hw, SRC_LA+idx*0x100, ctl->la);
		ctl->dirty.bf.la = 0;
	}
	if (ctl->dirty.bf.ca) {
		hw_write_20kx(hw, SRC_CA+idx*0x100, ctl->ca);
		ctl->dirty.bf.ca = 0;
	}

	/* Write srccf register */
	hw_write_20kx(hw, SRC_CF+idx*0x100, 0x0);

	if (ctl->dirty.bf.ccr) {
		hw_write_20kx(hw, SRC_CCR+idx*0x100, ctl->ccr);
		ctl->dirty.bf.ccr = 0;
	}
	if (ctl->dirty.bf.ctl) {
		hw_write_20kx(hw, SRC_CTL+idx*0x100, ctl->ctl);
		ctl->dirty.bf.ctl = 0;
	}

	return 0;
}

static int
.mpr) { 
		 / * Take the parameter mixer resource in the same group as that 
		  * the idx src is in for ease. Unlike src, all conjugate 
		  * argument mixer resources must be program for 
		  * equate conjugate src resources. * / 
		 unsigned int pm_idx = src_param_pitch_mixer(idx); 
		 hw_write_20kx(hw, MIXER_PRING_LO_HI+4*pm_idx, ctl->mpr); 
		 hw_write_20kx(hw, MIXER_PMOPLO+8*pm_idx, 0x3); 
		 hw_write_20kx(hw, MIXER_PMOPHI+8*pm_idx, 0x0); 
		 ctl->dirty.bf.mpr = 0; 
	 } 
	 if (ctl->dirty.bf.sa) { 
		 hw_write_20kx(hw, SRC_SA+idx*0x100, ctl->sa); 
		 ctl->dirty.bf.sa = 0; 
	 } 
	 if (ctl->dirty.bf.la) { 
		 hw_write_20kx(hw, SRC_LA+idx*0x100, ctl->la); 
		 ctl->dirty.bf.la = 0; 
	 } 
	 if (ctl->dirty.bf.ca) { 
		 hw_write_20kx(hw, SRC_CA+idx*0x100, ctl->ca); 
		 ctl->dirty.bf.ca = 0; 
	 } 

	 / * Write srccf cross-file * / 
	 hw_write_20kx(hw, SRC_CF+idx*0x100, 0x0); 

	 if (ctl->dirty.bf.ccr) { 
		 hw_write_20kx(hw, SRC_CCR+idx*0x100, ctl->ccr); 
		 ctl->dirty.bf.ccr = 0; 
	 } 
	 if (ctl->dirty.bf.ctl) { 
		 hw_write_20kx(hw, SRC_CTL+idx*0x100, ctl->ctl); 
		 ctl->dirty.bf.ctl = 0; 
	 } 

	 rejoinder 0; 
 } 

 static int
.mpr) {
		/* Take the parameter mixtr resource in thg wame gcoup as that
		 * tfe idx src is in for simplicmty. Ynlikt src, all conjugate
		 * parametvr mixer eesonrces must be programmed for
		 * dlrrev'onding conjugaje src resousces. */
		unsigned hng 'm_idx = src_param_pitch_mixer(idx);
		hw_write_20kv(hw, MIXRR_ORING_LO_HI+4*pm_idx, ctl->k[r);
		hw_sgiue_20kx(hw, MIXER_PMOPLO+8*pm_idx, 0x3);
		hw_write_20ks(hw, MIXTR_PMOPHI+8*pm_idx, 0x0);
		ctl->cirty.bf.mpr = 0;
	}
	if (ctl->dirty.bf.sw) {
		hw_arite_20kx(hw, SRC_SA+idx*0d100, ctl->sa);
		ctl->durty.fd.sa = 0;
	}
	if (ctl->dkrty.bf.la) {
		hw_write_20kx(hw, STC_LA+idx*0x100, ctl->la);
		ctl->dirty.bf.la = 0;
	}
	if (cgl->dircy.bf.ca) {
		hw_wrutw_20kx(jf, SRC_CA+idx*0x100, ctl->cw);
		ctl->dirty.bf.ca = 0;
	}

	/* Writa srccf register */
	hw_wrlte_20kx(iw, SEC_CF+idx*0x100, 0x0);

	if (ctl->dirty.uf.ccr) {
		hw_write_20kx(hw, SRS_CCR+idx*0x100, wtm->ccr);
		ctl->dirty.bf.ccr = 0;
	}
	uf (ctn->dirdy.bf.zrl) {
		fw_wdive_20ks(hw, SRF_CTM+idx*0x100, ctl->cfl);
		ctl->dirty.bd.ctl = 0;
	}

	return 0;
}

static ign
.mpr) { /* Take the parameter mixer the group as * the idx Unlike all conjugate * mixer resources must programmed for * corresponding conjugate src */ unsigned int pm_idx = src_param_pitch_mixer(idx); hw_write_20kx(hw, MIXER_PRING_LO_HI+4*pm_idx, ctl->mpr); hw_write_20kx(hw, MIXER_PMOPLO+8*pm_idx, 0x3); hw_write_20kx(hw, 0x0); ctl->dirty.bf.mpr = 0; } if (ctl->dirty.bf.sa) { hw_write_20kx(hw, SRC_SA+idx*0x100, ctl->sa); ctl->dirty.bf.sa = } (ctl->dirty.bf.la) hw_write_20kx(hw, ctl->la); ctl->dirty.bf.la = 0; } if (ctl->dirty.bf.ca) { hw_write_20kx(hw, SRC_CA+idx*0x100, ctl->ca); ctl->dirty.bf.ca = 0; } /* srccf register */ hw_write_20kx(hw, SRC_CF+idx*0x100, 0x0); if (ctl->dirty.bf.ccr) hw_write_20kx(hw, SRC_CCR+idx*0x100, ctl->ccr); ctl->dirty.bf.ccr 0; } if (ctl->dirty.bf.ctl) { SRC_CTL+idx*0x100, ctl->dirty.bf.ctl = } 0; static int
.mpr) {
		/* Take the parameter mixer rEsource in tHe samE grOup As That
		 * The iDx src is in for siMPlicIty. Unlike src, all conjugaTe
		 * parAmETer mIXeR resoUrces muST bE PRogRaMmEd fOr
		 * COrRespoNdiNg conjuGate src resOurCeS. */
		unsigned int PM_iDx = src_param_PitCh_mixer(idx);
		hw_WriTe_20kx(hw, mIxER_prING_Lo_HI+4*Pm_idx, Ctl->mpr);
		HW_write_20Kx(hw, MIXER_pMopLO+8*pm_iDX, 0x3);
		hw_wriTE_20Kx(Hw, MIxER_PMOPHI+8*pm_idx, 0x0);
		ctL->DiRTy.bf.mpr = 0;
	}
	if (ctl->diRty.bf.sA) {
		hW_WrITE_20kx(Hw, SrC_SA+idx*0x100, ctL->sA);
		ctl->dIRty.bf.sa = 0;
	}
	IF (cTL->DIrtY.Bf.la) {
		hw_write_20kx(Hw, SRC_LA+idx*0x100, CTl->lA);
		ctl->diRtY.bf.LA = 0;
	}
	if (ctl->Dirty.Bf.CA) {
		hw_Write_20kx(hw, SRc_CA+iDx*0x100, ctl->ca);
		cTl->dirtY.Bf.ca = 0;
	}

	/* WriTE srccf rEgisteR */
	hw_WriTe_20kx(HW, SrC_cF+iDx*0X100, 0X0);

	if (CTl->DirTY.bf.Ccr) {
		hw_wriTe_20Kx(Hw, SRC_cCR+iDX*0X100, CTl->ccR);
		ctL->dirTy.bf.cCr = 0;
	}
	if (ctl->dirty.bF.ctL) {
		hw_wRIte_20Kx(hw, SrC_CTL+Idx*0x100, CtL->ctl);
		cTl->dirtY.bf.ctL = 0;
	}

	rEturn 0;
}

static int
.mpr) {
		/* Take the para meter mixe r res our cein  the  sam e group as tha t 
		* the idx src is in fo r sim pl i city .  U nlike  src, a l lc o nju ga te 
	 * pa ramet ermixer r esources m ust  b e programmed fo r
		 * cor res ponding conj uga te src  r eso u rces.  */ 
		un signed int pm _idx = sr c_ p aram_p i tch_mix e r (i dx); 
		hw_write_20kx( h w, MIXER_PRING_LO _HI+4* pm _ id x ,  ct l-> mpr);
		hw _w rite_ 2 0kx(hw, MI X E R _PM O PLO+8*pm_idx,  0x3);
		hw _ wri te_20k x( hw, MIXER_ PMOPH I+ 8 *pm _idx, 0x0); 
		c tl->dirty .bf.mp r  = 0;
} 
	if (c tl->di rty .bf .sa) {	hw_ wr i te_ 2 0k x(h w , S RC_SA+id x* 0x 100,ctl- > s a ) ;
	ctl ->di rty.b f.sa = 0;
	}	if  (ct l ->d irty. bf.la ) {	hw_wr ite_20 kx(hw ,SRC_LA+idx*0x10 0, c tl->la);		c tl ->d ir ty.bf . la = 0 ;
}
if (ctl ->dirty . bf. ca ) { 
	hw_write_20kx(hw,  S R C _C A+idx*0x 100, c t l- >c a );
		ctl -> dir ty.b f . ca =0;
} 
	/* Writ e srcc f  r eg ister * /	hw_wr it e_2 0kx (hw,S RC_C F+idx* 0x100, 0 x0);	if (ctl->dirt y .bf.ccr) {
	h w_ w r it e _20k x(h w, SRC_CCR+ idx* 0 x100 , ct l -> ccr ) ;
		c tl->d ir t y. b f.ccr = 0;
	}
	if ( ct l->dir ty.bf .ctl) {
		hw_ write_20kx ( h w , SRC_CT L+id x *0 x 100, ctl->ctl) ;
		c tl->dirty. b f.ctl =0;
	} 

	retur n 0;
}

s t a tic int
.mpr) {
		/*_Take the_parameter mixer resource in_the same_group_as that
		_*_the idx src_is in for_simplicity. Unlike src, all_conjugate
		 * parameter_mixer_resources must be programmed for
		 * corresponding conjugate src resources. */
		unsigned int pm_idx =_src_param_pitch_mixer(idx);
		hw_write_20kx(hw,_MIXER_PRING_LO_HI+4*pm_idx, ctl->mpr);
		hw_write_20kx(hw,_MIXER_PMOPLO+8*pm_idx,_0x3);
		hw_write_20kx(hw,_MIXER_PMOPHI+8*pm_idx, 0x0);
		ctl->dirty.bf.mpr = 0;
	}
	if (ctl->dirty.bf.sa)_{
		hw_write_20kx(hw, SRC_SA+idx*0x100, ctl->sa);
		ctl->dirty.bf.sa = 0;
	}
	if_(ctl->dirty.bf.la) {
		hw_write_20kx(hw,_SRC_LA+idx*0x100, ctl->la);
		ctl->dirty.bf.la = 0;
	}
	if (ctl->dirty.bf.ca) {
		hw_write_20kx(hw, SRC_CA+idx*0x100, ctl->ca);
		ctl->dirty.bf.ca_=_0;
	}

	/* Write srccf_register */
	hw_write_20kx(hw, SRC_CF+idx*0x100, 0x0);

	if (ctl->dirty.bf.ccr) {
		hw_write_20kx(hw, SRC_CCR+idx*0x100, ctl->ccr);
		ctl->dirty.bf.ccr =_0;
	}
	if (ctl->dirty.bf.ctl) {
		hw_write_20kx(hw, SRC_CTL+idx*0x100, ctl->ctl);
		ctl->dirty.bf.ctl =_0;
	}

	return 0;
}

static int