add some symbol rate modes

This commit is contained in:
rjkm 2020-10-16 14:33:27 +02:00
parent 22475860d5
commit 310a5e0f05
1 changed files with 32 additions and 6 deletions

View File

@ -1516,12 +1516,12 @@ static int mod3_set_ari(struct ddb_mod *mod, u32 rate)
static int mod3_set_sample_rate(struct ddb_mod *mod, u32 rate) static int mod3_set_sample_rate(struct ddb_mod *mod, u32 rate)
{ {
u32 cic, inc; u32 cic, inc, bypass = 0;
switch (rate) { switch (rate) {
/* 2^31 * freq*4*cic / 245.76Mhz */ /* 2^31 * freq*4*cic / 245.76Mhz */
case SYS_DVBT_6: case SYS_DVBT_6:
inc = 1917396114; inc = 0x72492492;
cic = 8; cic = 8;
break; break;
case SYS_DVBT_7: case SYS_DVBT_7:
@ -1533,19 +1533,45 @@ static int mod3_set_sample_rate(struct ddb_mod *mod, u32 rate)
inc = 1917396114; inc = 1917396114;
cic = 6; cic = 6;
break; break;
case SYS_DVBC_6900:
inc = 0x73000000; //1929379840;
cic = 8;
break;
case 9:
inc = 0x47e00000; //1929379840;
cic = 10;
bypass = 2;
break;
case SYS_J83B_64_6: /* 5056941 */
inc = 0x695a5a1d;
cic = 10;
break;
case SYS_J83B_256_6: /* 5360537 */
inc = 0x6fad87da;
cic = 10;
break;
case SYS_ISDBT_6: case SYS_ISDBT_6:
inc = 1988410754; inc = 0x7684BD82; //1988410754;
cic = 7; cic = 7;
break; break;
case SYS_DVBS2_22: case SYS_DVBS2_22:
inc = 1922389333; inc = 0x72955555; // 1922389333;
cic = 5; cic = 5;
bypass = 2;
break;
case SYS_DVBS2_24:
inc = 0x7d000000;
cic = 5;
bypass = 2;
break; break;
default: default:
return -EINVAL; return -EINVAL;
} }
ddbwritel(mod->port->dev, inc, SDR_CHANNEL_ARICW(mod->port->nr)); ddbwritel(mod->port->dev, inc, SDR_CHANNEL_ARICW(mod->port->nr));
ddbwritel(mod->port->dev, cic << 8, SDR_CHANNEL_CONFIG(mod->port->nr)); ddbwritel(mod->port->dev, (cic << 8) | (bypass << 4),
SDR_CHANNEL_CONFIG(mod->port->nr));
return 0; return 0;
} }