aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2012-01-01 14:11:11 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-01-04 14:29:01 -0500
commit9a27e6a0b70966ee141c8f576cc4836d5001d44f (patch)
tree482c8bed021faf28ffb1421dbe0599bcb7af79ed
parent26c924febc2a840fc232bfb3771df39810f5d362 (diff)
[media] dvb_frontend: Handle all possible DVBv3 values for bandwidth
Due to DVB-T2, several new possible values for bandwidth were added. As the DVBv3 struct were updated to handle them, the core needs to handle all of them, as a DVBv3 application might try to use it. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c55
1 files changed, 42 insertions, 13 deletions
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index b72b87ecc3e3..33ce309e8a9b 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1079,15 +1079,29 @@ static void dtv_property_cache_sync(struct dvb_frontend *fe,
1079 c->modulation = p->u.qam.modulation; 1079 c->modulation = p->u.qam.modulation;
1080 break; 1080 break;
1081 case FE_OFDM: 1081 case FE_OFDM:
1082 if (p->u.ofdm.bandwidth == BANDWIDTH_6_MHZ) 1082 switch (p->u.ofdm.bandwidth) {
1083 c->bandwidth_hz = 6000000; 1083 case BANDWIDTH_10_MHZ:
1084 else if (p->u.ofdm.bandwidth == BANDWIDTH_7_MHZ) 1084 c->bandwidth_hz = 10000000;
1085 c->bandwidth_hz = 7000000; 1085 break;
1086 else if (p->u.ofdm.bandwidth == BANDWIDTH_8_MHZ) 1086 case BANDWIDTH_8_MHZ:
1087 c->bandwidth_hz = 8000000; 1087 c->bandwidth_hz = 8000000;
1088 else 1088 break;
1089 /* Including BANDWIDTH_AUTO */ 1089 case BANDWIDTH_7_MHZ:
1090 c->bandwidth_hz = 7000000;
1091 break;
1092 case BANDWIDTH_6_MHZ:
1093 c->bandwidth_hz = 6000000;
1094 break;
1095 case BANDWIDTH_5_MHZ:
1096 c->bandwidth_hz = 5000000;
1097 break;
1098 case BANDWIDTH_1_712_MHZ:
1099 c->bandwidth_hz = 1712000;
1100 break;
1101 case BANDWIDTH_AUTO:
1090 c->bandwidth_hz = 0; 1102 c->bandwidth_hz = 0;
1103 }
1104
1091 c->code_rate_HP = p->u.ofdm.code_rate_HP; 1105 c->code_rate_HP = p->u.ofdm.code_rate_HP;
1092 c->code_rate_LP = p->u.ofdm.code_rate_LP; 1106 c->code_rate_LP = p->u.ofdm.code_rate_LP;
1093 c->modulation = p->u.ofdm.constellation; 1107 c->modulation = p->u.ofdm.constellation;
@@ -1130,14 +1144,29 @@ static void dtv_property_legacy_params_sync(struct dvb_frontend *fe,
1130 break; 1144 break;
1131 case FE_OFDM: 1145 case FE_OFDM:
1132 dprintk("%s() Preparing OFDM req\n", __func__); 1146 dprintk("%s() Preparing OFDM req\n", __func__);
1133 if (c->bandwidth_hz == 6000000) 1147 switch (c->bandwidth_hz) {
1134 p->u.ofdm.bandwidth = BANDWIDTH_6_MHZ; 1148 case 10000000:
1135 else if (c->bandwidth_hz == 7000000) 1149 p->u.ofdm.bandwidth = BANDWIDTH_10_MHZ;
1136 p->u.ofdm.bandwidth = BANDWIDTH_7_MHZ; 1150 break;
1137 else if (c->bandwidth_hz == 8000000) 1151 case 8000000:
1138 p->u.ofdm.bandwidth = BANDWIDTH_8_MHZ; 1152 p->u.ofdm.bandwidth = BANDWIDTH_8_MHZ;
1139 else 1153 break;
1154 case 7000000:
1155 p->u.ofdm.bandwidth = BANDWIDTH_7_MHZ;
1156 break;
1157 case 6000000:
1158 p->u.ofdm.bandwidth = BANDWIDTH_6_MHZ;
1159 break;
1160 case 5000000:
1161 p->u.ofdm.bandwidth = BANDWIDTH_5_MHZ;
1162 break;
1163 case 1712000:
1164 p->u.ofdm.bandwidth = BANDWIDTH_1_712_MHZ;
1165 break;
1166 case 0:
1167 default:
1140 p->u.ofdm.bandwidth = BANDWIDTH_AUTO; 1168 p->u.ofdm.bandwidth = BANDWIDTH_AUTO;
1169 }
1141 p->u.ofdm.code_rate_HP = c->code_rate_HP; 1170 p->u.ofdm.code_rate_HP = c->code_rate_HP;
1142 p->u.ofdm.code_rate_LP = c->code_rate_LP; 1171 p->u.ofdm.code_rate_LP = c->code_rate_LP;
1143 p->u.ofdm.constellation = c->modulation; 1172 p->u.ofdm.constellation = c->modulation;