Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 285451
b: refs/heads/master
c: 0607d07
h: refs/heads/master
i:
  285449: 1687ae4
  285447: 540b30a
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Dec 31, 2011
1 parent 4ab3555 commit 66af38e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0349471bc556d5ecd3e9214af7774fbf2d956931
refs/heads/master: 0607d077809014082965061e9e88f38459c070ac
35 changes: 27 additions & 8 deletions trunk/drivers/media/dvb/dvb-core/dvb_frontend.c
Original file line number Diff line number Diff line change
Expand Up @@ -1180,19 +1180,38 @@ static void dtv_property_adv_params_sync(struct dvb_frontend *fe)
}

/*
* On DVB-C, the bandwidth is a function of roll-off and symbol rate.
* The bandwidth is required for DVB-C tuners, in order to avoid
* inter-channel noise. Instead of estimating the minimal required
* bandwidth on every single driver, calculates it here and fills
* it at the cache bandwidth parameter.
* Be sure that the bandwidth will be filled for all
* non-satellite systems, as tuners need to know what
* low pass/Nyquist half filter should be applied, in
* order to avoid inter-channel noise.
*
* ISDB-T and DVB-T/T2 already sets bandwidth.
* ATSC and DVB-C don't set, so, the core should fill it.
*
* On DVB-C Annex A and C, the bandwidth is a function of
* the roll-off and symbol rate. Annex B defines different
* roll-off factors depending on the modulation. Fortunately,
* Annex B is only used with 6MHz, so there's no need to
* calculate it.
*
* While not officially supported, a side effect of handling it at
* the cache level is that a program could retrieve the bandwidth
* via DTV_BANDWIDTH_HZ, wich may be useful for test programs.
* via DTV_BANDWIDTH_HZ, which may be useful for test programs.
*/
if (c->delivery_system == SYS_DVBC_ANNEX_A)
switch (c->delivery_system) {
case SYS_ATSC:
case SYS_DVBC_ANNEX_B:
c->bandwidth_hz = 6000000;
break;
case SYS_DVBC_ANNEX_A:
rolloff = 115;
if (c->delivery_system == SYS_DVBC_ANNEX_C)
break;
case SYS_DVBC_ANNEX_C:
rolloff = 113;
break;
default:
break;
}
if (rolloff)
c->bandwidth_hz = (c->symbol_rate * rolloff) / 100;
}
Expand Down

0 comments on commit 66af38e

Please sign in to comment.