diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2006-01-09 12:25:15 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2006-01-09 12:25:15 -0500 |
commit | cd43c3f60b73512744bb22fe27a266f611466827 (patch) | |
tree | 92b935fd4d11b0f7309ab4841e178925efb6826b | |
parent | 7865c44d8ae832d6fb6522862268c7bd7814fd44 (diff) |
V4L/DVB (3103): 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>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
-rw-r--r-- | drivers/media/video/tda9887.c | 2 | ||||
-rw-r--r-- | drivers/media/video/tuner-core.c | 35 |
2 files changed, 36 insertions, 1 deletions
diff --git a/drivers/media/video/tda9887.c b/drivers/media/video/tda9887.c index 93bf10436b82..ae4029a07449 100644 --- a/drivers/media/video/tda9887.c +++ b/drivers/media/video/tda9887.c | |||
@@ -796,7 +796,7 @@ tda9887_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
796 | } | 796 | } |
797 | case VIDIOC_LOG_STATUS: | 797 | case VIDIOC_LOG_STATUS: |
798 | { | 798 | { |
799 | tda9887_info("Data bytes: b=%02x c=%02x e=%02x\n", t->data[1], t->data[2], t->data[3]); | 799 | tda9887_info("Data bytes: b=0x%02x c=0x%02x e=0x%02x\n", t->data[1], t->data[2], t->data[3]); |
800 | break; | 800 | break; |
801 | } | 801 | } |
802 | default: | 802 | default: |
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index c13c7b95ef35..ae76113886fd 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c | |||
@@ -475,6 +475,38 @@ static inline int check_v4l2(struct tuner *t) | |||
475 | return 0; | 475 | return 0; |
476 | } | 476 | } |
477 | 477 | ||
478 | static void tuner_status(struct i2c_client *client) | ||
479 | { | ||
480 | struct tuner *t = i2c_get_clientdata(client); | ||
481 | unsigned long freq, freq_fraction; | ||
482 | const char *p; | ||
483 | |||
484 | switch (t->mode) { | ||
485 | case V4L2_TUNER_RADIO: p = "radio"; break; | ||
486 | case V4L2_TUNER_ANALOG_TV: p = "analog TV"; break; | ||
487 | case V4L2_TUNER_DIGITAL_TV: p = "digital TV"; break; | ||
488 | default: p = "undefined"; break; | ||
489 | } | ||
490 | if (t->mode == V4L2_TUNER_RADIO) { | ||
491 | freq = t->freq / 16000; | ||
492 | freq_fraction = (t->freq % 16000) * 100 / 16000; | ||
493 | } else { | ||
494 | freq = t->freq / 16; | ||
495 | freq_fraction = (t->freq % 16) * 100 / 16; | ||
496 | } | ||
497 | tuner_info("Tuner mode: %s\n", p); | ||
498 | tuner_info("Frequency: %lu.%02lu MHz\n", freq, freq_fraction); | ||
499 | tuner_info("Standard: 0x%08llx\n", t->std); | ||
500 | if (t->mode == V4L2_TUNER_RADIO) { | ||
501 | if (t->has_signal) { | ||
502 | tuner_info("Signal strength: %d\n", t->has_signal(client)); | ||
503 | } | ||
504 | if (t->is_stereo) { | ||
505 | tuner_info("Stereo: %s\n", t->is_stereo(client) ? "yes" : "no"); | ||
506 | } | ||
507 | } | ||
508 | } | ||
509 | |||
478 | static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) | 510 | static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) |
479 | { | 511 | { |
480 | struct tuner *t = i2c_get_clientdata(client); | 512 | struct tuner *t = i2c_get_clientdata(client); |
@@ -708,6 +740,9 @@ static int tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
708 | } | 740 | } |
709 | break; | 741 | break; |
710 | } | 742 | } |
743 | case VIDIOC_LOG_STATUS: | ||
744 | tuner_status(client); | ||
745 | break; | ||
711 | default: | 746 | default: |
712 | tuner_dbg("Unimplemented IOCTL 0x%08x(dir=%d,tp='%c',nr=%d,sz=%d)\n", | 747 | tuner_dbg("Unimplemented IOCTL 0x%08x(dir=%d,tp='%c',nr=%d,sz=%d)\n", |
713 | cmd, _IOC_DIR(cmd), _IOC_TYPE(cmd), | 748 | cmd, _IOC_DIR(cmd), _IOC_TYPE(cmd), |