* 2.6.32 regression: can't tune DVB with firedtv @ 2009-10-17 19:01 Stefan Richter 2009-10-17 20:19 ` Stefan Richter 2009-10-17 20:24 ` 2.6.32 regression: can't tune DVB with firedtv Mario Bachmann 0 siblings, 2 replies; 6+ messages in thread From: Stefan Richter @ 2009-10-17 19:01 UTC (permalink / raw) To: linux-media Hi list, I just switched from kernel 2.6.31 to 2.6.32-rc5. Using kaffeine, I can't tune FireDTV-C and FireDTV-T boxes via the firedtv driver anymore. Electronic program guide data is still displayed though. Under 2.6.31, I used firedtv at the same patchlevel as present in 2.6.32-rc5, hence I guess that it is a DVB core problem rather than a driver problem. Any suggestions where to look for the cause? (I am not subscribed to the list.) -- Stefan Richter -=====-==--= =-=- =---= http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.32 regression: can't tune DVB with firedtv 2009-10-17 19:01 2.6.32 regression: can't tune DVB with firedtv Stefan Richter @ 2009-10-17 20:19 ` Stefan Richter 2009-10-17 20:46 ` [PATCH] firedtv: fix regression: tuning fails due to bogus error return Stefan Richter 2009-10-17 20:24 ` 2.6.32 regression: can't tune DVB with firedtv Mario Bachmann 1 sibling, 1 reply; 6+ messages in thread From: Stefan Richter @ 2009-10-17 20:19 UTC (permalink / raw) To: linux-media Stefan Richter wrote: > I just switched from kernel 2.6.31 to 2.6.32-rc5. Using kaffeine, I > can't tune FireDTV-C and FireDTV-T boxes via the firedtv driver anymore. > Electronic program guide data is still displayed though. > > Under 2.6.31, I used firedtv at the same patchlevel as present in > 2.6.32-rc5, hence I guess that it is a DVB core problem rather than a > driver problem. > > Any suggestions where to look for the cause? >From looking at the git history of dvb-core, I think the cause is "V4L/DVB (12685): dvb-core: check fe->ops.set_frontend return value", but the actual bug is in the driver in firedtv-fe.c::fdtv_set_frontend(). Let me boot back into 2.6.32-rc5 and check my theory... > (I am not subscribed to the list.) -- Stefan Richter -=====-==--= =-=- =---= http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH] firedtv: fix regression: tuning fails due to bogus error return 2009-10-17 20:19 ` Stefan Richter @ 2009-10-17 20:46 ` Stefan Richter 2009-11-13 10:09 ` Stefan Richter 0 siblings, 1 reply; 6+ messages in thread From: Stefan Richter @ 2009-10-17 20:46 UTC (permalink / raw) To: linux-media, Mauro Carvalho Chehab; +Cc: linux-kernel, Rafael J. Wysocki Since 2.6.32(-rc1), DVB core checks the return value of dvb_frontend_ops.set_frontend. Now it becomes apparent that firedtv always returned a bogus value from its set_frontend method. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> --- drivers/media/dvb/firewire/firedtv-avc.c | 7 +++++-- drivers/media/dvb/firewire/firedtv-fe.c | 8 +------- 2 files changed, 6 insertions(+), 9 deletions(-) Index: linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-avc.c =================================================================== --- linux-2.6.32-rc5.orig/drivers/media/dvb/firewire/firedtv-avc.c +++ linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-avc.c @@ -573,8 +573,11 @@ int avc_tuner_dsd(struct firedtv *fdtv, msleep(500); #if 0 - /* FIXME: */ - /* u8 *status was an out-parameter of avc_tuner_dsd, unused by caller */ + /* + * FIXME: + * u8 *status was an out-parameter of avc_tuner_dsd, unused by caller + * Check for AVC_RESPONSE_ACCEPTED here instead? + */ if (status) *status = r->operand[2]; #endif Index: linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-fe.c =================================================================== --- linux-2.6.32-rc5.orig/drivers/media/dvb/firewire/firedtv-fe.c +++ linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-fe.c @@ -141,18 +141,12 @@ static int fdtv_read_uncorrected_blocks( return -EOPNOTSUPP; } -#define ACCEPTED 0x9 - static int fdtv_set_frontend(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) { struct firedtv *fdtv = fe->sec_priv; - /* FIXME: avc_tuner_dsd never returns ACCEPTED. Check status? */ - if (avc_tuner_dsd(fdtv, params) != ACCEPTED) - return -EINVAL; - else - return 0; /* not sure of this... */ + return avc_tuner_dsd(fdtv, params); } static int fdtv_get_frontend(struct dvb_frontend *fe, -- Stefan Richter -=====-==--= =-=- =---= http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] firedtv: fix regression: tuning fails due to bogus error return 2009-10-17 20:46 ` [PATCH] firedtv: fix regression: tuning fails due to bogus error return Stefan Richter @ 2009-11-13 10:09 ` Stefan Richter 2009-11-13 10:20 ` Stefan Richter 0 siblings, 1 reply; 6+ messages in thread From: Stefan Richter @ 2009-11-13 10:09 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: linux-media, linux-kernel Stefan Richter wrote on 2009-10-17: > Since 2.6.32(-rc1), DVB core checks the return value of > dvb_frontend_ops.set_frontend. Now it becomes apparent that firedtv > always returned a bogus value from its set_frontend method. > > Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Hi Mauro, when you committed this, you added "CC: stable@kernel.org". This is not necessary, 2.6.32-rc1 is the first kernel version with the regression (see changelog). Well, OK, the patch would become necessary in -stable if somebody was to put the new set_frontend return code check in dvb core into -stable. But I hope nobody is going to do that; it'd be a bad idea. Furthermore... > --- > drivers/media/dvb/firewire/firedtv-avc.c | 7 +++++-- > drivers/media/dvb/firewire/firedtv-fe.c | 8 +------- > 2 files changed, 6 insertions(+), 9 deletions(-) > > Index: linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-avc.c > =================================================================== > --- linux-2.6.32-rc5.orig/drivers/media/dvb/firewire/firedtv-avc.c > +++ linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-avc.c > @@ -573,8 +573,11 @@ int avc_tuner_dsd(struct firedtv *fdtv, > > msleep(500); > #if 0 > - /* FIXME: */ > - /* u8 *status was an out-parameter of avc_tuner_dsd, unused by caller */ > + /* > + * FIXME: > + * u8 *status was an out-parameter of avc_tuner_dsd, unused by caller > + * Check for AVC_RESPONSE_ACCEPTED here instead? > + */ > if (status) > *status = r->operand[2]; > #endif ...the firedtv-avc.c part of the patch vanished when you committed it. I guess this was accident, not deliberate --- otherwise a note in the changelog below of my Signed-off-by would have been appreciated. I will resubmit this missing comment change or a variation of it or even a fix of the FIXME sometime in the future. > Index: linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-fe.c > =================================================================== > --- linux-2.6.32-rc5.orig/drivers/media/dvb/firewire/firedtv-fe.c > +++ linux-2.6.32-rc5/drivers/media/dvb/firewire/firedtv-fe.c > @@ -141,18 +141,12 @@ static int fdtv_read_uncorrected_blocks( > return -EOPNOTSUPP; > } > > -#define ACCEPTED 0x9 > - > static int fdtv_set_frontend(struct dvb_frontend *fe, > struct dvb_frontend_parameters *params) > { > struct firedtv *fdtv = fe->sec_priv; > > - /* FIXME: avc_tuner_dsd never returns ACCEPTED. Check status? */ > - if (avc_tuner_dsd(fdtv, params) != ACCEPTED) > - return -EINVAL; > - else > - return 0; /* not sure of this... */ > + return avc_tuner_dsd(fdtv, params); > } > > static int fdtv_get_frontend(struct dvb_frontend *fe, > -- Stefan Richter -=====-==--= =-== -==-= http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] firedtv: fix regression: tuning fails due to bogus error return 2009-11-13 10:09 ` Stefan Richter @ 2009-11-13 10:20 ` Stefan Richter 0 siblings, 0 replies; 6+ messages in thread From: Stefan Richter @ 2009-11-13 10:20 UTC (permalink / raw) To: Mauro Carvalho Chehab; +Cc: linux-media, linux-kernel Stefan Richter wrote: > ...the firedtv-avc.c part of the patch vanished when you committed it. It was still there in the linuxtv-commits message of the respective Mercurial commit, BTW. Something wrong with the hg to git workflow? -- Stefan Richter -=====-==--= =-== -==-= http://arcgraph.de/sr/ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 2.6.32 regression: can't tune DVB with firedtv 2009-10-17 19:01 2.6.32 regression: can't tune DVB with firedtv Stefan Richter 2009-10-17 20:19 ` Stefan Richter @ 2009-10-17 20:24 ` Mario Bachmann 1 sibling, 0 replies; 6+ messages in thread From: Mario Bachmann @ 2009-10-17 20:24 UTC (permalink / raw) To: Stefan Richter; +Cc: linux-media Am Sat, 17 Oct 2009 21:01:50 +0200 schrieb Stefan Richter <stefanr@s5r6.in-berlin.de>: > Hi list, > > I just switched from kernel 2.6.31 to 2.6.32-rc5. Using kaffeine, I > can't tune FireDTV-C and FireDTV-T boxes via the firedtv driver > anymore. Electronic program guide data is still displayed though. > > Under 2.6.31, I used firedtv at the same patchlevel as present in > 2.6.32-rc5, hence I guess that it is a DVB core problem rather than a > driver problem. > > Any suggestions where to look for the cause? > > (I am not subscribed to the list.) Hi there, perhaps it is related: with kernel 2.6.30.8 my "TwinhanDTV USB-Ter USB1.1 / Magic Box I" worked. Now with kernel 2.6.32-rc3 (and 2.6.31.1) the modules seems to be loaded fine, but tzap/kaffeine/mplayer can not tune to a channel. i think the cause must be here: /usr/src/linux-2.6.32-rc3/drivers/media/dvb/dvb-usb/dibusb-common.c line 136 to line 146 i changed this hole section to the version of 2.6.30.8 and it works again. Mario ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-11-13 10:20 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2009-10-17 19:01 2.6.32 regression: can't tune DVB with firedtv Stefan Richter 2009-10-17 20:19 ` Stefan Richter 2009-10-17 20:46 ` [PATCH] firedtv: fix regression: tuning fails due to bogus error return Stefan Richter 2009-11-13 10:09 ` Stefan Richter 2009-11-13 10:20 ` Stefan Richter 2009-10-17 20:24 ` 2.6.32 regression: can't tune DVB with firedtv Mario Bachmann
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox