Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: dib0900: fix smatch warnings

drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1075 dib0090_pwm_gain_reset() warn: '*&bb_ramp_pwm_normal' 2590696709486571520 can't fit into 65535 '*bb_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1083 dib0090_pwm_gain_reset() warn: '*&bb_ramp_pwm_normal_socs' 2590696709486571520 can't fit into 65535 '*bb_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1085 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_cband_8090' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1089 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_cband_7090e_sensitivity' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1093 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_cband_7090p' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1096 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_cband' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1101 dib0090_pwm_gain_reset() warn: '*&bb_ramp_pwm_normal_socs' 2590696709486571520 can't fit into 65535 '*bb_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1104 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_vhf' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1107 dib0090_pwm_gain_reset() warn: '*&bb_ramp_pwm_normal_socs' 2590696709486571520 can't fit into 65535 '*bb_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1109 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_uhf_8090' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1111 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_uhf_7090' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1113 dib0090_pwm_gain_reset() warn: '*&rf_ramp_pwm_uhf' 2590696709486571520 can't fit into 65535 '*rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1419 dib0090_update_rframp_7090() warn: '*&rf_ramp_pwm_cband_7090e_sensitivity' 2590696709486571520 can't fit into 65535
'*state->rf_ramp'
drivers/media/dvb-frontends/dib0090.c: drivers/media/dvb-frontends/dib0090.c:1421 dib0090_update_rframp_7090() warn: '*&rf_ramp_pwm_cband_7090e_aci' 2590696709486571520 can't fit into 65535
'*state->rf_ramp'

For no apparent reason this code casts away the const of the const u16 arrays, and it
also takes the address of an array. While that's ignored in C I think smatch gets confused
by it.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
6c0943cd 28fc5a36

+16 -16
+16 -16
drivers/media/dvb-frontends/dib0090.c
··· 1072 1072 void dib0090_pwm_gain_reset(struct dvb_frontend *fe) 1073 1073 { 1074 1074 struct dib0090_state *state = fe->tuner_priv; 1075 - u16 *bb_ramp = (u16 *)&bb_ramp_pwm_normal; /* default baseband config */ 1076 - u16 *rf_ramp = NULL; 1075 + const u16 *bb_ramp = bb_ramp_pwm_normal; /* default baseband config */ 1076 + const u16 *rf_ramp = NULL; 1077 1077 u8 en_pwm_rf_mux = 1; 1078 1078 1079 1079 /* reset the AGC */ 1080 1080 if (state->config->use_pwm_agc) { 1081 1081 if (state->current_band == BAND_CBAND) { 1082 1082 if (state->identity.in_soc) { 1083 - bb_ramp = (u16 *)&bb_ramp_pwm_normal_socs; 1083 + bb_ramp = bb_ramp_pwm_normal_socs; 1084 1084 if (state->identity.version == SOC_8090_P1G_11R1 || state->identity.version == SOC_8090_P1G_21R1) 1085 - rf_ramp = (u16 *)&rf_ramp_pwm_cband_8090; 1085 + rf_ramp = rf_ramp_pwm_cband_8090; 1086 1086 else if (state->identity.version == SOC_7090_P1G_11R1 || state->identity.version == SOC_7090_P1G_21R1) { 1087 1087 if (state->config->is_dib7090e) { 1088 1088 if (state->rf_ramp == NULL) 1089 - rf_ramp = (u16 *)&rf_ramp_pwm_cband_7090e_sensitivity; 1089 + rf_ramp = rf_ramp_pwm_cband_7090e_sensitivity; 1090 1090 else 1091 - rf_ramp = (u16 *)state->rf_ramp; 1091 + rf_ramp = state->rf_ramp; 1092 1092 } else 1093 - rf_ramp = (u16 *)&rf_ramp_pwm_cband_7090p; 1093 + rf_ramp = rf_ramp_pwm_cband_7090p; 1094 1094 } 1095 1095 } else 1096 - rf_ramp = (u16 *)&rf_ramp_pwm_cband; 1096 + rf_ramp = rf_ramp_pwm_cband; 1097 1097 } else 1098 1098 1099 1099 if (state->current_band == BAND_VHF) { 1100 1100 if (state->identity.in_soc) { 1101 - bb_ramp = (u16 *)&bb_ramp_pwm_normal_socs; 1101 + bb_ramp = bb_ramp_pwm_normal_socs; 1102 1102 /* rf_ramp = &rf_ramp_pwm_vhf_socs; */ /* TODO */ 1103 1103 } else 1104 - rf_ramp = (u16 *)&rf_ramp_pwm_vhf; 1104 + rf_ramp = rf_ramp_pwm_vhf; 1105 1105 } else if (state->current_band == BAND_UHF) { 1106 1106 if (state->identity.in_soc) { 1107 - bb_ramp = (u16 *)&bb_ramp_pwm_normal_socs; 1107 + bb_ramp = bb_ramp_pwm_normal_socs; 1108 1108 if (state->identity.version == SOC_8090_P1G_11R1 || state->identity.version == SOC_8090_P1G_21R1) 1109 - rf_ramp = (u16 *)&rf_ramp_pwm_uhf_8090; 1109 + rf_ramp = rf_ramp_pwm_uhf_8090; 1110 1110 else if (state->identity.version == SOC_7090_P1G_11R1 || state->identity.version == SOC_7090_P1G_21R1) 1111 - rf_ramp = (u16 *)&rf_ramp_pwm_uhf_7090; 1111 + rf_ramp = rf_ramp_pwm_uhf_7090; 1112 1112 } else 1113 - rf_ramp = (u16 *)&rf_ramp_pwm_uhf; 1113 + rf_ramp = rf_ramp_pwm_uhf; 1114 1114 } 1115 1115 if (rf_ramp) 1116 1116 dib0090_set_rframp_pwm(state, rf_ramp); ··· 1416 1416 } 1417 1417 1418 1418 if (cfg_sensitivity) 1419 - state->rf_ramp = (const u16 *)&rf_ramp_pwm_cband_7090e_sensitivity; 1419 + state->rf_ramp = rf_ramp_pwm_cband_7090e_sensitivity; 1420 1420 else 1421 - state->rf_ramp = (const u16 *)&rf_ramp_pwm_cband_7090e_aci; 1421 + state->rf_ramp = rf_ramp_pwm_cband_7090e_aci; 1422 1422 dib0090_pwm_gain_reset(fe); 1423 1423 1424 1424 return 0;