瀏覽代碼

V4L/DVB (6089): ivtv: log in status if framebuffer uses YUV instead of RGB

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil 18 年之前
父節點
當前提交
d2a35fb172
共有 1 個文件被更改,包括 11 次插入2 次删除
  1. 11 2
      drivers/media/video/ivtv/ivtv-ioctl.c

+ 11 - 2
drivers/media/video/ivtv/ivtv-ioctl.c

@@ -1270,7 +1270,7 @@ int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void
 				"Global and Local"
 				"Global and Local"
 			};
 			};
 			static const char * const pixel_format[] = {
 			static const char * const pixel_format[] = {
-				"Indexed",
+				"RGB Indexed",
 				"RGB 5:6:5",
 				"RGB 5:6:5",
 				"ARGB 1:5:5:5",
 				"ARGB 1:5:5:5",
 				"ARGB 1:4:4:4",
 				"ARGB 1:4:4:4",
@@ -1278,6 +1278,14 @@ int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void
 				"5",
 				"5",
 				"6",
 				"6",
 				"7",
 				"7",
+				"YUV Indexed",
+				"YUV 5:6:5",
+				"AYUV 1:5:5:5",
+				"AYUV 1:4:4:4",
+				"AYUV 8:8:8:8",
+				"13",
+				"14",
+				"15",
 			};
 			};
 
 
 			ivtv_get_output(itv, itv->active_output, &vidout);
 			ivtv_get_output(itv, itv->active_output, &vidout);
@@ -1290,10 +1298,11 @@ int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void
 				mode = OUT_NONE;
 				mode = OUT_NONE;
 			IVTV_INFO("Output Mode:  %s\n", output_modes[mode]);
 			IVTV_INFO("Output Mode:  %s\n", output_modes[mode]);
 			ivtv_vapi_result(itv, data, CX2341X_OSD_GET_STATE, 0);
 			ivtv_vapi_result(itv, data, CX2341X_OSD_GET_STATE, 0);
+			data[0] |= (read_reg(0x2a00) >> 7) & 0x40;
 			IVTV_INFO("Overlay:      %s, Alpha: %s, Pixel Format: %s\n",
 			IVTV_INFO("Overlay:      %s, Alpha: %s, Pixel Format: %s\n",
 				data[0] & 1 ? "On" : "Off",
 				data[0] & 1 ? "On" : "Off",
 				alpha_mode[(data[0] >> 1) & 0x3],
 				alpha_mode[(data[0] >> 1) & 0x3],
-				pixel_format[(data[0] >> 3) & 0x7]);
+				pixel_format[(data[0] >> 3) & 0xf]);
 		}
 		}
 		IVTV_INFO("Tuner:  %s\n",
 		IVTV_INFO("Tuner:  %s\n",
 			test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags) ? "Radio" : "TV");
 			test_bit(IVTV_F_I_RADIO_USER, &itv->i_flags) ? "Radio" : "TV");