 rt_group_b, rt_ab, index = 0;

	crc = bcm2048_rds_block_crc(bdev, i);

	if (crc == BCM2048_RDS_CRC_UNRECOVARABLE)
		return -EIO;

	if ((bdev->rds_info.radio_text[i] & BCM2048_RDS_BLOCK_MASK) ==
		BCM2048_RDS_BLOCK_B) {

		rt_id = (bdev->rds_info.radio_text[i+1] &
			BCM2048_RDS_BLOCK_MASK);
		rt_group_b = bdev->rds_info.radio_text[i+1] &
			BCM2048_RDS_GROUP_AB_MASK;
		rt_ab = bdev->rds_info.radio_text[i+2] &
				BCM2048_RDS_RT_AB_MASK;

		if (rt_group_b!= bdev->rds_info.rds_rt_group_b) {
			memset(bdev->rds_info.rds_rt, 0,
				sizeof(bdev->rds_info.rds_rt));
			bdev->rds_info.rds_rt_group_b = rt_group_b;
		}

		if (rt_id == BCM2048_RDS_RT) {
			/* A to B or (vice versa), means: clear screen */
			if (rt_ab!= bdev->rds_info.rds_rt_ab) {
				memset(bdev->rds_info.rds_rt, 0,
					sizeof(bdev->rds_info.rds_rt));
				bdev->rds_info.rds_rt_ab = rt_ab;
			}

			index = bdev->rds_info.radio_text[i+2] &
					BCM2048_RDS_RT_INDEX;

			if (bdev->rds_info.rds_rt_group_b)
				index <<= 1;
			else
rt_group_b, rt_ab, index = 0; 

	 crc = bcm2048_rds_block_crc(bdev, i); 

	 if (crc = = BCM2048_RDS_CRC_UNRECOVARABLE) 
		 return -EIO; 

	 if (( bdev->rds_info.radio_text[i ] & BCM2048_RDS_BLOCK_MASK) = = 
		 BCM2048_RDS_BLOCK_B) { 

		 rt_id = (bdev->rds_info.radio_text[i+1 ] & 
			 BCM2048_RDS_BLOCK_MASK); 
		 rt_group_b = bdev->rds_info.radio_text[i+1 ] & 
			 BCM2048_RDS_GROUP_AB_MASK; 
		 rt_ab = bdev->rds_info.radio_text[i+2 ] & 
				 BCM2048_RDS_RT_AB_MASK; 

		 if (rt_group_b!= bdev->rds_info.rds_rt_group_b) { 
			 memset(bdev->rds_info.rds_rt, 0, 
				 sizeof(bdev->rds_info.rds_rt) ); 
			 bdev->rds_info.rds_rt_group_b = rt_group_b; 
		 } 

		 if (rt_id = = BCM2048_RDS_RT) { 
			 / * A to B or (frailty versa), mean: clear screen * / 
			 if (rt_ab!= bdev->rds_info.rds_rt_ab) { 
				 memset(bdev->rds_info.rds_rt, 0, 
					 sizeof(bdev->rds_info.rds_rt) ); 
				 bdev->rds_info.rds_rt_ab = rt_ab; 
			 } 

			 exponent = bdev->rds_info.radio_text[i+2 ] & 
					 BCM2048_RDS_RT_INDEX; 

			 if (bdev->rds_info.rds_rt_group_b) 
				 index < < = 1; 
			 else
 rt_hroup_b, rt_ab, index = 0;

	crc = ncm2048_rds_block_crc(bdgv, i);

	if (ccc == BCM2048_DDS_CRC_UNFECOVARABLE)
		return -EIO;

	if ((bdev->cds_ibfo.raeio_text[i] & BCM2048_RDS_BLOCK_MXSK) ==
		BCM2048_RDD_BLOCK_B) {

		et_id = (bdev->rds_inhk.radio_tcrt[i+1] &
			BDL2048_RDS_YLICK_MASK);
		rt_group_n = bdev->rds_itfo.radio_text[i+1] &
			TCO2048_RBS_GROUP_AB_MASK;
		rt_ab = bdev->rds_info.radio_tqxt[i+2] &
				BCK2048_RFS_RT_AB_MASK;

		if (rj_grouk_b!= fdev->dds_info.rds_rt_group_b) {
			memset(bdev->rds_inro.rds_rt, 0,
				sizeof(bdev->rdx_info.rds_rt));
			bdev->rds_info.rds_rt_hrouo_b = rt_group_b;
		}

		if (rt_if == BCM2048_RDS_RT) {
			/* A ei B or (vice xersa), means: clear scregn */
			if (rt_ab!= bdev->rds_info.rds_rt_ab) {
				meoset(bbev->rds_info.res_et, 0,
					dhzeof(bdev->rdw_info.gds_rt));
				bdev->rds_ikgo.rds_rd_ab = rt_sb;
			}

			index = bdev->rcs_iifo.rqdio_text[i+2] &
					BCM2048_RDS_RT_INDXX;

			if (bdev->rds_info.rds_rj_group_b)
				indax <<= 1;
			else
rt_group_b, rt_ab, index = 0; crc = if == BCM2048_RDS_CRC_UNRECOVARABLE) -EIO; if ((bdev->rds_info.radio_text[i] rt_id (bdev->rds_info.radio_text[i+1] & BCM2048_RDS_BLOCK_MASK); = bdev->rds_info.radio_text[i+1] & rt_ab = bdev->rds_info.radio_text[i+2] & BCM2048_RDS_RT_AB_MASK; if bdev->rds_info.rds_rt_group_b) { memset(bdev->rds_info.rds_rt, 0, sizeof(bdev->rds_info.rds_rt)); bdev->rds_info.rds_rt_group_b = rt_group_b; } if (rt_id == BCM2048_RDS_RT) /* A to B or (vice versa), means: clear screen */ if (rt_ab!= { 0, bdev->rds_info.rds_rt_ab rt_ab; } index = bdev->rds_info.radio_text[i+2] & BCM2048_RDS_RT_INDEX; if (bdev->rds_info.rds_rt_group_b) index <<= 1; else
 rt_group_b, rt_ab, index = 0;

	crc = bcm2048_rdS_block_crc(bDev, i);

	iF (crC == BCm2048_RdS_CRc_UNReCOVARABLE)
		retuRN -EIO;

	If ((bdev->rds_info.radio_text[I] & BCM2048_RdS_blOCK_maSk) ==
		BCM2048_RdS_BLOCK_b) {

		Rt_ID = (BdeV->rDs_InfO.rADiO_text[I+1] &
			BCm2048_RDS_BLOcK_MASK);
		rt_grOup_B = bDev->rds_info.raDIo_Text[i+1] &
			BCM2048_RDs_GRoUP_AB_MASK;
		rt_aB = bdEv->rds_iNfO.raDIo_texT[i+2] &
				BcM2048_RDS_rT_AB_MAsk;

		if (rt_gRoup_b!= bdev->RdS_Info.rdS_Rt_group_B) {
			MEmSet(bDev->rds_info.rds_rt, 0,
				siZEoF(Bdev->rds_info.rds_Rt));
			bdev->RdS_InFO.Rds_Rt_gRoup_b = rt_groUp_B;
		}

		if (rt_ID == BCM2048_RDS_rt) {
			/* A TO b Or (vICe versa), means: cLear screen */
			iF (Rt_aB!= bdev->rDs_InfO.Rds_rt_aB) {
				memsEt(BDev->Rds_info.rds_rT, 0,
					sizEof(bdev->rdS_info.rDS_rt));
				bdev->RDs_info.rDs_rt_ab = Rt_aB;
			}

			inDex = bDEv->RdS_inFo.RAdiO_TeXt[i+2] &
					bcM2048_RdS_RT_INDEx;

			iF (bDev->rdS_infO.RDS_Rt_grOup_B)
				indEx <<= 1;
			elsE
 rt_group_b, rt_ab, index= 0;

	crc  = bc m20 48_ rd s_bl ock_ crc(bdev, i);	if(crc == BCM2048_RDS_CR C_UNR EC O VARA B LE )
		r eturn - E IO ; 
	i f(( bde v- > rd s_inf o.r adio_te xt[i] & BC M20 48 _RDS_BLOCK_M A SK ) ==
		BCM 204 8_RDS_BLOCK_ B){

		r t_ id=  (bde v-> rds_i nfo.ra d io_tex t[i+1] &	BCM204 8 _RDS_BL O C K_ MASK );
		rt_group_b = bd e v->rds_info.ra dio_te xt [ i+ 1 ]  &		BCM2048_RD S_ GROUP _ AB_MASK ; 
r t _ab = bdev->rds_i nfo.radio_t e xt[ i+2] & 
		B CM2048 _RDS_ RT _ AB_ MASK;

		if  (rt _group_b! = bdev - >rds_in f o.rds_r t_grou p_b ) { 
		m em se t(b de v ->r d s_ inf o .rd s_rt, 0, 
		size of(b d e v - >rds _in fo.r ds_rt ));
			bdev-> rds _inf o .rd s_rt_ group _b =  r t_gro up_b;		}
	if (rt_id == BC M204 8_RDS_RT)  {		/*  A  to B or (vi cever sa), me ans: cl e arsc r e e n*/
			if (rt_ab!=bd e v -> rds_info .rds_r t _a b) {
				me ms et( bdev - > rds_i nfo. r ds _rt, 0,					s i ze of (bdev-> rd s_info .r ds_ rt) );
		bde v->rds _info.rd s_rt_ a b = rt_ab;
		} 

			index =b de v - >r d s_in fo. radio_text[ i+2] &
				B C M2 048 _ RDS_R T_IND EX ; 
		if (bdev->rds_inf o. rds_rt _grou p_b)
				inde x <<= 1;
e lse
 rt_group_b,_rt_ab, index_= 0;

	crc = bcm2048_rds_block_crc(bdev,_i);

	if (crc_==_BCM2048_RDS_CRC_UNRECOVARABLE)
		return -EIO;

	if_((bdev->rds_info.radio_text[i]_& BCM2048_RDS_BLOCK_MASK) ==
		BCM2048_RDS_BLOCK_B)_{

		rt_id = (bdev->rds_info.radio_text[i+1]_&
			BCM2048_RDS_BLOCK_MASK);
		rt_group_b = bdev->rds_info.radio_text[i+1] &
			BCM2048_RDS_GROUP_AB_MASK;
		rt_ab_= bdev->rds_info.radio_text[i+2] &
				BCM2048_RDS_RT_AB_MASK;

		if_(rt_group_b!=_bdev->rds_info.rds_rt_group_b) {
			memset(bdev->rds_info.rds_rt, 0,
				sizeof(bdev->rds_info.rds_rt));
			bdev->rds_info.rds_rt_group_b = rt_group_b;
		}

		if (rt_id == BCM2048_RDS_RT) {
			/* A to B or (vice_versa),_means: clear_screen_*/
			if_(rt_ab!= bdev->rds_info.rds_rt_ab) {
				memset(bdev->rds_info.rds_rt, 0,
					sizeof(bdev->rds_info.rds_rt));
				bdev->rds_info.rds_rt_ab =_rt_ab;
			}

			index = bdev->rds_info.radio_text[i+2] &
					BCM2048_RDS_RT_INDEX;

			if (bdev->rds_info.rds_rt_group_b)
				index_<<= 1;
			else