Fix to qt1010 tuner frequency selection (media/dvb)
PATCH 1/1 Fix to qt1010 tuner frequency selection (media/dvb)
The patch fixes frequency selection for some UHF frequencies e.g. channel 32 (562 MHz) on the qt1010 tuner. The tuner is used e.g. in the MSI Mega Sky dvb-t stick ("MSI Mega Sky 55801 DVB-T USB2.0")
One example of problem reports of the bug this fixes can be read at http://www.freak-search.com/de/thread/330303/linux-dvb_tuning_problem_with_some_frequencies_qt1010,_dvb
Applies to kernel versions 2.6.38.8, 2.6.39.4, 3.0.3 and 3.1-rc2.
drivers/media/common/tuners/qt1010.c 2011-08-21 23:16:38.209580365 +0300 renamed from drivers/media/common/tuners/qt1010.c 2011-03-15 03:20:32.000000000 +0200 +3 -2
@@ -198,9 +198,10 @@ static int qt1010_set_params(struct dvb_ /* 22 */ if (freq < 450000000) rd[15].val = 0xd0; /* 450 MHz */ - else if (freq < 482000000) rd[15].val = 0xd1; /* 482 MHz */ + else if (freq < 482000000) rd[15].val = 0xd2; /* 482 MHz */ else if (freq < 514000000) rd[15].val = 0xd4; /* 514 MHz */ - else if (freq < 546000000) rd[15].val = 0xd7; /* 546 MHz */ + else if (freq < 546000000) rd[15].val = 0xd6; /* 546 MHz */ + else if (freq < 578000000) rd[15].val = 0xd8; /* 578 MHz */ else if (freq < 610000000) rd[15].val = 0xda; /* 610 MHz */ else rd[15].val = 0xd0;
Quoted 11 lines · On Monday 22 Aug 2011 20:19:42 Jyrki Kuoppala wrote:
The patch fixes frequency selection for some UHF frequencies e.g. channel 32 (562 MHz) on the qt1010 tuner. The tuner is used e.g. in the MSI Mega Sky dvb-t stick ("MSI Mega Sky 55801 DVB-T USB2.0")
One example of problem reports of the bug this fixes can be read at
http://www.freak-search.com/de/thread/330303/linux-dvb_tuning_problem_with_s
ome_frequencies_qt1010,_dvbApplies to kernel versions 2.6.38.8, 2.6.39.4, 3.0.3 and 3.1-rc2.
Signed-off-by Jyrki Kuoppala <[email protected]>
This patch means I can now finally tune to all the BBC channels (which are on channel 31 (554 MHz) in my area). This should definitely go to stable, as I've also seen other similar reports for users who can't tune to various channels in the affected ranges here using qt1010.
Mauro - I don't see this one in your git tree in the 3.2 branch, or in the temporary linuxtv patchwork, so I'm assuming this one fell between the cracks?
-Carlos
Quoted 25 lines
diff -upr
linux-source-2.6.38.orig/drivers/media/common/tuners/qt1010.clinux-source-2.6.38/drivers/media/common/tuners/qt1010.c
---linux-source-2.6.38.orig/drivers/media/common/tuners/qt1010.c2011-03-15 03:20:32.000000000 +0200 +++ linux-source-2.6.38/drivers/media/common/tuners/qt1010.c 2011-08-21 23:16:38.209580365 +0300drivers/media/common/tuners/qt1010.c 2011-08-21 23:16:38.209580365 +0300 renamed from drivers/media/common/tuners/qt1010.c 2011-03-15 03:20:32.000000000 +0200 +3
-3@@ -198,9 +198,10 @@ static int qt1010_set_params(struct dvb_ /* 22 */ if (freq < 450000000) rd[15].val = 0xd0; /* 450 MHz */ - else if (freq < 482000000) rd[15].val = 0xd1; /* 482 MHz */ + else if (freq < 482000000) rd[15].val = 0xd2; /* 482 MHz */ else if (freq < 514000000) rd[15].val = 0xd4; /* 514 MHz */ - else if (freq < 546000000) rd[15].val = 0xd7; /* 546 MHz */ + else if (freq < 546000000) rd[15].val = 0xd6; /* 546 MHz */ + else if (freq < 578000000) rd[15].val = 0xd8; /* 578 MHz */ else if (freq < 610000000) rd[15].val = 0xda; /* 610 MHz */ else rd[15].val = 0xd0; --To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
I haven't gotten any feedback, and didn't see any comments on the lists (though I've checked them only occasionally), so I think you're probably right it fell between the cracks.
Jyrki
25.09.2011 19:13, Carlos Corbacho kirjoitti:
Quoted 50 lines · On Monday 22 Aug 2011 20:19:42 Jyrki Kuoppala wrote:
Quoted 11 lines
The patch fixes frequency selection for some UHF frequencies e.g. channel 32 (562 MHz) on the qt1010 tuner. The tuner is used e.g. in the MSI Mega Sky dvb-t stick ("MSI Mega Sky 55801 DVB-T USB2.0")
One example of problem reports of the bug this fixes can be read at
http://www.freak-search.com/de/thread/330303/linux-dvb_tuning_problem_with_s
ome_frequencies_qt1010,_dvbApplies to kernel versions 2.6.38.8, 2.6.39.4, 3.0.3 and 3.1-rc2.
Signed-off-by Jyrki Kuoppala<[email protected]>Tested-by Carlos Corbacho<[email protected]>This patch means I can now finally tune to all the BBC channels (which are on channel 31 (554 MHz) in my area). This should definitely go to stable, as I've also seen other similar reports for users who can't tune to various channels in the affected ranges here using qt1010.
Mauro - I don't see this one in your git tree in the 3.2 branch, or in the temporary linuxtv patchwork, so I'm assuming this one fell between the cracks?
-Carlos
Quoted 25 lines
diff -upr
linux-source-2.6.38.orig/drivers/media/common/tuners/qt1010.clinux-source-2.6.38/drivers/media/common/tuners/qt1010.c
---linux-source-2.6.38.orig/drivers/media/common/tuners/qt1010.c2011-03-15 03:20:32.000000000 +0200 +++ linux-source-2.6.38/drivers/media/common/tuners/qt1010.c 2011-08-21 23:16:38.209580365 +0300(quoted diff) +3
-3@@ -198,9 +198,10 @@ static int qt1010_set_params(struct dvb_ /* 22 */ if (freq< 450000000) rd[15].val = 0xd0; /* 450 MHz */ - else if (freq< 482000000) rd[15].val = 0xd1; /* 482 MHz */ + else if (freq< 482000000) rd[15].val = 0xd2; /* 482 MHz */ else if (freq< 514000000) rd[15].val = 0xd4; /* 514 MHz */ - else if (freq< 546000000) rd[15].val = 0xd7; /* 546 MHz */ + else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */ + else if (freq< 578000000) rd[15].val = 0xd8; /* 578 MHz */ else if (freq< 610000000) rd[15].val = 0xda; /* 610 MHz */ else rd[15].val = 0xd0; --To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Jyrki,
So after a bit more testing...
[...]
Quoted 6 lines
Quoted 6 lines
Review
Quoted 6 lines
/* 22 */ if (freq< 450000000) rd[15].val = 0xd0; /* 450 MHz */(quoted diff) +1
-1- else if (freq< 482000000) rd[15].val = 0xd1; /* 482 MHz */ + else if (freq< 482000000) rd[15].val = 0xd2; /* 482 MHz */
This change isn't so good.
With this change, I can no longer tune to channel 21 (474 MHz). If I revert it back to 0xd1, it's fine.
[...]
Quoted 7 lines
Quoted 7 lines
Review
Quoted 7 lines
else if (freq< 514000000) rd[15].val = 0xd4; /* 514 MHz */(quoted diff) +2
-1- else if (freq< 546000000) rd[15].val = 0xd7; /* 546 MHz */ + else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */ + else if (freq< 578000000) rd[15].val = 0xd8; /* 578 MHz */
(This change is still good though, as this does allow me to now tune to the BBC channels in this range).
-Carlos
I think my problem frequency has also been at the later spot. It is possible there is something more complicated going on at 474 MHz - so based on your testing, it's best to apply just the latter change, at least for now.
Jyrki
+ else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */
+ else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */
20.10.2011 00:06, Carlos Corbacho kirjoitti:
Quoted 29 lines
Jyrki,
So after a bit more testing...
[...]
Quoted 6 lines
Quoted 6 lines
Review
Quoted 6 lines
/* 22 */ if (freq< 450000000) rd[15].val = 0xd0; /* 450 MHz */(quoted diff) +1
-1- else if (freq< 482000000) rd[15].val = 0xd1; /* 482 MHz */ + else if (freq< 482000000) rd[15].val = 0xd2; /* 482 MHz */This change isn't so good.
With this change, I can no longer tune to channel 21 (474 MHz). If I revert it back to
0xd1, it's fine.[...]
Quoted 6 lines
Quoted 6 lines
Review
Quoted 6 lines
else if (freq< 514000000) rd[15].val = 0xd4; /* 514 MHz */(quoted diff) +2
-1- else if (freq< 546000000) rd[15].val = 0xd7; /* 546 MHz */ + else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */ + else if (freq< 578000000) rd[15].val = 0xd8; /* 578 MHz */(This change is still good though, as this does allow me to now tune to the BBC channels in this range).
-Carlos
Review
Quoted 11 lines · On Thursday 20 Oct 2011 07:45:45 Jyrki Kuoppala wrote:
I think my problem frequency has also been at the later spot. It is possible there is something more complicated going on at 474 MHz - so based on your testing, it's best to apply just the latter change, at least for now.
Jyrki
(quoted diff) +2
-0+ else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */ + else if (freq< 546000000) rd[15].val = 0xd6; /* 546 MHz */
Are you going to resubmit the patch with just these changes (you can add my Tested-by to that), or if you want, I can take care of resubmitting it?
-Carlos