[media] ivtv: fix v4l2-compliance errors for the radio device

- fix error code when attempting to read from write-only streams.
- fix error code when attempting to write to read-only streams.
- don't start capturing when polling on a radio node.
- give the radio node its own file operations struct.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/pci/ivtv/ivtv-fileops.c b/drivers/media/pci/ivtv/ivtv-fileops.c
index 7f2eb5f..9caffd8 100644
--- a/drivers/media/pci/ivtv/ivtv-fileops.c
+++ b/drivers/media/pci/ivtv/ivtv-fileops.c
@@ -435,7 +435,7 @@
 	    s->type == IVTV_DEC_STREAM_TYPE_YUV ||
 	    s->type == IVTV_DEC_STREAM_TYPE_VOUT) {
 		/* you cannot read from these stream types. */
-		return -EPERM;
+		return -EINVAL;
 	}
 
 	/* Try to claim this stream. */
@@ -564,7 +564,7 @@
 	    s->type != IVTV_DEC_STREAM_TYPE_YUV &&
 	    s->type != IVTV_DEC_STREAM_TYPE_VOUT)
 		/* not decoder streams */
-		return -EPERM;
+		return -EINVAL;
 
 	/* Try to claim this stream */
 	if (ivtv_claim_stream(id, s->type))
@@ -775,6 +775,7 @@
 
 	/* Start a capture if there is none */
 	if (!eof && !test_bit(IVTV_F_S_STREAMING, &s->s_flags) &&
+			s->type != IVTV_ENC_STREAM_TYPE_RAD &&
 			(req_events & (POLLIN | POLLRDNORM))) {
 		int rc;