V4L/DVB (11166): pvrusb2: Implement status fetching from sub-devices
Implement status fetching operations in terms of calling out to sub-device(s). Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
d8f5b9ba82
commit
40f07111be
@@ -4816,7 +4816,21 @@ int pvr2_hdw_gpio_chg_out(struct pvr2_hdw *hdw,u32 msk,u32 val)
|
|||||||
|
|
||||||
void pvr2_hdw_status_poll(struct pvr2_hdw *hdw)
|
void pvr2_hdw_status_poll(struct pvr2_hdw *hdw)
|
||||||
{
|
{
|
||||||
|
struct v4l2_tuner *vtp = &hdw->tuner_signal_info;
|
||||||
|
memset(vtp, 0, sizeof(*vtp));
|
||||||
pvr2_i2c_core_status_poll(hdw);
|
pvr2_i2c_core_status_poll(hdw);
|
||||||
|
/* Note: There apparently is no replacement for VIDIOC_CROPCAP
|
||||||
|
using v4l2-subdev - therefore we can't support that AT ALL right
|
||||||
|
now. (Of course, no sub-drivers seem to implement it either.
|
||||||
|
But now it's a a chicken and egg problem...) */
|
||||||
|
v4l2_device_call_all(&hdw->v4l2_dev, 0, tuner, g_tuner,
|
||||||
|
&hdw->tuner_signal_info);
|
||||||
|
pvr2_trace(PVR2_TRACE_CHIPS, "client status poll"
|
||||||
|
" type=%u strength=%u audio=0x%x cap=0x%x"
|
||||||
|
" low=%u hi=%u",
|
||||||
|
vtp->type,
|
||||||
|
vtp->signal, vtp->rxsubchans, vtp->capability,
|
||||||
|
vtp->rangelow, vtp->rangehigh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -112,20 +112,12 @@ void pvr2_i2c_core_status_poll(struct pvr2_hdw *hdw)
|
|||||||
{
|
{
|
||||||
struct pvr2_i2c_client *cp;
|
struct pvr2_i2c_client *cp;
|
||||||
mutex_lock(&hdw->i2c_list_lock); do {
|
mutex_lock(&hdw->i2c_list_lock); do {
|
||||||
struct v4l2_tuner *vtp = &hdw->tuner_signal_info;
|
|
||||||
memset(vtp,0,sizeof(*vtp));
|
|
||||||
list_for_each_entry(cp, &hdw->i2c_clients, list) {
|
list_for_each_entry(cp, &hdw->i2c_clients, list) {
|
||||||
if (!cp->detected_flag) continue;
|
if (!cp->detected_flag) continue;
|
||||||
if (!cp->status_poll) continue;
|
if (!cp->status_poll) continue;
|
||||||
cp->status_poll(cp);
|
cp->status_poll(cp);
|
||||||
}
|
}
|
||||||
hdw->tuner_signal_stale = 0;
|
hdw->tuner_signal_stale = 0;
|
||||||
pvr2_trace(PVR2_TRACE_CHIPS,"i2c status poll"
|
|
||||||
" type=%u strength=%u audio=0x%x cap=0x%x"
|
|
||||||
" low=%u hi=%u",
|
|
||||||
vtp->type,
|
|
||||||
vtp->signal,vtp->rxsubchans,vtp->capability,
|
|
||||||
vtp->rangelow,vtp->rangehigh);
|
|
||||||
} while (0); mutex_unlock(&hdw->i2c_list_lock);
|
} while (0); mutex_unlock(&hdw->i2c_list_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user