On Sun, 2014-12-07 at 16:50 +0200, Antti Palosaari wrote: > > On 12/07/2014 10:15 AM, Jurgen Kramer wrote: > > On Sat, 2014-12-06 at 20:29 +0200, Antti Palosaari wrote: > >> On 12/06/2014 06:48 PM, Jurgen Kramer wrote: > >>> On my new DVBSky T980C the tuner firmware failes to load: > >>> [ 51.326525] si2168 2-0064: found a 'Silicon Labs Si2168' in cold state > >>> [ 51.356233] si2168 2-0064: downloading firmware from file > >>> 'dvb-demod-si2168-a30-01.fw' > >>> [ 51.408166] si2168 2-0064: firmware download failed=-110 > >>> [ 51.415457] si2157 4-0060: found a 'Silicon Labs Si2146/2147/2148/2157/2158' > >>> in cold state > >>> [ 51.521714] si2157 4-0060: downloading firmware from file > >>> 'dvb-tuner-si2158-a20-01.fw' > >>> [ 52.330605] si2168 2-0064: found a 'Silicon Labs Si2168' in cold state > >>> [ 52.330784] si2168 2-0064: downloading firmware from file > >>> 'dvb-demod-si2168-a30-01.fw' > >>> [ 52.382145] si2168 2-0064: firmware download failed=-110 > >>> > >>> 110 seems to mean connection timeout. Any pointers how to debug this further? > >>> > >>> This is with the latest media_build from linuxtv.org on 3.17.4. > >> > >> Looks like si2168 firmware failed to download, but si2157 succeeded. > >> Could you add some more time for driver timeout? Current timeout is > >> selected by trial and error, lets say it takes always max 43ms for my > >> device I coded it 50ms. > >> > >> > >> drivers/media/dvb-frontends/si2168.c > >> /* wait cmd execution terminate */ > >> #define TIMEOUT 50 > >> > >> change it to > >> #define TIMEOUT 500 > > > > Thanks, with the larger timeout the fw load works: > > > > [ 56.960982] si2168 4-0064: found a 'Silicon Labs Si2168' in cold > > state > > [ 56.972650] si2168 4-0064: downloading firmware from file > > 'dvb-demod-si2168-a30-01.fw' > > [ 60.103509] si2168 4-0064: found a 'Silicon Labs Si2168' in warm > > state > > [ 60.110739] si2157 6-0060: found a 'Silicon Labs > > Si2146/2147/2148/2157/2158' in cold state > > [ 60.123720] si2157 6-0060: downloading firmware from file > > 'dvb-tuner-si2158-a20-01.fw' > > Have to find out some suitable value. For that I need know how long it > took maximum in your case. There is already dubug printing to print > execution time of each command, but it is behind dynamic debug. Maybe > the most easiest way is change that debug line to info: > drivers/media/dvb-frontends/si2168.c > - dev_dbg(&s->client->dev, "cmd execution took %d ms\n", > + dev_info(&s->client->dev, "cmd execution took %d ms\n", > > and then compile and install and issue command: This gives the following results: [ 50.152281] si2168 4-0064: cmd execution took 0 ms [ 50.154007] si2168 4-0064: cmd execution took 1 ms [ 50.154010] si2168 4-0064: found a 'Silicon Labs Si2168' in cold state [ 50.181157] si2168 4-0064: downloading firmware from file 'dvb-demod-si2168-a30-01.fw' [ 50.233374] si2168 4-0064: cmd execution took 52 ms [ 53.300879] si2168 4-0064: cmd execution took 0 ms [ 53.300880] si2168 4-0064: found a 'Silicon Labs Si2168' in warm state [ 53.308282] si2157 6-0060: found a 'Silicon Labs Si2146/2147/2148/2157/2158' in cold state [ 53.321085] si2157 6-0060: downloading firmware from file 'dvb-tuner-si2158-a20-01.fw' [ 54.152370] si2168 4-0064: cmd execution took 1 ms So the initial timeout of 50ms is just missed. New value 60ms? or 75 to be really safe. > $ dvb-fe-tool --set-delsys=DVBT2 Thanks, dvb-fe-tool -a 2 -d dvbc/annex_a worked. Regards, Jurgen -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html