On 4/29/20 1:54 PM, Sam Ravnborg wrote:
Hi Bartlomiej.
On Wed, Apr 29, 2020 at 12:48:24PM +0200, Bartlomiej Zolnierkiewicz wrote:
powerpc allyesconfig fails like this:
drivers/video/fbdev/controlfb.c: In function 'controlfb_mmap': drivers/video/fbdev/controlfb.c:756:23: error: implicit declaration of function 'pgprot_cached_wthru'; did you mean 'pgprot_cached'? [-Werror=implicit-function-declaration] 756 | vma->vm_page_prot = pgprot_cached_wthru(vma->vm_page_prot); | ^~~~~~~~~~~~~~~~~~~ | pgprot_cached drivers/video/fbdev/controlfb.c:756:23: error: incompatible types when assigning to type 'pgprot_t' {aka 'struct <anonymous>'} from type 'int'
Fix it by adding missing PPC32 dependency.
Is this really the right fix?
Yes, ifdef in the code should match driver dependencies in Kconfig:
config FB_CONTROL bool "Apple "control" display support" depends on (FB = y) && ((PPC_PMAC && PPC32) || COMPILE_TEST)
Short term I htink it is OK, but I think there should be a common way to do the same for all archtectures so no conditional compilation is needed. In other words the use of pgprot_cached_wthru looks like we need a better abstraction.
This would be of course nice to have but won't be enough to remove the ifdef in this particular driver.
Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
Added Christoph to the mail as he has a good overview of the area.
Sam
Fixes: a07a63b0e24d ("video: fbdev: controlfb: add COMPILE_TEST support") Reported-by: Stephen Rothwell sfr@canb.auug.org.au Reported-by: kbuild test robot lkp@intel.com Cc: Sam Ravnborg sam@ravnborg.org Cc: Daniel Vetter daniel.vetter@ffwll.ch Signed-off-by: Bartlomiej Zolnierkiewicz b.zolnierkie@samsung.com
v2: fix implicit btext_update_display() function declaration error
drivers/video/fbdev/controlfb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Index: b/drivers/video/fbdev/controlfb.c
--- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -55,7 +55,7 @@ #include "macmodes.h" #include "controlfb.h"
-#ifndef CONFIG_PPC_PMAC +#if !defined(CONFIG_PPC_PMAC) || !defined(CONFIG_PPC32) #define invalid_vram_cache(addr) #undef in_8 #undef out_8