Commit e1f84840 authored by Daniel Scheller's avatar Daniel Scheller Committed by Mauro Carvalho Chehab

media: ddbridge/sx8: enable modulation selection in set_parameters()

Allow for tuning to transponders with specific modulations in
set_parameters(). Setting a specific modulation will also enable lower
modulations.

Picked up from the upstream dddvb GIT. Upstream also has support for
APSK64/128/256 modulations which aren't supported yet by the DVB
API, so comment them out until support for them is added.
Signed-off-by: default avatarDaniel Scheller <d.scheller@gmx.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 3153dfe2
......@@ -372,15 +372,31 @@ static int set_parameters(struct dvb_frontend *fe)
if (iq_mode)
ts_config = (SX8_TSCONFIG_TSHEADER | SX8_TSCONFIG_MODE_IQ);
if (iq_mode < 3) {
u32 flags = 3;
u32 mask = 0x7f;
if (p->modulation == APSK_16 ||
p->modulation == APSK_32) {
flags = 2;
u32 mask;
switch (p->modulation) {
/* uncomment whenever these modulations hit the DVB API
* case APSK_256:
* mask = 0x7f;
* break;
* case APSK_128:
* mask = 0x3f;
* break;
* case APSK_64:
* mask = 0x1f;
* break;
*/
case APSK_32:
mask = 0x0f;
break;
case APSK_16:
mask = 0x07;
break;
default:
mask = 0x03;
break;
}
stat = start(fe, flags, mask, ts_config);
stat = start(fe, 3, mask, ts_config);
} else {
u32 flags = (iq_mode == 2) ? 1 : 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment