static u32 fm_v4l2_fops_poll(struct file *file, struct poll_table_struct *pts)
{
	int ret;
	struct fmdev *fmdev;
	unsigned int mask = 0;

	fmdev = video_drvdata(file);

	if (fmdev->rx.comp_scan_status == 1) {
		if (fmdev->rx.comp_scan_done == 1) {
			mask |= POLLPRI | POLLIN;
			fmdev->rx.comp_scan_done = 0;
		} else {
			mask = 0;
		}

		return mask;
	}

	mask = 0;


	ret = fmc_is_rds_data_available(fmdev, file, pts);
	if (ret < 0)
		mask = 0;
	else
		return POLLIN | POLLRDNORM;

	return mask;
}
Example #2
0
static u32 fm_v4l2_fops_poll(struct file *file, struct poll_table_struct *pts)
{
	int ret;
	struct fmdev *fmdev;

	fmdev = video_drvdata(file);
	ret = fmc_is_rds_data_available(fmdev, file, pts);
	if (ret < 0)
		return POLLIN | POLLRDNORM;

	return 0;
}