lkml.org 
[lkml]   [2024]   [Mar]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v2 2/3] arch: Remove struct fb_info from video helpers
    From
    On 3/27/24 21:41, Thomas Zimmermann wrote:
    > The per-architecture video helpers do not depend on struct fb_info
    > or anything else from fbdev. Remove it from the interface and replace
    > fb_is_primary_device() with video_is_primary_device(). The new helper

    Since you rename this function, wouldn't something similar to

    device_is_primary_display()
    or
    device_is_primary_console()
    or
    is_primary_graphics_device()
    or
    is_primary_display_device()

    be a better name?

    Helge

    > is similar in functionality, but can operate on non-fbdev devices.
    >
    > Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
    > Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
    > Cc: Helge Deller <deller@gmx.de>
    > Cc: "David S. Miller" <davem@davemloft.net>
    > Cc: Andreas Larsson <andreas@gaisler.com>
    > Cc: Thomas Gleixner <tglx@linutronix.de>
    > Cc: Ingo Molnar <mingo@redhat.com>
    > Cc: Borislav Petkov <bp@alien8.de>
    > Cc: Dave Hansen <dave.hansen@linux.intel.com>
    > Cc: x86@kernel.org
    > Cc: "H. Peter Anvin" <hpa@zytor.com>
    > ---
    > arch/parisc/include/asm/fb.h | 8 +++++---
    > arch/parisc/video/fbdev.c | 9 +++++----
    > arch/sparc/include/asm/fb.h | 7 ++++---
    > arch/sparc/video/fbdev.c | 17 ++++++++---------
    > arch/x86/include/asm/fb.h | 8 +++++---
    > arch/x86/video/fbdev.c | 18 +++++++-----------
    > drivers/video/fbdev/core/fbcon.c | 2 +-
    > include/asm-generic/fb.h | 11 ++++++-----
    > 8 files changed, 41 insertions(+), 39 deletions(-)
    >
    > diff --git a/arch/parisc/include/asm/fb.h b/arch/parisc/include/asm/fb.h
    > index 658a8a7dc5312..ed2a195a3e762 100644
    > --- a/arch/parisc/include/asm/fb.h
    > +++ b/arch/parisc/include/asm/fb.h
    > @@ -2,11 +2,13 @@
    > #ifndef _ASM_FB_H_
    > #define _ASM_FB_H_
    >
    > -struct fb_info;
    > +#include <linux/types.h>
    > +
    > +struct device;
    >
    > #if defined(CONFIG_STI_CORE)
    > -int fb_is_primary_device(struct fb_info *info);
    > -#define fb_is_primary_device fb_is_primary_device
    > +bool video_is_primary_device(struct device *dev);
    > +#define video_is_primary_device video_is_primary_device
    > #endif
    >
    > #include <asm-generic/fb.h>
    > diff --git a/arch/parisc/video/fbdev.c b/arch/parisc/video/fbdev.c
    > index e4f8ac99fc9e0..540fa0c919d59 100644
    > --- a/arch/parisc/video/fbdev.c
    > +++ b/arch/parisc/video/fbdev.c
    > @@ -5,12 +5,13 @@
    > * Copyright (C) 2001-2002 Thomas Bogendoerfer <tsbogend@alpha.frankende>
    > */
    >
    > -#include <linux/fb.h>
    > #include <linux/module.h>
    >
    > #include <video/sticore.h>
    >
    > -int fb_is_primary_device(struct fb_info *info)
    > +#include <asm/fb.h>
    > +
    > +bool video_is_primary_device(struct device *dev)
    > {
    > struct sti_struct *sti;
    >
    > @@ -21,6 +22,6 @@ int fb_is_primary_device(struct fb_info *info)
    > return true;
    >
    > /* return true if it's the default built-in framebuffer driver */
    > - return (sti->dev == info->device);
    > + return (sti->dev == dev);
    > }
    > -EXPORT_SYMBOL(fb_is_primary_device);
    > +EXPORT_SYMBOL(video_is_primary_device);
    > diff --git a/arch/sparc/include/asm/fb.h b/arch/sparc/include/asm/fb.h
    > index 24440c0fda490..07f0325d6921c 100644
    > --- a/arch/sparc/include/asm/fb.h
    > +++ b/arch/sparc/include/asm/fb.h
    > @@ -3,10 +3,11 @@
    > #define _SPARC_FB_H_
    >
    > #include <linux/io.h>
    > +#include <linux/types.h>
    >
    > #include <asm/page.h>
    >
    > -struct fb_info;
    > +struct device;
    >
    > #ifdef CONFIG_SPARC32
    > static inline pgprot_t pgprot_framebuffer(pgprot_t prot,
    > @@ -18,8 +19,8 @@ static inline pgprot_t pgprot_framebuffer(pgprot_t prot,
    > #define pgprot_framebuffer pgprot_framebuffer
    > #endif
    >
    > -int fb_is_primary_device(struct fb_info *info);
    > -#define fb_is_primary_device fb_is_primary_device
    > +bool video_is_primary_device(struct device *dev);
    > +#define video_is_primary_device video_is_primary_device
    >
    > static inline void fb_memcpy_fromio(void *to, const volatile void __iomem *from, size_t n)
    > {
    > diff --git a/arch/sparc/video/fbdev.c b/arch/sparc/video/fbdev.c
    > index bff66dd1909a4..e46f0499c2774 100644
    > --- a/arch/sparc/video/fbdev.c
    > +++ b/arch/sparc/video/fbdev.c
    > @@ -1,26 +1,25 @@
    > // SPDX-License-Identifier: GPL-2.0
    >
    > #include <linux/console.h>
    > -#include <linux/fb.h>
    > +#include <linux/device.h>
    > #include <linux/module.h>
    >
    > +#include <asm/fb.h>
    > #include <asm/prom.h>
    >
    > -int fb_is_primary_device(struct fb_info *info)
    > +bool video_is_primary_device(struct device *dev)
    > {
    > - struct device *dev = info->device;
    > - struct device_node *node;
    > + struct device_node *node = dev->of_node;
    >
    > if (console_set_on_cmdline)
    > - return 0;
    > + return false;
    >
    > - node = dev->of_node;
    > if (node && node == of_console_device)
    > - return 1;
    > + return true;
    >
    > - return 0;
    > + return false;
    > }
    > -EXPORT_SYMBOL(fb_is_primary_device);
    > +EXPORT_SYMBOL(video_is_primary_device);
    >
    > MODULE_DESCRIPTION("Sparc fbdev helpers");
    > MODULE_LICENSE("GPL");
    > diff --git a/arch/x86/include/asm/fb.h b/arch/x86/include/asm/fb.h
    > index c3b9582de7efd..999db33792869 100644
    > --- a/arch/x86/include/asm/fb.h
    > +++ b/arch/x86/include/asm/fb.h
    > @@ -2,17 +2,19 @@
    > #ifndef _ASM_X86_FB_H
    > #define _ASM_X86_FB_H
    >
    > +#include <linux/types.h>
    > +
    > #include <asm/page.h>
    >
    > -struct fb_info;
    > +struct device;
    >
    > pgprot_t pgprot_framebuffer(pgprot_t prot,
    > unsigned long vm_start, unsigned long vm_end,
    > unsigned long offset);
    > #define pgprot_framebuffer pgprot_framebuffer
    >
    > -int fb_is_primary_device(struct fb_info *info);
    > -#define fb_is_primary_device fb_is_primary_device
    > +bool video_is_primary_device(struct device *dev);
    > +#define video_is_primary_device video_is_primary_device
    >
    > #include <asm-generic/fb.h>
    >
    > diff --git a/arch/x86/video/fbdev.c b/arch/x86/video/fbdev.c
    > index 1dd6528cc947c..4d87ce8e257fe 100644
    > --- a/arch/x86/video/fbdev.c
    > +++ b/arch/x86/video/fbdev.c
    > @@ -7,7 +7,6 @@
    > *
    > */
    >
    > -#include <linux/fb.h>
    > #include <linux/module.h>
    > #include <linux/pci.h>
    > #include <linux/vgaarb.h>
    > @@ -25,20 +24,17 @@ pgprot_t pgprot_framebuffer(pgprot_t prot,
    > }
    > EXPORT_SYMBOL(pgprot_framebuffer);
    >
    > -int fb_is_primary_device(struct fb_info *info)
    > +bool video_is_primary_device(struct device *dev)
    > {
    > - struct device *device = info->device;
    > - struct pci_dev *pci_dev;
    > + struct pci_dev *pdev;
    >
    > - if (!device || !dev_is_pci(device))
    > - return 0;
    > + if (!dev_is_pci(dev))
    > + return false;
    >
    > - pci_dev = to_pci_dev(device);
    > + pdev = to_pci_dev(dev);
    >
    > - if (pci_dev == vga_default_device())
    > - return 1;
    > - return 0;
    > + return (pdev == vga_default_device());
    > }
    > -EXPORT_SYMBOL(fb_is_primary_device);
    > +EXPORT_SYMBOL(video_is_primary_device);
    >
    > MODULE_LICENSE("GPL");
    > diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c
    > index 46823c2e2ba12..85c5c8cbc680a 100644
    > --- a/drivers/video/fbdev/core/fbcon.c
    > +++ b/drivers/video/fbdev/core/fbcon.c
    > @@ -2939,7 +2939,7 @@ void fbcon_remap_all(struct fb_info *info)
    > static void fbcon_select_primary(struct fb_info *info)
    > {
    > if (!map_override && primary_device == -1 &&
    > - fb_is_primary_device(info)) {
    > + video_is_primary_device(info->device)) {
    > int i;
    >
    > printk(KERN_INFO "fbcon: %s (fb%i) is primary device\n",
    > diff --git a/include/asm-generic/fb.h b/include/asm-generic/fb.h
    > index 6ccabb400aa66..4788c1e1c6bc0 100644
    > --- a/include/asm-generic/fb.h
    > +++ b/include/asm-generic/fb.h
    > @@ -10,8 +10,9 @@
    > #include <linux/io.h>
    > #include <linux/mm_types.h>
    > #include <linux/pgtable.h>
    > +#include <linux/types.h>
    >
    > -struct fb_info;
    > +struct device;
    >
    > #ifndef pgprot_framebuffer
    > #define pgprot_framebuffer pgprot_framebuffer
    > @@ -23,11 +24,11 @@ static inline pgprot_t pgprot_framebuffer(pgprot_t prot,
    > }
    > #endif
    >
    > -#ifndef fb_is_primary_device
    > -#define fb_is_primary_device fb_is_primary_device
    > -static inline int fb_is_primary_device(struct fb_info *info)
    > +#ifndef video_is_primary_device
    > +#define video_is_primary_device video_is_primary_device
    > +static inline bool video_is_primary_device(struct device *dev)
    > {
    > - return 0;
    > + return false;
    > }
    > #endif
    >


    \
     
     \ /
      Last update: 2024-03-28 12:05    [W:3.393 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site