arch/sparc: Implement fb_is_primary_device() in source file
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 17 Apr 2023 12:56:49 +0000 (14:56 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 20 Apr 2023 08:05:12 +0000 (10:05 +0200)
Other architectures implment fb_is_primary_device() in a source
file. Do the same on sparc. No functional changes, but allows to
remove several include statement from <asm/fb.h>.

v2:
* don't include <asm/prom.h> in header file

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Cc: "David S. Miller" <davem@davemloft.net>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Helge Deller <deller@gmx.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20230417125651.25126-18-tzimmermann@suse.de
arch/sparc/Makefile
arch/sparc/include/asm/fb.h
arch/sparc/video/Makefile [new file with mode: 0644]
arch/sparc/video/fbdev.c [new file with mode: 0644]

index a4ea5b0..95a9211 100644 (file)
@@ -60,6 +60,7 @@ libs-y                 += arch/sparc/prom/
 libs-y                 += arch/sparc/lib/
 
 drivers-$(CONFIG_PM) += arch/sparc/power/
+drivers-$(CONFIG_FB) += arch/sparc/video/
 
 boot := arch/sparc/boot
 
index f699962..28609f7 100644 (file)
@@ -1,11 +1,12 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _SPARC_FB_H_
 #define _SPARC_FB_H_
-#include <linux/console.h>
-#include <linux/fb.h>
+
 #include <linux/fs.h>
+
 #include <asm/page.h>
-#include <asm/prom.h>
+
+struct fb_info;
 
 static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
                                unsigned long off)
@@ -15,20 +16,6 @@ static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
 #endif
 }
 
-static inline int fb_is_primary_device(struct fb_info *info)
-{
-       struct device *dev = info->device;
-       struct device_node *node;
-
-       if (console_set_on_cmdline)
-               return 0;
-
-       node = dev->of_node;
-       if (node &&
-           node == of_console_device)
-               return 1;
-
-       return 0;
-}
+int fb_is_primary_device(struct fb_info *info);
 
 #endif /* _SPARC_FB_H_ */
diff --git a/arch/sparc/video/Makefile b/arch/sparc/video/Makefile
new file mode 100644 (file)
index 0000000..6baddbd
--- /dev/null
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+obj-$(CONFIG_FB) += fbdev.o
diff --git a/arch/sparc/video/fbdev.c b/arch/sparc/video/fbdev.c
new file mode 100644 (file)
index 0000000..dadd579
--- /dev/null
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/console.h>
+#include <linux/fb.h>
+#include <linux/module.h>
+
+#include <asm/fb.h>
+#include <asm/prom.h>
+
+int fb_is_primary_device(struct fb_info *info)
+{
+       struct device *dev = info->device;
+       struct device_node *node;
+
+       if (console_set_on_cmdline)
+               return 0;
+
+       node = dev->of_node;
+       if (node && node == of_console_device)
+               return 1;
+
+       return 0;
+}
+EXPORT_SYMBOL(fb_is_primary_device);