Commit eca8ebfc authored by Ahmed S. Darwish's avatar Ahmed S. Darwish Committed by Mauro Carvalho Chehab

V4L/DVB (5090): Pvrusb2: A patch to use ARRAY_SIZE macro when appropriate

Signed-off-by: default avatarAhmed S. Darwish <darwish.07@gmail.com>
Signed-off-by: default avatarMike Isely <isely@pobox.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent c1c2680d
...@@ -169,25 +169,23 @@ static int pvr2_encoder_cmd(void *ctxt, ...@@ -169,25 +169,23 @@ static int pvr2_encoder_cmd(void *ctxt,
*/ */
if (arg_cnt_send > (sizeof(wrData)/sizeof(wrData[0]))-4) { if (arg_cnt_send > (ARRAY_SIZE(wrData) - 4)) {
pvr2_trace( pvr2_trace(
PVR2_TRACE_ERROR_LEGS, PVR2_TRACE_ERROR_LEGS,
"Failed to write cx23416 command" "Failed to write cx23416 command"
" - too many input arguments" " - too many input arguments"
" (was given %u limit %u)", " (was given %u limit %u)",
arg_cnt_send, arg_cnt_send, ARRAY_SIZE(wrData) - 4);
(unsigned int)(sizeof(wrData)/sizeof(wrData[0])) - 4);
return -EINVAL; return -EINVAL;
} }
if (arg_cnt_recv > (sizeof(rdData)/sizeof(rdData[0]))-4) { if (arg_cnt_recv > (ARRAY_SIZE(rdData) - 4)) {
pvr2_trace( pvr2_trace(
PVR2_TRACE_ERROR_LEGS, PVR2_TRACE_ERROR_LEGS,
"Failed to write cx23416 command" "Failed to write cx23416 command"
" - too many return arguments" " - too many return arguments"
" (was given %u limit %u)", " (was given %u limit %u)",
arg_cnt_recv, arg_cnt_recv, ARRAY_SIZE(rdData) - 4);
(unsigned int)(sizeof(rdData)/sizeof(rdData[0])) - 4);
return -EINVAL; return -EINVAL;
} }
...@@ -201,7 +199,7 @@ static int pvr2_encoder_cmd(void *ctxt, ...@@ -201,7 +199,7 @@ static int pvr2_encoder_cmd(void *ctxt,
for (idx = 0; idx < arg_cnt_send; idx++) { for (idx = 0; idx < arg_cnt_send; idx++) {
wrData[idx+4] = argp[idx]; wrData[idx+4] = argp[idx];
} }
for (; idx < (sizeof(wrData)/sizeof(wrData[0]))-4; idx++) { for (; idx < ARRAY_SIZE(wrData) - 4; idx++) {
wrData[idx+4] = 0; wrData[idx+4] = 0;
} }
...@@ -245,8 +243,7 @@ static int pvr2_encoder_cmd(void *ctxt, ...@@ -245,8 +243,7 @@ static int pvr2_encoder_cmd(void *ctxt,
if (ret) break; if (ret) break;
wrData[0] = 0x7; wrData[0] = 0x7;
ret = pvr2_encoder_read_words( ret = pvr2_encoder_read_words(
hdw,0,rdData, hdw,0,rdData, ARRAY_SIZE(rdData));
sizeof(rdData)/sizeof(rdData[0]));
if (ret) break; if (ret) break;
for (idx = 0; idx < arg_cnt_recv; idx++) { for (idx = 0; idx < arg_cnt_recv; idx++) {
argp[idx] = rdData[idx+4]; argp[idx] = rdData[idx+4];
...@@ -269,13 +266,13 @@ static int pvr2_encoder_vcmd(struct pvr2_hdw *hdw, int cmd, ...@@ -269,13 +266,13 @@ static int pvr2_encoder_vcmd(struct pvr2_hdw *hdw, int cmd,
unsigned int idx; unsigned int idx;
u32 data[12]; u32 data[12];
if (args > sizeof(data)/sizeof(data[0])) { if (args > ARRAY_SIZE(data)) {
pvr2_trace( pvr2_trace(
PVR2_TRACE_ERROR_LEGS, PVR2_TRACE_ERROR_LEGS,
"Failed to write cx23416 command" "Failed to write cx23416 command"
" - too many arguments" " - too many arguments"
" (was given %u limit %u)", " (was given %u limit %u)",
args,(unsigned int)(sizeof(data)/sizeof(data[0]))); args, ARRAY_SIZE(data));
return -EINVAL; return -EINVAL;
} }
......
...@@ -74,12 +74,10 @@ static const char *pvr2_client_29xxx[] = { ...@@ -74,12 +74,10 @@ static const char *pvr2_client_29xxx[] = {
static struct pvr2_string_table pvr2_client_lists[] = { static struct pvr2_string_table pvr2_client_lists[] = {
[PVR2_HDW_TYPE_29XXX] = { [PVR2_HDW_TYPE_29XXX] = {
pvr2_client_29xxx, pvr2_client_29xxx, ARRAY_SIZE(pvr2_client_29xxx)
sizeof(pvr2_client_29xxx)/sizeof(pvr2_client_29xxx[0]),
}, },
[PVR2_HDW_TYPE_24XXX] = { [PVR2_HDW_TYPE_24XXX] = {
pvr2_client_24xxx, pvr2_client_24xxx, ARRAY_SIZE(pvr2_client_24xxx)
sizeof(pvr2_client_24xxx)/sizeof(pvr2_client_24xxx[0]),
}, },
}; };
...@@ -212,7 +210,7 @@ static const struct pvr2_mpeg_ids mpeg_ids[] = { ...@@ -212,7 +210,7 @@ static const struct pvr2_mpeg_ids mpeg_ids[] = {
.id = V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM, .id = V4L2_CID_MPEG_CX2341X_VIDEO_CHROMA_MEDIAN_FILTER_BOTTOM,
} }
}; };
#define MPEGDEF_COUNT (sizeof(mpeg_ids)/sizeof(mpeg_ids[0])) #define MPEGDEF_COUNT ARRAY_SIZE(mpeg_ids)
static const char *control_values_srate[] = { static const char *control_values_srate[] = {
...@@ -984,7 +982,7 @@ static const struct pvr2_ctl_info control_defs[] = { ...@@ -984,7 +982,7 @@ static const struct pvr2_ctl_info control_defs[] = {
} }
}; };
#define CTRLDEF_COUNT (sizeof(control_defs)/sizeof(control_defs[0])) #define CTRLDEF_COUNT ARRAY_SIZE(control_defs)
const char *pvr2_config_get_name(enum pvr2_config cfg) const char *pvr2_config_get_name(enum pvr2_config cfg)
...@@ -1133,12 +1131,10 @@ static int pvr2_upload_firmware1(struct pvr2_hdw *hdw) ...@@ -1133,12 +1131,10 @@ static int pvr2_upload_firmware1(struct pvr2_hdw *hdw)
}; };
static const struct pvr2_string_table fw_file_defs[] = { static const struct pvr2_string_table fw_file_defs[] = {
[PVR2_HDW_TYPE_29XXX] = { [PVR2_HDW_TYPE_29XXX] = {
fw_files_29xxx, fw_files_29xxx, ARRAY_SIZE(fw_files_29xxx)
sizeof(fw_files_29xxx)/sizeof(fw_files_29xxx[0]),
}, },
[PVR2_HDW_TYPE_24XXX] = { [PVR2_HDW_TYPE_24XXX] = {
fw_files_24xxx, fw_files_24xxx, ARRAY_SIZE(fw_files_24xxx)
sizeof(fw_files_24xxx)/sizeof(fw_files_24xxx[0]),
}, },
}; };
hdw->fw1_state = FW1_STATE_FAILED; // default result hdw->fw1_state = FW1_STATE_FAILED; // default result
...@@ -1225,8 +1221,7 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw) ...@@ -1225,8 +1221,7 @@ int pvr2_upload_firmware2(struct pvr2_hdw *hdw)
trace_firmware("pvr2_upload_firmware2"); trace_firmware("pvr2_upload_firmware2");
ret = pvr2_locate_firmware(hdw,&fw_entry,"encoder", ret = pvr2_locate_firmware(hdw,&fw_entry,"encoder",
sizeof(fw_files)/sizeof(fw_files[0]), ARRAY_SIZE(fw_files), fw_files);
fw_files);
if (ret < 0) return ret; if (ret < 0) return ret;
fwidx = ret; fwidx = ret;
ret = 0; ret = 0;
...@@ -1933,8 +1928,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf, ...@@ -1933,8 +1928,7 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,
struct pvr2_ctl_info *ciptr; struct pvr2_ctl_info *ciptr;
hdw_type = devid - pvr2_device_table; hdw_type = devid - pvr2_device_table;
if (hdw_type >= if (hdw_type >= ARRAY_SIZE(pvr2_device_names)) {
sizeof(pvr2_device_names)/sizeof(pvr2_device_names[0])) {
pvr2_trace(PVR2_TRACE_ERROR_LEGS, pvr2_trace(PVR2_TRACE_ERROR_LEGS,
"Bogus device type of %u reported",hdw_type); "Bogus device type of %u reported",hdw_type);
return NULL; return NULL;
......
...@@ -976,8 +976,7 @@ static void do_i2c_scan(struct pvr2_hdw *hdw) ...@@ -976,8 +976,7 @@ static void do_i2c_scan(struct pvr2_hdw *hdw)
printk("%s: i2c scan beginning\n",hdw->name); printk("%s: i2c scan beginning\n",hdw->name);
for (i = 0; i < 128; i++) { for (i = 0; i < 128; i++) {
msg[0].addr = i; msg[0].addr = i;
rc = i2c_transfer(&hdw->i2c_adap,msg, rc = i2c_transfer(&hdw->i2c_adap,msg, ARRAY_SIZE(msg));
sizeof(msg)/sizeof(msg[0]));
if (rc != 1) continue; if (rc != 1) continue;
printk("%s: i2c scan: found device @ 0x%x\n",hdw->name,i); printk("%s: i2c scan: found device @ 0x%x\n",hdw->name,i);
} }
......
...@@ -141,10 +141,8 @@ int pvr2_std_str_to_id(v4l2_std_id *idPtr,const char *bufPtr, ...@@ -141,10 +141,8 @@ int pvr2_std_str_to_id(v4l2_std_id *idPtr,const char *bufPtr,
cnt = 0; cnt = 0;
while ((cnt < bufSize) && (bufPtr[cnt] != '-')) cnt++; while ((cnt < bufSize) && (bufPtr[cnt] != '-')) cnt++;
if (cnt >= bufSize) return 0; // No more characters if (cnt >= bufSize) return 0; // No more characters
sp = find_std_name( sp = find_std_name(std_groups, ARRAY_SIZE(std_groups),
std_groups, bufPtr,cnt);
sizeof(std_groups)/sizeof(std_groups[0]),
bufPtr,cnt);
if (!sp) return 0; // Illegal color system name if (!sp) return 0; // Illegal color system name
cnt++; cnt++;
bufPtr += cnt; bufPtr += cnt;
...@@ -163,8 +161,7 @@ int pvr2_std_str_to_id(v4l2_std_id *idPtr,const char *bufPtr, ...@@ -163,8 +161,7 @@ int pvr2_std_str_to_id(v4l2_std_id *idPtr,const char *bufPtr,
if (ch == '/') break; if (ch == '/') break;
cnt++; cnt++;
} }
sp = find_std_name(std_items, sp = find_std_name(std_items, ARRAY_SIZE(std_items),
sizeof(std_items)/sizeof(std_items[0]),
bufPtr,cnt); bufPtr,cnt);
if (!sp) return 0; // Illegal modulation system ID if (!sp) return 0; // Illegal modulation system ID
t = sp->id & cmsk; t = sp->id & cmsk;
...@@ -189,14 +186,10 @@ unsigned int pvr2_std_id_to_str(char *bufPtr, unsigned int bufSize, ...@@ -189,14 +186,10 @@ unsigned int pvr2_std_id_to_str(char *bufPtr, unsigned int bufSize,
unsigned int c1,c2; unsigned int c1,c2;
cfl = 0; cfl = 0;
c1 = 0; c1 = 0;
for (idx1 = 0; for (idx1 = 0; idx1 < ARRAY_SIZE(std_groups); idx1++) {
idx1 < sizeof(std_groups)/sizeof(std_groups[0]);
idx1++) {
gp = std_groups + idx1; gp = std_groups + idx1;
gfl = 0; gfl = 0;
for (idx2 = 0; for (idx2 = 0; idx2 < ARRAY_SIZE(std_items); idx2++) {
idx2 < sizeof(std_items)/sizeof(std_items[0]);
idx2++) {
ip = std_items + idx2; ip = std_items + idx2;
if (!(gp->id & ip->id & id)) continue; if (!(gp->id & ip->id & id)) continue;
if (!gfl) { if (!gfl) {
...@@ -279,7 +272,7 @@ static struct v4l2_standard generic_standards[] = { ...@@ -279,7 +272,7 @@ static struct v4l2_standard generic_standards[] = {
} }
}; };
#define generic_standards_cnt (sizeof(generic_standards)/sizeof(generic_standards[0])) #define generic_standards_cnt ARRAY_SIZE(generic_standards)
static struct v4l2_standard *match_std(v4l2_std_id id) static struct v4l2_standard *match_std(v4l2_std_id id)
{ {
...@@ -348,7 +341,7 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr, ...@@ -348,7 +341,7 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr,
fmsk |= idmsk; fmsk |= idmsk;
} }
for (idx2 = 0; idx2 < sizeof(std_mixes)/sizeof(std_mixes[0]); idx2++) { for (idx2 = 0; idx2 < ARRAY_SIZE(std_mixes); idx2++) {
if ((id & std_mixes[idx2]) == std_mixes[idx2]) std_cnt++; if ((id & std_mixes[idx2]) == std_mixes[idx2]) std_cnt++;
} }
...@@ -374,8 +367,8 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr, ...@@ -374,8 +367,8 @@ struct v4l2_standard *pvr2_std_create_enum(unsigned int *countptr,
idx = 0; idx = 0;
/* Enumerate potential special cases */ /* Enumerate potential special cases */
for (idx2 = 0; ((idx2 < sizeof(std_mixes)/sizeof(std_mixes[0])) && for (idx2 = 0; (idx2 < ARRAY_SIZE(std_mixes)) && (idx < std_cnt);
(idx < std_cnt)); idx2++) { idx2++) {
if (!(id & std_mixes[idx2])) continue; if (!(id & std_mixes[idx2])) continue;
if (pvr2_std_fill(stddefs+idx,std_mixes[idx2])) idx++; if (pvr2_std_fill(stddefs+idx,std_mixes[idx2])) idx++;
} }
......
...@@ -493,7 +493,7 @@ static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id) ...@@ -493,7 +493,7 @@ static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id)
unsigned int cnt,acnt; unsigned int cnt,acnt;
int ret; int ret;
if ((ctl_id < 0) || (ctl_id >= (sizeof(funcs)/sizeof(funcs[0])))) { if ((ctl_id < 0) || (ctl_id >= ARRAY_SIZE(funcs))) {
return; return;
} }
......
...@@ -139,8 +139,7 @@ static int decoder_check(struct pvr2_v4l_decoder *ctxt) ...@@ -139,8 +139,7 @@ static int decoder_check(struct pvr2_v4l_decoder *ctxt)
unsigned long msk; unsigned long msk;
unsigned int idx; unsigned int idx;
for (idx = 0; idx < sizeof(decoder_ops)/sizeof(decoder_ops[0]); for (idx = 0; idx < ARRAY_SIZE(decoder_ops); idx++) {
idx++) {
msk = 1 << idx; msk = 1 << idx;
if (ctxt->stale_mask & msk) continue; if (ctxt->stale_mask & msk) continue;
if (decoder_ops[idx].check(ctxt)) { if (decoder_ops[idx].check(ctxt)) {
...@@ -156,8 +155,7 @@ static void decoder_update(struct pvr2_v4l_decoder *ctxt) ...@@ -156,8 +155,7 @@ static void decoder_update(struct pvr2_v4l_decoder *ctxt)
unsigned long msk; unsigned long msk;
unsigned int idx; unsigned int idx;
for (idx = 0; idx < sizeof(decoder_ops)/sizeof(decoder_ops[0]); for (idx = 0; idx < ARRAY_SIZE(decoder_ops); idx++) {
idx++) {
msk = 1 << idx; msk = 1 << idx;
if (!(ctxt->stale_mask & msk)) continue; if (!(ctxt->stale_mask & msk)) continue;
ctxt->stale_mask &= ~msk; ctxt->stale_mask &= ~msk;
...@@ -219,8 +217,7 @@ int pvr2_i2c_decoder_v4l_setup(struct pvr2_hdw *hdw, ...@@ -219,8 +217,7 @@ int pvr2_i2c_decoder_v4l_setup(struct pvr2_hdw *hdw,
ctxt->ctrl.enable = (void (*)(void *,int))decoder_enable; ctxt->ctrl.enable = (void (*)(void *,int))decoder_enable;
ctxt->client = cp; ctxt->client = cp;
ctxt->hdw = hdw; ctxt->hdw = hdw;
ctxt->stale_mask = (1 << (sizeof(decoder_ops)/ ctxt->stale_mask = (1 << ARRAY_SIZE(decoder_ops)) - 1;
sizeof(decoder_ops[0]))) - 1;
hdw->decoder_ctrl = &ctxt->ctrl; hdw->decoder_ctrl = &ctxt->ctrl;
cp->handler = &ctxt->handler; cp->handler = &ctxt->handler;
pvr2_trace(PVR2_TRACE_CHIPS,"i2c 0x%x saa711x V4L2 handler set up", pvr2_trace(PVR2_TRACE_CHIPS,"i2c 0x%x saa711x V4L2 handler set up",
......
...@@ -105,8 +105,7 @@ static int wm8775_check(struct pvr2_v4l_wm8775 *ctxt) ...@@ -105,8 +105,7 @@ static int wm8775_check(struct pvr2_v4l_wm8775 *ctxt)
unsigned long msk; unsigned long msk;
unsigned int idx; unsigned int idx;
for (idx = 0; idx < sizeof(wm8775_ops)/sizeof(wm8775_ops[0]); for (idx = 0; idx < ARRAY_SIZE(wm8775_ops); idx++) {
idx++) {
msk = 1 << idx; msk = 1 << idx;
if (ctxt->stale_mask & msk) continue; if (ctxt->stale_mask & msk) continue;
if (wm8775_ops[idx].check(ctxt)) { if (wm8775_ops[idx].check(ctxt)) {
...@@ -122,8 +121,7 @@ static void wm8775_update(struct pvr2_v4l_wm8775 *ctxt) ...@@ -122,8 +121,7 @@ static void wm8775_update(struct pvr2_v4l_wm8775 *ctxt)
unsigned long msk; unsigned long msk;
unsigned int idx; unsigned int idx;
for (idx = 0; idx < sizeof(wm8775_ops)/sizeof(wm8775_ops[0]); for (idx = 0; idx < ARRAY_SIZE(wm8775_ops); idx++) {
idx++) {
msk = 1 << idx; msk = 1 << idx;
if (!(ctxt->stale_mask & msk)) continue; if (!(ctxt->stale_mask & msk)) continue;
ctxt->stale_mask &= ~msk; ctxt->stale_mask &= ~msk;
...@@ -154,8 +152,7 @@ int pvr2_i2c_wm8775_setup(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp) ...@@ -154,8 +152,7 @@ int pvr2_i2c_wm8775_setup(struct pvr2_hdw *hdw,struct pvr2_i2c_client *cp)
ctxt->handler.func_table = &hfuncs; ctxt->handler.func_table = &hfuncs;
ctxt->client = cp; ctxt->client = cp;
ctxt->hdw = hdw; ctxt->hdw = hdw;
ctxt->stale_mask = (1 << (sizeof(wm8775_ops)/ ctxt->stale_mask = (1 << ARRAY_SIZE(wm8775_ops)) - 1;
sizeof(wm8775_ops[0]))) - 1;
cp->handler = &ctxt->handler; cp->handler = &ctxt->handler;
pvr2_trace(PVR2_TRACE_CHIPS,"i2c 0x%x wm8775 V4L2 handler set up", pvr2_trace(PVR2_TRACE_CHIPS,"i2c 0x%x wm8775 V4L2 handler set up",
cp->client->addr); cp->client->addr);
......
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