On 2017-12-02, at 10:35:06 +0000, Jeremy Sowden wrote:
> On 2017-12-02, at 13:20:09 +0300, Dan Carpenter wrote:
> > On Fri, Dec 01, 2017 at 05:19:37PM +0000, Jeremy Sowden wrote:
> > > -#define DEFAULT_PIPE_INFO \
> > > -{ \
> > > - {IA_CSS_BINARY_DEFAULT_FRAME_INFO},     /* output_info */ \
> > > - {IA_CSS_BINARY_DEFAULT_FRAME_INFO},     /* vf_output_info */ \
> > > - IA_CSS_BINARY_DEFAULT_FRAME_INFO,       /* raw_output_info */ \
> > > - { 0, 0},                                /* output system in res */ \
> > > - DEFAULT_SHADING_INFO,                   /* shading_info */ \
> > > - DEFAULT_GRID_INFO,                      /* grid_info */ \
> > > - 0                                       /* num_invalid_frames */ \
> > > -}
> > > +#define DEFAULT_PIPE_INFO ( \
> >
> > Why does this have a ( now?  That can't compile can it??
>
> It does.

That was a bit terse: the macros expand to compound-literals, so
putting parens around them is no different from:

  #define THREE (3)

It's also superfluous, of course.

> > > + (struct ia_css_pipe_info) { \
> > > +         .output_info                    = 
> > > {IA_CSS_BINARY_DEFAULT_FRAME_INFO}, \
> > > +         .vf_output_info                 = 
> > > {IA_CSS_BINARY_DEFAULT_FRAME_INFO}, \
> > > +         .raw_output_info                = 
> > > IA_CSS_BINARY_DEFAULT_FRAME_INFO, \
> > > +         .output_system_in_res_info      = { 0, 0 }, \
> > > +         .shading_info                   = DEFAULT_SHADING_INFO, \
> > > +         .grid_info                      = DEFAULT_GRID_INFO, \
> > > +         .num_invalid_frames             = 0 \
> > > + } \
> > > +)
>
> Checkpatch got quite shouty, e.g.:
>
>   ERROR: Macros with complex values should be enclosed in parentheses
>   #826: FILE: 
> drivers/staging/media/atomisp/pci/atomisp2/css2400/isp/kernels/sdis/common/ia_css_sdis_common_types.h:215:
>   +#define DEFAULT_DVS_STAT_PUBLIC_DVS_GLOBAL_CFG \
>   +(struct dvs_stat_public_dvs_global_cfg) { \
>   +       .kappa          = 0, \
>   +       .match_shift    = 0, \
>   +       .ybin_mode      = 0, \
>   +}
>
> so I just wrapped all of them.

I've run checkpatch.pl against the unparenthesized patches, and it only
objects to some of the macros.  I've also taken a look at the source of
checkpatch.pl itself, and at first glance it appears that it should
accept them.  I'll see if I can work out why it's complaining.

J.

Attachment: signature.asc
Description: PGP signature

Reply via email to