BUG: DVB-T and DVB-S[2] do not work with VDR & multiproto

Message ID 478A50C5.8080409@gmx.de
State New
Headers

Commit Message

Reinhard Nissl Jan. 13, 2008, 5:56 p.m. UTC
  Hi,

Morfsta schrieb:

>> Please report the debug output here for further investigation.
> 
> Attached are two files - tuning to the same DVB-T channel using either
> system and the Philips frontend... vdr-1.4.x shows the channel fine,
> 1.5.12 does not.
> 
> Hope this helps and thanks again for your assistance.

Hmm, the translation layer doesn't work correctly. It doesn't
translate new bandwidth value 1 to old bandwidth value 0,
although there exists code to do this translation, and it should
get called as the other translations happen correctly.

As a result the old driver uses a bandwidth of 7 MHz instead of 8
MHz.

While copying the code here to ask for help in searching the bug,
it seems that I found the bug -- a missing break in the DVB-T
case ;-)

Please try the attached patch.

Bye.
  

Comments

Morfsta Jan. 13, 2008, 7:29 p.m. UTC | #1
> While copying the code here to ask for help in searching the bug,
> it seems that I found the bug -- a missing break in the DVB-T
> case ;-)
>
> Please try the attached patch.

Reinhard you've done it!!! All working! :-)

Thanks a lot for your work, I'm sure a lot of people are going to be very happy!

Cheers,

Morfsta
  
Magnus Hörlin Jan. 14, 2008, 9:29 p.m. UTC | #2
Reinhard Nissl wrote:
> Hi,
>
> Morfsta schrieb:
>
>   
>>> Please report the debug output here for further investigation.
>>>       
>> Attached are two files - tuning to the same DVB-T channel using either
>> system and the Philips frontend... vdr-1.4.x shows the channel fine,
>> 1.5.12 does not.
>>
>> Hope this helps and thanks again for your assistance.
>>     
>
> Hmm, the translation layer doesn't work correctly. It doesn't
> translate new bandwidth value 1 to old bandwidth value 0,
> although there exists code to do this translation, and it should
> get called as the other translations happen correctly.
>
> As a result the old driver uses a bandwidth of 7 MHz instead of 8
> MHz.
>
> While copying the code here to ask for help in searching the bug,
> it seems that I found the bug -- a missing break in the DVB-T
> case ;-)
>
> Please try the attached patch.
>
> Bye.
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
>   
Big thanks guys, works here too! Finally I can put my S2-3200 in my 
"production" server.
/Magnus H
  
Manu Abraham Jan. 15, 2008, 8:33 p.m. UTC | #3
Reinhard Nissl wrote:
> Hi,
> 
> Morfsta schrieb:
> 
>>> Please report the debug output here for further investigation.
>> Attached are two files - tuning to the same DVB-T channel using either
>> system and the Philips frontend... vdr-1.4.x shows the channel fine,
>> 1.5.12 does not.
>>
>> Hope this helps and thanks again for your assistance.
> 
> Hmm, the translation layer doesn't work correctly. It doesn't
> translate new bandwidth value 1 to old bandwidth value 0,
> although there exists code to do this translation, and it should
> get called as the other translations happen correctly.
> 
> As a result the old driver uses a bandwidth of 7 MHz instead of 8
> MHz.
> 
> While copying the code here to ask for help in searching the bug,
> it seems that I found the bug -- a missing break in the DVB-T
> case ;-)
> 
> Please try the attached patch.

That indeed did fix. Have applied it to the tree.

Thanks,
Manu
  

Patch

diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -413,7 +441,7 @@  int newapi_to_olddrv(struct dvbfe_params
 			ofdm->transmission_mode = TRANSMISSION_MODE_AUTO;
 			break;
 		default:
-			dprintk("%s: Unsupported transmission mode %x\n", __func__, dvbt->bandwidth);
+			dprintk("%s: Unsupported transmission mode %x\n", __func__, dvbt->transmission_mode);
 			return -EINVAL;
 		}
 		switch (dvbt->guard_interval) {
@@ -454,6 +482,7 @@  int newapi_to_olddrv(struct dvbfe_params
 			}
 			break;
 		}
+		break;
 	case DVBFE_DELSYS_ATSC:
 		newmod_to_oldmod(atsc->modulation, &vsb->modulation);
 		break;