Commit 9de1be6e authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

media: saa7164: fix return codes for the polling routine



All poll handlers should return a poll flag, and not error codes. So,
instead of returning an error, do the right thing at saa7164,
e. g. to return EPOLERR on errors, just like the V4L2 VB2 code.

Solves the following sparse warnings:
    drivers/media/pci/saa7164/saa7164-vbi.c:632:24: warning: incorrect type in return expression (different base types)
    drivers/media/pci/saa7164/saa7164-vbi.c:632:24:    expected restricted __poll_t
    drivers/media/pci/saa7164/saa7164-vbi.c:632:24:    got int
    drivers/media/pci/saa7164/saa7164-vbi.c:637:40: warning: incorrect type in return expression (different base types)
    drivers/media/pci/saa7164/saa7164-vbi.c:637:40:    expected restricted __poll_t
    drivers/media/pci/saa7164/saa7164-vbi.c:637:40:    got int
    drivers/media/pci/saa7164/saa7164-vbi.c:647:40: warning: incorrect type in return expression (different base types)
    drivers/media/pci/saa7164/saa7164-vbi.c:647:40:    expected restricted __poll_t
    drivers/media/pci/saa7164/saa7164-vbi.c:647:40:    got int

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 541b647a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -629,12 +629,12 @@ static __poll_t fops_poll(struct file *file, poll_table *wait)
		port->last_poll_msecs_diff);

	if (!video_is_registered(port->v4l_device))
		return -EIO;
		return EPOLLERR;

	if (atomic_cmpxchg(&fh->v4l_reading, 0, 1) == 0) {
		if (atomic_inc_return(&port->v4l_reader_count) == 1) {
			if (saa7164_vbi_initialize(port) < 0)
				return -EINVAL;
				return EPOLLERR;
			saa7164_vbi_start_streaming(port);
			msleep(200);
		}
@@ -644,7 +644,7 @@ static __poll_t fops_poll(struct file *file, poll_table *wait)
	if ((file->f_flags & O_NONBLOCK) == 0) {
		if (wait_event_interruptible(port->wait_read,
			saa7164_vbi_next_buf(port))) {
				return -ERESTARTSYS;
				return EPOLLERR;
		}
	}