Re: [PATCH 04/30] usb: misc: sisusbvga: sisusb_init: Mark all 'static const' arrays as __maybe_unused

From: Joe Perches
Date: Tue Jul 07 2020 - 16:50:20 EST


On Tue, 2020-07-07 at 09:03 +0100, Lee Jones wrote:
> On Fri, 03 Jul 2020, Joe Perches wrote:
>
> > On Fri, 2020-07-03 at 18:41 +0100, Lee Jones wrote:
> > > drivers/usb/misc/sisusbvga/sisusb_init.h is included by a few
> > > source files. Most of which do not use the majority of the
> > > shared static const arrays which have been declared. This
> > > causes the build system to spew 100's of warnings.
> > >
> > > Fixes the following W=1 kernel build warning(s) - and a whole lot more:
> > >
> > > In file included from drivers/usb/misc/sisusbvga/sisusb.c:54:
> > > drivers/usb/misc/sisusbvga/sisusb_init.h:695:34: warning: âSiSUSB_VCLKDataâ defined but not used [-Wunused-const-variable=]
> > > 695 | static const struct SiS_VCLKData SiSUSB_VCLKData[] = {
> > > | ^~~~~~~~~~~~~~~
> > > [10's of lines snipped]
> > > drivers/usb/misc/sisusbvga/sisusb_init.h:206:28: warning: âSiS_VGA_DACâ defined but not used [-Wunused-const-variable=]
> > > 206 | static const unsigned char SiS_VGA_DAC[] = {
> > > | ^~~~~~~~~~~
> > > [10's of lines snipped]
> > > drivers/usb/misc/sisusbvga/sisusb_init.h:171:29: warning: âModeIndex_1280x1024â defined but not used [-Wunused-const-variable=]
> > > 171 | static const unsigned short ModeIndex_1280x1024[] = { 0x3a, 0x4d, 0x00, 0x65 };
> > > | ^~~~~~~~~~~~~~~~~~~
> > > [10's of lines snipped]
> >
> > They are not __maybe_unused, they _are_ used.
>
> Actually, it looks like all of the ModeIndex_* table are *not* used,
> so those will be removed.
>
> > I think these instead should be moved to where
> > they are used instead of being declared in an
> > #include file.
>
> The remaining tables are many and large, so stuffing them into the
> source file does not seem like the correct thing to do.

It the right thing to do is because otherwise they
would be duplicated. Either declare them only in
the single file where use or declare them extern
and define them only in one place.