|
@@ -1716,26 +1716,27 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
|
|
|
|
|
|
v4l_dbg(1, cx25840_debug, client, "%s video output\n",
|
|
v4l_dbg(1, cx25840_debug, client, "%s video output\n",
|
|
enable ? "enable" : "disable");
|
|
enable ? "enable" : "disable");
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * It's not clear what should be done for these devices.
|
|
|
|
+ * The original code used the same addresses as for the cx25840, but
|
|
|
|
+ * those addresses do something else entirely on the cx2388x and
|
|
|
|
+ * cx231xx. Since it never did anything in the first place, just do
|
|
|
|
+ * nothing.
|
|
|
|
+ */
|
|
|
|
+ if (is_cx2388x(state) || is_cx231xx(state))
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
if (enable) {
|
|
if (enable) {
|
|
- if (is_cx2388x(state) || is_cx231xx(state)) {
|
|
|
|
- v = cx25840_read(client, 0x421) | 0x0b;
|
|
|
|
- cx25840_write(client, 0x421, v);
|
|
|
|
- } else {
|
|
|
|
- v = cx25840_read(client, 0x115) | 0x0c;
|
|
|
|
- cx25840_write(client, 0x115, v);
|
|
|
|
- v = cx25840_read(client, 0x116) | 0x04;
|
|
|
|
- cx25840_write(client, 0x116, v);
|
|
|
|
- }
|
|
|
|
|
|
+ v = cx25840_read(client, 0x115) | 0x0c;
|
|
|
|
+ cx25840_write(client, 0x115, v);
|
|
|
|
+ v = cx25840_read(client, 0x116) | 0x04;
|
|
|
|
+ cx25840_write(client, 0x116, v);
|
|
} else {
|
|
} else {
|
|
- if (is_cx2388x(state) || is_cx231xx(state)) {
|
|
|
|
- v = cx25840_read(client, 0x421) & ~(0x0b);
|
|
|
|
- cx25840_write(client, 0x421, v);
|
|
|
|
- } else {
|
|
|
|
- v = cx25840_read(client, 0x115) & ~(0x0c);
|
|
|
|
- cx25840_write(client, 0x115, v);
|
|
|
|
- v = cx25840_read(client, 0x116) & ~(0x04);
|
|
|
|
- cx25840_write(client, 0x116, v);
|
|
|
|
- }
|
|
|
|
|
|
+ v = cx25840_read(client, 0x115) & ~(0x0c);
|
|
|
|
+ cx25840_write(client, 0x115, v);
|
|
|
|
+ v = cx25840_read(client, 0x116) & ~(0x04);
|
|
|
|
+ cx25840_write(client, 0x116, v);
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|