diff options
author | Hans Verkuil <devnull@localhost> | 2005-12-02 23:03:15 +0000 |
---|---|---|
committer | Hans Verkuil <devnull@localhost> | 2005-12-02 23:03:15 +0000 |
commit | 25ef5b3135b8a5dd7f9faa8c2709f8e7bddf6cfc (patch) | |
tree | d9d30cf9c40b19fb37790a9a43e10b76409fa0aa /linux | |
parent | a5b5eca82a89a9d85d806a722e9002b3a2c272fe (diff) | |
download | mediapointer-dvb-s2-25ef5b3135b8a5dd7f9faa8c2709f8e7bddf6cfc.tar.gz mediapointer-dvb-s2-25ef5b3135b8a5dd7f9faa8c2709f8e7bddf6cfc.tar.bz2 |
Add VIDIOC_LOG_STATUS to tuner-core.c
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 <hverkuil@xs4all.nl>
Diffstat (limited to 'linux')
-rw-r--r-- | linux/drivers/media/video/tda9887.c | 2 | ||||
-rw-r--r-- | linux/drivers/media/video/tuner-core.c | 37 |
2 files changed, 37 insertions, 2 deletions
diff --git a/linux/drivers/media/video/tda9887.c b/linux/drivers/media/video/tda9887.c index 841e5d109..893b9cb8c 100644 --- a/linux/drivers/media/video/tda9887.c +++ b/linux/drivers/media/video/tda9887.c @@ -831,7 +831,7 @@ tda9887_command(struct i2c_client *client, unsigned int cmd, void *arg) } 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 --git a/linux/drivers/media/video/tuner-core.c b/linux/drivers/media/video/tuner-core.c index e40a7a750..a50ae1dad 100644 --- a/linux/drivers/media/video/tuner-core.c +++ b/linux/drivers/media/video/tuner-core.c @@ -1,5 +1,5 @@ /* - * $Id: tuner-core.c,v 1.86 2005/11/27 00:31:22 hverkuil Exp $ + * $Id: tuner-core.c,v 1.87 2005/12/02 23:03:15 hverkuil Exp $ * * i2c tv tuner chip device driver * core core, i.e. kernel interfaces, registering and so on @@ -489,6 +489,38 @@ static inline int check_v4l2(struct tuner *t) 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); @@ -722,6 +754,9 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) } 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), |