static int broadcast_tdmb_get_ch_info(void __user *arg)
{
	int rc = ERROR;
	char fic_kernel_buffer[400];
	unsigned int fic_len = 0;

	struct broadcast_tdmb_ch_info __user* puserdata = (struct broadcast_tdmb_ch_info __user*)arg;

	if((puserdata == NULL)||( puserdata->ch_buf == NULL))
	{
		printk("broadcast_tdmb_get_ch_info argument error\n");
		return rc;
	}

	memset(fic_kernel_buffer, 0x00, sizeof(fic_kernel_buffer));
	rc = broadcast_drv_if_get_ch_info(fic_kernel_buffer, &fic_len);
	
	if(rc == OK)
	{
		if(copy_to_user((void __user*)puserdata->ch_buf, (void*)fic_kernel_buffer, fic_len))
		{
			fic_len = 0;
			rc = ERROR;
		}		
	}
	else
	{
		fic_len = 0;
		rc = ERROR;
	}
	
	puserdata->buf_len = fic_len;
	
	return rc;
}
static int broadcast_dmb_get_ch_info(void __user *arg)
{
	int rc = ERROR;
	struct broadcast_dmb_ch_info udata;

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

	if(copy_from_user(&udata, arg, sizeof(struct broadcast_dmb_ch_info)))
	{
		printk(KERN_ERR"[1seg]broadcast_dmb_get_ch_info copy_from_user fail!!! \n");
		rc = ERROR;		
	}
	else
	{
		rc = broadcast_drv_if_get_ch_info(&udata);
	}

	if(copy_to_user((void *)arg, &udata, sizeof(struct broadcast_dmb_ch_info)))
	{
		printk(KERN_ERR"[1seg]broadcast_dmb_get_ch_info copy_to_user error!!! \n");
		rc = ERROR;
	}
	else
	{
		rc = OK;
	}
	printk(KERN_DEBUG"[1seg]broadcast_dmb_get_ch_info\n");
	return rc;
}
static int broadcast_tdmb_get_ch_info(void __user *arg)
{
	int rc = ERROR;
	char fic_kernel_buffer[400];
	unsigned int fic_len = 0;

	struct broadcast_tdmb_ch_info __user* puserdata = (struct broadcast_tdmb_ch_info __user*)arg;

	if((puserdata == NULL)||( puserdata->ch_buf_addr == 0))
	{
		printk("broadcast_tdmb_get_ch_info argument error\n");
		return rc;
	}

	memset(fic_kernel_buffer, 0x00, sizeof(fic_kernel_buffer));

//20130516_wonhee.jeong Code for revision separation [START]
#if defined (CONFIG_MACH_MSM8974_Z_KR)
	if(lge_get_board_revno() == HW_REV_A){
		rc = broadcast_drv_if_get_ch_info_fci(fic_kernel_buffer, &fic_len);
	}
	else
#endif
//20130516_wonhee.jeong Code for revision separation [END]
	rc = broadcast_drv_if_get_ch_info(fic_kernel_buffer, &fic_len);

	if(rc == OK)
	{
		if(copy_to_user((void __user*)((unsigned int)puserdata->ch_buf_addr), (void*)fic_kernel_buffer, fic_len))
		{
			fic_len = 0;
			rc = ERROR;
		}
	}
	else
	{
		fic_len = 0;
		rc = ERROR;
	}

	puserdata->buf_len = fic_len;

	return rc;
}