Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Option FB_FSL_DIU is not really optional for mpc512x

In powerpc randconfig builds, this keeps showing up:

CC arch/powerpc/platforms/512x/mpc512x_shared.o
arch/powerpc/platforms/512x/mpc512x_shared.c:70:9: warning: 'enum fsl_diu_monitor_port' declared inside parameter list
arch/powerpc/platforms/512x/mpc512x_shared.c:70:9: warning: its scope is only this definition or declaration, which is probably not what you want
arch/powerpc/platforms/512x/mpc512x_shared.c:69:56: error: parameter 1 ('port') has incomplete type
arch/powerpc/platforms/512x/mpc512x_shared.c:69:5: warning: function declaration isn't a prototype
arch/powerpc/platforms/512x/mpc512x_shared.c:84:9: warning: 'enum fsl_diu_monitor_port' declared inside parameter list
arch/powerpc/platforms/512x/mpc512x_shared.c:83:56: error: parameter 1 ('port') has incomplete type
arch/powerpc/platforms/512x/mpc512x_shared.c:83:6: warning: function declaration isn't a prototype
arch/powerpc/platforms/512x/mpc512x_shared.c:88:36: warning: 'enum fsl_diu_monitor_port' declared inside parameter list
arch/powerpc/platforms/512x/mpc512x_shared.c:88:57: error: parameter 1 ('port') has incomplete type
arch/powerpc/platforms/512x/mpc512x_shared.c:88:6: warning: function declaration isn't a prototype
arch/powerpc/platforms/512x/mpc512x_shared.c:187:54: error: parameter 1 ('port') has incomplete type
arch/powerpc/platforms/512x/mpc512x_shared.c:187:1: error: return type is an incomplete type
arch/powerpc/platforms/512x/mpc512x_shared.c:187:1: warning: function declaration isn't a prototype
arch/powerpc/platforms/512x/mpc512x_shared.c: In function 'mpc512x_valid_monitor_port':
arch/powerpc/platforms/512x/mpc512x_shared.c:189:9: error: 'FSL_DIU_PORT_DVI' undeclared (first use in this function)
arch/powerpc/platforms/512x/mpc512x_shared.c:189:9: note: each undeclared identifier is reported only once for each function it appears in
arch/powerpc/platforms/512x/mpc512x_shared.c:189:2: warning: 'return' with a value, in function returning void
make[2]: *** [arch/powerpc/platforms/512x/mpc512x_shared.o] Error 1

The reason is that mpc512x_shared.c has a couple token #ifdef
on FB_FSL_DIU/FB_FSL_DIU_MODULE, but they don't come close to
masking all the DIU dependencies, as the above fail shows.

Rather than sprinkle more pointless #ifdef in this file, just
remove the existing two, and make FB_FSL_DIU part of the
dependency. The mpc512x_defconfig already has the line
"CONFIG_FB_FSL_DIU=y" so this change should be zero impact
on real world configs.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Anatolij Gustschin <agust@denx.de>

authored by

Paul Gortmaker and committed by
Anatolij Gustschin
12e36309 fca82646

+1 -6
+1
arch/powerpc/platforms/512x/Kconfig
··· 2 2 bool "512x-based boards" 3 3 depends on 6xx 4 4 select FSL_SOC 5 + select FB_FSL_DIU 5 6 select IPIC 6 7 select PPC_CLOCK 7 8 select PPC_PCI_CHOICE
-6
arch/powerpc/platforms/512x/mpc512x_shared.c
··· 191 191 192 192 static struct fsl_diu_shared_fb __attribute__ ((__aligned__(8))) diu_shared_fb; 193 193 194 - #if defined(CONFIG_FB_FSL_DIU) || \ 195 - defined(CONFIG_FB_FSL_DIU_MODULE) 196 194 static inline void mpc512x_free_bootmem(struct page *page) 197 195 { 198 196 __ClearPageReserved(page); ··· 218 220 } 219 221 diu_ops.release_bootmem = NULL; 220 222 } 221 - #endif 222 223 223 224 /* 224 225 * Check if DIU was pre-initialized. If so, perform steps ··· 320 323 } 321 324 } 322 325 323 - #if defined(CONFIG_FB_FSL_DIU) || \ 324 - defined(CONFIG_FB_FSL_DIU_MODULE) 325 326 diu_ops.get_pixel_format = mpc512x_get_pixel_format; 326 327 diu_ops.set_gamma_table = mpc512x_set_gamma_table; 327 328 diu_ops.set_monitor_port = mpc512x_set_monitor_port; 328 329 diu_ops.set_pixel_clock = mpc512x_set_pixel_clock; 329 330 diu_ops.valid_monitor_port = mpc512x_valid_monitor_port; 330 331 diu_ops.release_bootmem = mpc512x_release_bootmem; 331 - #endif 332 332 } 333 333 334 334 void __init mpc512x_init_IRQ(void)