• Arnd Bergmann's avatar
    video: fbdev: sis: avoid mismatched prototypes · 5908986e
    Arnd Bergmann authored
    Building with LTO enabled reveals some functions whose prototypes
    in the header are different from the definition:
    
    drivers/video/fbdev/sis/sis_main.h:765:0: error: type of 'SiS_SetCH70xxANDOR' does not match original declaration [-Werror=lto-type-mismatch]
     extern void  SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg,
    
    drivers/video/fbdev/sis/init301.c:8937:0: note: type mismatch in parameter 4
     SiS_SetCH70xxANDOR(struct SiS_Private *SiS_Pr, unsigned short reg,
    
    drivers/video/fbdev/sis/init301.c:8937:0: note: type 'short unsigned int' should match type 'unsigned char'
    drivers/video/fbdev/sis/init301.c:8937:0: note: 'SiS_SetCH70xxANDOR' was previously declared here
    
    The root cause appears to be the way that header files are used in this
    driver, where they contain both static variable and declarations for
    symbols in other files.
    
    To clean that up, I'm changing all mixed headers to only contain
    declarations the way we normally do in C, or contain only static
    variables, and move the rest to a more appropriate place.  Once that
    is done, the headers can be included in the other files as well, and
    guarantee that the prototypes match.
    
    There are a few headers that now only contain static variables, and
    I'm leaving those alone here as the patch is already too big. These
    could be trivially moved into the respective .c files.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Cc: Thomas Winischhofer <thomas@winischhofer.net>
    Cc: Nicolas Pitre <nico@linaro.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: "Gustavo A. R. Silva" <gustavo@embeddedor.com>,
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    5908986e
init301.c 351 KB