Commit 3d19cde7 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: cx2341x: replace badly designed macros

There are some macros at cx2341x_update() with seemed to
be introduced in order to ensure that lines would be less
than 80 columns.

Well, the thing is that they make the code harder to be analized,
not only by humans, but also for static code analyzers:

	drivers/media/common/cx2341x.c:1116 cx2341x_update() error: we previously assumed 'old' could be null (see line 1047)

So, remove the "force" var, and replace the NEQ macro to a
better designed one that makes clearer about what it is doing.

While here, also remove the "temporal" var, as it is just another
way of doing the same type of check as the new CMP_FIELD() macro
already does.

Finally, fix coding style at the block code.
 remove such macros.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 153d11cc
......@@ -1028,7 +1028,7 @@ static int cx2341x_api(void *priv, cx2341x_mbox_func func,
return func(priv, cmd, args, 0, data);
}
#define NEQ(field) (old->field != new->field)
#define CMP_FIELD(__old, __new, __field) (__old->__field != __new->__field)
int cx2341x_update(void *priv, cx2341x_mbox_func func,
const struct cx2341x_mpeg_params *old,
......@@ -1042,20 +1042,22 @@ int cx2341x_update(void *priv, cx2341x_mbox_func func,
11, /* VCD */
12, /* SVCD */
};
int err = 0;
int force = (old == NULL);
u16 temporal = new->video_temporal_filter;
int err;
cx2341x_api(priv, func, CX2341X_ENC_SET_OUTPUT_PORT, 2, new->port, 0);
if (force || NEQ(is_50hz)) {
if (!old ||
CMP_FIELD(old, new, is_50hz)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_FRAME_RATE, 1,
new->is_50hz);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(width) || NEQ(height) || NEQ(video_encoding)) {
if (!old ||
CMP_FIELD(old, new, width) ||
CMP_FIELD(old, new, height) ||
CMP_FIELD(old, new, video_encoding)) {
u16 w = new->width;
u16 h = new->height;
......@@ -1065,94 +1067,127 @@ int cx2341x_update(void *priv, cx2341x_mbox_func func,
}
err = cx2341x_api(priv, func, CX2341X_ENC_SET_FRAME_SIZE, 2,
h, w);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(stream_type)) {
if (!old ||
CMP_FIELD(old, new, stream_type)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_STREAM_TYPE, 1,
mpeg_stream_type[new->stream_type]);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(video_aspect)) {
if (!old ||
CMP_FIELD(old, new, video_aspect)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_ASPECT_RATIO, 1,
1 + new->video_aspect);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(video_b_frames) || NEQ(video_gop_size)) {
if (!old ||
CMP_FIELD(old, new, video_b_frames) ||
CMP_FIELD(old, new, video_gop_size)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_GOP_PROPERTIES, 2,
new->video_gop_size, new->video_b_frames + 1);
if (err) return err;
new->video_gop_size, new->video_b_frames + 1);
if (err)
return err;
}
if (force || NEQ(video_gop_closure)) {
if (!old ||
CMP_FIELD(old, new, video_gop_closure)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_GOP_CLOSURE, 1,
new->video_gop_closure);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(audio_properties)) {
if (!old ||
CMP_FIELD(old, new, audio_properties)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_AUDIO_PROPERTIES,
1, new->audio_properties);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(audio_mute)) {
if (!old ||
CMP_FIELD(old, new, audio_mute)) {
err = cx2341x_api(priv, func, CX2341X_ENC_MUTE_AUDIO, 1,
new->audio_mute);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(video_bitrate_mode) || NEQ(video_bitrate) ||
NEQ(video_bitrate_peak)) {
if (!old ||
CMP_FIELD(old, new, video_bitrate_mode) ||
CMP_FIELD(old, new, video_bitrate) ||
CMP_FIELD(old, new, video_bitrate_peak)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_BIT_RATE, 5,
new->video_bitrate_mode, new->video_bitrate,
new->video_bitrate_peak / 400, 0, 0);
if (err) return err;
new->video_bitrate_mode, new->video_bitrate,
new->video_bitrate_peak / 400, 0, 0);
if (err)
return err;
}
if (force || NEQ(video_spatial_filter_mode) ||
NEQ(video_temporal_filter_mode) ||
NEQ(video_median_filter_type)) {
if (!old ||
CMP_FIELD(old, new, video_spatial_filter_mode) ||
CMP_FIELD(old, new, video_temporal_filter_mode) ||
CMP_FIELD(old, new, video_median_filter_type)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_DNR_FILTER_MODE,
2, new->video_spatial_filter_mode |
2,
new->video_spatial_filter_mode |
(new->video_temporal_filter_mode << 1),
new->video_median_filter_type);
if (err) return err;
new->video_median_filter_type);
if (err)
return err;
}
if (force || NEQ(video_luma_median_filter_bottom) ||
NEQ(video_luma_median_filter_top) ||
NEQ(video_chroma_median_filter_bottom) ||
NEQ(video_chroma_median_filter_top)) {
if (!old ||
CMP_FIELD(old, new, video_luma_median_filter_bottom) ||
CMP_FIELD(old, new, video_luma_median_filter_top) ||
CMP_FIELD(old, new, video_chroma_median_filter_bottom) ||
CMP_FIELD(old, new, video_chroma_median_filter_top)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_CORING_LEVELS, 4,
new->video_luma_median_filter_bottom,
new->video_luma_median_filter_top,
new->video_chroma_median_filter_bottom,
new->video_chroma_median_filter_top);
if (err) return err;
new->video_luma_median_filter_bottom,
new->video_luma_median_filter_top,
new->video_chroma_median_filter_bottom,
new->video_chroma_median_filter_top);
if (err)
return err;
}
if (force || NEQ(video_luma_spatial_filter_type) ||
NEQ(video_chroma_spatial_filter_type)) {
if (!old ||
CMP_FIELD(old, new, video_luma_spatial_filter_type) ||
CMP_FIELD(old, new, video_chroma_spatial_filter_type)) {
err = cx2341x_api(priv, func,
CX2341X_ENC_SET_SPATIAL_FILTER_TYPE,
2, new->video_luma_spatial_filter_type,
new->video_chroma_spatial_filter_type);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(video_spatial_filter) ||
old->video_temporal_filter != temporal) {
if (!old ||
CMP_FIELD(old, new, video_spatial_filter) ||
CMP_FIELD(old, new, video_temporal_filter)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_DNR_FILTER_PROPS,
2, new->video_spatial_filter, temporal);
if (err) return err;
2, new->video_spatial_filter,
new->video_temporal_filter);
if (err)
return err;
}
if (force || NEQ(video_temporal_decimation)) {
if (!old ||
CMP_FIELD(old, new, video_temporal_decimation)) {
err = cx2341x_api(priv, func, CX2341X_ENC_SET_FRAME_DROP_RATE,
1, new->video_temporal_decimation);
if (err) return err;
if (err)
return err;
}
if (force || NEQ(video_mute) ||
(new->video_mute && NEQ(video_mute_yuv))) {
if (!old ||
CMP_FIELD(old, new, video_mute) ||
(new->video_mute && CMP_FIELD(old, new, video_mute_yuv))) {
err = cx2341x_api(priv, func, CX2341X_ENC_MUTE_VIDEO, 1,
new->video_mute | (new->video_mute_yuv << 8));
if (err) return err;
new->video_mute | (new->video_mute_yuv << 8));
if (err)
return err;
}
if (force || NEQ(stream_insert_nav_packets)) {
if (!old ||
CMP_FIELD(old, new, stream_insert_nav_packets)) {
err = cx2341x_api(priv, func, CX2341X_ENC_MISC, 2,
7, new->stream_insert_nav_packets);
if (err) return err;
7, new->stream_insert_nav_packets);
if (err)
return err;
}
return 0;
}
......
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