From: Hans Verkuil Mark tda9887.c status log values as hexadecimal (add 0x prefix). Add VIDIOC_LOG_STATUS support to tuner-core.c. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Andrew Morton --- drivers/media/video/tda9887.c | 2 +- drivers/media/video/tuner-core.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff -puN drivers/media/video/tda9887.c~v4l-dvb-3103-add-vidioc_log_status-to-tuner-corec drivers/media/video/tda9887.c --- devel/drivers/media/video/tda9887.c~v4l-dvb-3103-add-vidioc_log_status-to-tuner-corec 2005-12-09 22:51:08.000000000 -0800 +++ devel-akpm/drivers/media/video/tda9887.c 2005-12-09 22:51:08.000000000 -0800 @@ -796,7 +796,7 @@ tda9887_command(struct i2c_client *clien } case VIDIOC_LOG_STATUS: { - tda9887_info("Data bytes: b=%02x c=%02x e=%02x\n", t->data[1], t->data[2], t->data[3]); + tda9887_info("Data bytes: b=0x%02x c=0x%02x e=0x%02x\n", t->data[1], t->data[2], t->data[3]); break; } default: diff -puN drivers/media/video/tuner-core.c~v4l-dvb-3103-add-vidioc_log_status-to-tuner-corec drivers/media/video/tuner-core.c --- devel/drivers/media/video/tuner-core.c~v4l-dvb-3103-add-vidioc_log_status-to-tuner-corec 2005-12-09 22:51:08.000000000 -0800 +++ devel-akpm/drivers/media/video/tuner-core.c 2005-12-09 22:51:08.000000000 -0800 @@ -475,6 +475,38 @@ static inline int check_v4l2(struct tune return 0; } +static void tuner_status(struct i2c_client *client) +{ + struct tuner *t = i2c_get_clientdata(client); + unsigned long freq, freq_fraction; + const char *p; + + switch (t->mode) { + case V4L2_TUNER_RADIO: p = "radio"; break; + case V4L2_TUNER_ANALOG_TV: p = "analog TV"; break; + case V4L2_TUNER_DIGITAL_TV: p = "digital TV"; break; + default: p = "undefined"; break; + } + if (t->mode == V4L2_TUNER_RADIO) { + freq = t->freq / 16000; + freq_fraction = (t->freq % 16000) * 100 / 16000; + } else { + freq = t->freq / 16; + freq_fraction = (t->freq % 16) * 100 / 16; + } + tuner_info("Tuner mode: %s\n", p); + tuner_info("Frequency: %lu.%02lu MHz\n", freq, freq_fraction); + tuner_info("Standard: 0x%08llx\n", t->std); + if (t->mode == V4L2_TUNER_RADIO) { + if (t->has_signal) { + tuner_info("Signal strength: %d\n", t->has_signal(client)); + } + if (t->is_stereo) { + tuner_info("Stereo: %s\n", t->is_stereo(client) ? "yes" : "no"); + } + } +} + static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) { struct tuner *t = i2c_get_clientdata(client); @@ -708,6 +740,9 @@ static int tuner_command(struct i2c_clie } break; } + case VIDIOC_LOG_STATUS: + tuner_status(client); + break; default: tuner_dbg("Unimplemented IOCTL 0x%08x(dir=%d,tp='%c',nr=%d,sz=%d)\n", cmd, _IOC_DIR(cmd), _IOC_TYPE(cmd), _