static int broadcast_tdmb_set_channel(void __user *arg)
{
	int rc = ERROR;
	struct broadcast_tdmb_set_ch_info udata;

	if(copy_from_user(&udata, arg, sizeof(struct broadcast_tdmb_set_ch_info)))
	{
		printk("broadcast_tdmb_set_ch fail!!! \n");
		rc = ERROR;
	}
	else
	{
//20130516_wonhee.jeong Code for revision separation [START]
#if defined (CONFIG_MACH_MSM8974_Z_KR)
		if(lge_get_board_revno() == HW_REV_A){
			broadcast_drv_if_user_stop_fci( 0 );
			printk("broadcast_tdmb_set_ch_fci ch_num = %d, mode = %d, sub_ch_id = %d \n", udata.ch_num, udata.mode, udata.sub_ch_id);
			rc = broadcast_drv_if_set_channel_fci(udata.ch_num, udata.sub_ch_id, udata.mode);
			return rc;
		}
#endif
//20130516_wonhee.jeong Code for revision separation [END]
		broadcast_drv_if_user_stop( 0 );
		printk("broadcast_tdmb_set_ch ch_num = %d, mode = %d, sub_ch_id = %d \n", udata.ch_num, udata.mode, udata.sub_ch_id);
		rc = broadcast_drv_if_set_channel(udata.ch_num, udata.sub_ch_id, udata.mode);
	}

	return rc;

}
static int broadcast_tdmb_close(void)
{
	int rc = ERROR;
	broadcast_drv_if_user_stop(0);
	rc = broadcast_drv_if_close();
	
	return rc;
}
static int broadcast_tdmb_power_off(void)
{
	int rc = ERROR;
	
	rc = broadcast_drv_if_power_off();

	broadcast_drv_if_user_stop( 0 );

	return rc;
}
int8 broadcast_tdmb_blt_power_off(void)
{
	int rc = ERROR;

	rc = broadcast_drv_if_power_off();

	broadcast_drv_if_user_stop( 0 ); /* 0 or 1 */

	return rc;

}
int8 broadcast_tdmb_blt_power_on(void)
{
	int rc = ERROR;

	rc = broadcast_drv_if_power_on();

	broadcast_drv_if_user_stop( 0 );

	return rc;

}
static int8 broadcast_tdmb_user_stop(void __user *arg)
{
	int udata;
	int __user* puser = (int __user*)arg;

	udata = *puser;

	//printk("broadcast_tdmb_user_stop data =(%d)\n", udata);
	broadcast_drv_if_user_stop( udata );

	return OK;
}
static int8 broadcast_dmb_user_stop(void __user *arg)
{
	int udata;
	int __user* puser = (int __user*)arg;

	if(arg==NULL) {
		printk(KERN_ERR"broadcast_dmb_user_stop arg is Null\n");
		return ERROR;
	}

	udata = *puser;
	broadcast_drv_if_user_stop(udata);
	printk(KERN_DEBUG"[1seg]broadcast_dmb_user_stop (%d)\n", udata);
	return OK;
}
static int broadcast_tdmb_close(void)
{
	int rc = ERROR;
//20130516_wonhee.jeong Code for revision separation [START]
#if defined (CONFIG_MACH_MSM8974_Z_KR)
	if(lge_get_board_revno() == HW_REV_A){
		broadcast_drv_if_user_stop_fci(0);
		rc = broadcast_drv_if_close_fci();
		return rc;
	}
#endif
//20130516_wonhee.jeong Code for revision separation [END]
	broadcast_drv_if_user_stop(0);
	rc = broadcast_drv_if_close();

	return rc;
}
static int broadcast_tdmb_close(void)
{
	int rc = ERROR;
//                                                          
#if defined (CONFIG_MACH_MSM8974_Z_KR)
	if(lge_get_board_revno() == HW_REV_A){
		broadcast_drv_if_user_stop_fci(0);
		rc = broadcast_drv_if_close_fci();
		return rc;
	}
#endif
//                                                        
	broadcast_drv_if_user_stop(0);
	rc = broadcast_drv_if_close();

	return rc;
}
static int8 broadcast_tdmb_user_stop(void __user *arg)
{
	int udata;
	int __user* puser = (int __user*)arg;

	udata = *puser;

	//printk("broadcast_tdmb_user_stop data =(%d)\n", udata);

//20130516_wonhee.jeong Code for revision separation [START]
#if defined (CONFIG_MACH_MSM8974_Z_KR) 
	if(lge_get_board_revno() == HW_REV_A){
		broadcast_drv_if_user_stop_fci( udata );
		return OK;
	}
#endif
//20130516_wonhee.jeong Code for revision separation [END]
	broadcast_drv_if_user_stop( udata );

	return OK;
}
static int broadcast_tdmb_set_channel(void __user *arg)
{
	int rc = ERROR;
	struct broadcast_tdmb_set_ch_info udata;

	if(copy_from_user(&udata, arg, sizeof(struct broadcast_tdmb_set_ch_info)))
	{
		printk("broadcast_tdmb_set_ch fail!!! \n");
		rc = ERROR;
	}
	else
	{
		broadcast_drv_if_user_stop( 0 );
		
		printk("broadcast_tdmb_set_ch ch_num = %d, mode = %d, sub_ch_id = %d \n", udata.ch_num, udata.mode, udata.sub_ch_id);		
		rc = broadcast_drv_if_set_channel(udata.ch_num, udata.sub_ch_id, udata.mode);	
	}

	return rc;

}
static int8 broadcast_tdmb_user_stop(void __user *arg)
{
	int udata;
	int __user* puser = (int __user*)arg;

	udata = *puser;

	//                                                       

//                                                          
#if defined (CONFIG_MACH_MSM8974_Z_KR) 
	if(lge_get_board_revno() == HW_REV_A){
		broadcast_drv_if_user_stop_fci( udata );
		return OK;
	}
#endif
//                                                        
	broadcast_drv_if_user_stop( udata );

	return OK;
}