video/vga: Add VGA_IS0_R

Started by Ville Syrjala on Dec 8, 2025 · 10 messages from 4 authors · Last reply Dec 30, 2025

Subsystems (2)

Maintainers (2)

STALE320d

open the first message on its own page

  1. [PATCH v2 14/19] video/vga: Add VGA_IS0_R
    Related patches
Message details and related content
From: Ville Syrjälä <redacted>

Add a proper name for the "Input status register 0" IO address.
Currently we have some code that does read addressed using the
aliasing VGA_MSR_W define, making it unclear what register we're
actually reading.

Cc: Helge Deller <deller@gmx.de>
Cc: <redacted>
Cc: <redacted>
Signed-off-by: Ville Syrjälä <redacted>
---
 include/video/vga.h | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/include/video/vga.h b/include/video/vga.h
index 468764d6727a..d83c5f153253 100644
--- a/include/video/vga.h
+++ b/include/video/vga.h
@@ -46,6 +46,7 @@
 #define VGA_MIS_R   	0x3CC	/* Misc Output Read Register */
 #define VGA_MIS_W   	0x3C2	/* Misc Output Write Register */
 #define VGA_FTC_R	0x3CA	/* Feature Control Read Register */
+#define VGA_IS0_R	0x3C2	/* Input Status Register 0 */
 #define VGA_IS1_RC  	0x3DA	/* Input Status Register 1 - color emulation */
 #define VGA_IS1_RM  	0x3BA	/* Input Status Register 1 - mono emulation */
 #define VGA_PEL_D   	0x3C9	/* PEL Data Register */
@@ -485,3 +486,4 @@ static inline void vga_mm_wattr (void __iomem *regbase, unsigned char reg, unsig
 }
 
 #endif /* __linux_video_vga_h__ */
+?
-- 
2.51.2
Message details and related content
Hi Ville,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm-i915/for-linux-next drm-i915/for-linux-next-fixes linus/master v6.18 next-20251208]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-vga-Register-vgaarb-client-later/20251209-030730
base:   https://gitlab.freedesktop.org/drm/tip.git drm-tip
patch link:    https://lore.kernel.org/r/20251208182637.334-15-ville.syrjala%40linux.intel.com
patch subject: [PATCH 14/19] video/vga: Add VGA_IS0_R
config: microblaze-randconfig-r072-20251209 (https://download.01.org/0day-ci/archive/20251209/202512090434.DRy1Kvan-lkp@intel.com/config)
compiler: microblaze-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251209/202512090434.DRy1Kvan-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot [off-list ref]
| Closes: https://lore.kernel.org/oe-kbuild-all/202512090434.DRy1Kvan-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/vgaarb.h:15,
                    from drivers/video/aperture.c:12:
quoted
include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from drivers/video/aperture.c:14:
quoted
include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   drivers/video/aperture.c: In function 'devm_aperture_acquire_release':
quoted
drivers/video/aperture.c:153:21: error: dereferencing pointer to incomplete type 'struct aperture_range'
     bool detached = !ap->dev;
                        ^~
   In file included from include/linux/bits.h:30,
                    from include/linux/ratelimit_types.h:5,
                    from include/linux/ratelimit.h:5,
                    from include/linux/dev_printk.h:16,
                    from include/linux/device.h:15,
                    from drivers/video/aperture.c:4:
   drivers/video/aperture.c: In function 'devm_aperture_acquire':
quoted
include/linux/container_of.h:21:47: error: dereferencing pointer to incomplete type 'struct aperture_range'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
                                                  ^~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                           ^~~~
   include/linux/container_of.h:21:2: note: in expansion of macro 'static_assert'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
     ^~~~~~~~~~~~~
   include/linux/container_of.h:21:16: note: in expansion of macro '__same_type'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
                   ^~~~~~~~~~~
   drivers/video/aperture.c:174:8: note: in expansion of macro 'container_of'
      ap = container_of(pos, struct aperture_range, lh);
           ^~~~~~~~~~~~
   include/linux/compiler_types.h:537:27: error: expression in static assertion is not an integer
    #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                           ^~~~
   include/linux/container_of.h:21:2: note: in expansion of macro 'static_assert'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
     ^~~~~~~~~~~~~
   include/linux/container_of.h:21:16: note: in expansion of macro '__same_type'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
                   ^~~~~~~~~~~
   drivers/video/aperture.c:174:8: note: in expansion of macro 'container_of'
      ap = container_of(pos, struct aperture_range, lh);
           ^~~~~~~~~~~~
   In file included from include/uapi/linux/posix_types.h:5,
                    from include/uapi/linux/types.h:14,
                    from include/linux/types.h:6,
                    from include/linux/aperture.h:6,
                    from drivers/video/aperture.c:3:
quoted
include/linux/stddef.h:16:32: error: invalid use of undefined type 'struct aperture_range'
    #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
                                   ^~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:24:21: note: in expansion of macro 'offsetof'
     ((type *)(__mptr - offsetof(type, member))); })
                        ^~~~~~~~
   drivers/video/aperture.c:174:8: note: in expansion of macro 'container_of'
      ap = container_of(pos, struct aperture_range, lh);
           ^~~~~~~~~~~~
   In file included from include/linux/bits.h:30,
                    from include/linux/ratelimit_types.h:5,
                    from include/linux/ratelimit.h:5,
                    from include/linux/dev_printk.h:16,
                    from include/linux/device.h:15,
                    from drivers/video/aperture.c:4:
   drivers/video/aperture.c: In function 'aperture_detach_devices':
quoted
include/linux/container_of.h:21:47: error: dereferencing pointer to incomplete type 'struct aperture_range'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
                                                  ^~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                           ^~~~
   include/linux/container_of.h:21:2: note: in expansion of macro 'static_assert'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
     ^~~~~~~~~~~~~
   include/linux/container_of.h:21:16: note: in expansion of macro '__same_type'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
                   ^~~~~~~~~~~
   drivers/video/aperture.c:255:31: note: in expansion of macro 'container_of'
      struct aperture_range *ap = container_of(pos, struct aperture_range, lh);
                                  ^~~~~~~~~~~~
   include/linux/compiler_types.h:537:27: error: expression in static assertion is not an integer
    #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
    #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                           ^~~~
   include/linux/container_of.h:21:2: note: in expansion of macro 'static_assert'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
     ^~~~~~~~~~~~~
   include/linux/container_of.h:21:16: note: in expansion of macro '__same_type'
     static_assert(__same_type(*(ptr), ((type *)0)->member) || \
                   ^~~~~~~~~~~
   drivers/video/aperture.c:255:31: note: in expansion of macro 'container_of'
      struct aperture_range *ap = container_of(pos, struct aperture_range, lh);
                                  ^~~~~~~~~~~~
   In file included from include/uapi/linux/posix_types.h:5,
                    from include/uapi/linux/types.h:14,
                    from include/linux/types.h:6,
                    from include/linux/aperture.h:6,
                    from drivers/video/aperture.c:3:
quoted
include/linux/stddef.h:16:32: error: invalid use of undefined type 'struct aperture_range'
    #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
                                   ^~~~~~~~~~~~~~~~~~
   include/linux/container_of.h:24:21: note: in expansion of macro 'offsetof'
     ((type *)(__mptr - offsetof(type, member))); })
                        ^~~~~~~~
   drivers/video/aperture.c:255:31: note: in expansion of macro 'container_of'
      struct aperture_range *ap = container_of(pos, struct aperture_range, lh);
                                  ^~~~~~~~~~~~
--
   In file included from drivers/gpu/drm/mgag200/mgag200_drv.h:13,
                    from drivers/gpu/drm/mgag200/mgag200_bmc.c:10:
quoted
include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from include/linux/dma-buf.h:16,
                    from include/drm/drm_gem.h:38,
                    from drivers/gpu/drm/mgag200/mgag200_drv.h:18,
                    from drivers/gpu/drm/mgag200/mgag200_bmc.c:10:
quoted
include/linux/iosys-map.h:183:47: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_set_vaddr(struct iosys_map *map, void *vaddr)
                                                  ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_set_vaddr':
quoted
include/linux/iosys-map.h:185:5: error: dereferencing pointer to incomplete type 'struct iosys_map'
     map->vaddr = vaddr;
        ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:196:53: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_set_vaddr_iomem(struct iosys_map *map,
                                                        ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_set_vaddr_iomem':
   include/linux/iosys-map.h:199:5: error: dereferencing pointer to incomplete type 'struct iosys_map'
     map->vaddr_iomem = vaddr_iomem;
        ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:214:52: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline bool iosys_map_is_equal(const struct iosys_map *lhs,
                                                       ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_is_equal':
quoted
include/linux/iosys-map.h:217:9: error: dereferencing pointer to incomplete type 'const struct iosys_map'
     if (lhs->is_iomem != rhs->is_iomem)
            ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:235:51: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline bool iosys_map_is_null(const struct iosys_map *map)
                                                      ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_is_null':
   include/linux/iosys-map.h:237:9: error: dereferencing pointer to incomplete type 'const struct iosys_map'
     if (map->is_iomem)
            ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:252:50: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline bool iosys_map_is_set(const struct iosys_map *map)
                                                     ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_is_set':
quoted
include/linux/iosys-map.h:254:28: error: passing argument 1 of 'iosys_map_is_null' from incompatible pointer type [-Werror=incompatible-pointer-types]
     return !iosys_map_is_null(map);
                               ^~~
   include/linux/iosys-map.h:235:62: note: expected 'const struct iosys_map *' but argument is of type 'const struct iosys_map *'
    static inline bool iosys_map_is_null(const struct iosys_map *map)
                                         ~~~~~~~~~~~~~~~~~~~~~~~~^~~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:265:43: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_clear(struct iosys_map *map)
                                              ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_clear':
   include/linux/iosys-map.h:267:24: error: dereferencing pointer to incomplete type 'struct iosys_map'
     memset(map, 0, sizeof(*map));
                           ^~~~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:281:47: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_memcpy_to(struct iosys_map *dst, size_t dst_offset,
                                                  ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_memcpy_to':
   include/linux/iosys-map.h:284:9: error: dereferencing pointer to incomplete type 'struct iosys_map'
     if (dst->is_iomem)
            ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:301:66: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_memcpy_from(void *dst, const struct iosys_map *src,
                                                                     ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_memcpy_from':
   include/linux/iosys-map.h:304:9: error: dereferencing pointer to incomplete type 'const struct iosys_map'
     if (src->is_iomem)
            ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:318:42: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_incr(struct iosys_map *map, size_t incr)
                                             ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_incr':
   include/linux/iosys-map.h:320:9: error: dereferencing pointer to incomplete type 'struct iosys_map'
     if (map->is_iomem)
            ^~
   include/linux/iosys-map.h: At top level:
   include/linux/iosys-map.h:336:44: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
    static inline void iosys_map_memset(struct iosys_map *dst, size_t offset,

9 more lines

quoted
include/linux/dma-buf.h:277:45: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
     int (*vmap)(struct dma_buf *dmabuf, struct iosys_map *map);
                                                ^~~~~~~~~
   include/linux/dma-buf.h:278:48: warning: 'struct iosys_map' declared inside parameter list will not be visible outside of this definition or declaration
     void (*vunmap)(struct dma_buf *dmabuf, struct iosys_map *map);
                                                   ^~~~~~~~~
quoted
include/linux/dma-buf.h:332:19: error: field 'vmap_ptr' has incomplete type
     struct iosys_map vmap_ptr;
                      ^~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from drivers/gpu/drm/mgag200/mgag200_drv.h:13,
                    from drivers/gpu/drm/mgag200/mgag200_ddc.c:36:
quoted
include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
--
   In file included from drivers/gpu/drm/mgag200/mgag200_drv.h:13,
                    from drivers/gpu/drm/mgag200/mgag200_drv.c:25:
quoted
include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from include/linux/dma-buf.h:16,
                    from include/drm/drm_gem.h:38,
                    from drivers/gpu/drm/mgag200/mgag200_drv.h:18,
                    from drivers/gpu/drm/mgag200/mgag200_drv.c:25:
   include/linux/iosys-map.h: In function 'iosys_map_set_vaddr':
quoted
include/linux/iosys-map.h:185:5: error: dereferencing pointer to incomplete type 'struct iosys_map'
     map->vaddr = vaddr;
        ^~
   include/linux/iosys-map.h: In function 'iosys_map_is_equal':
quoted
include/linux/iosys-map.h:217:9: error: dereferencing pointer to incomplete type 'const struct iosys_map'
     if (lhs->is_iomem != rhs->is_iomem)
            ^~
   In file included from include/drm/drm_gem.h:38,
                    from drivers/gpu/drm/mgag200/mgag200_drv.h:18,
                    from drivers/gpu/drm/mgag200/mgag200_drv.c:25:
   include/linux/dma-buf.h: At top level:
quoted
include/linux/dma-buf.h:332:19: error: field 'vmap_ptr' has incomplete type
     struct iosys_map vmap_ptr;
                      ^~~~~~~~
--
   In file included from drivers/gpu/drm/tiny/bochs.c:29:
quoted
include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from include/linux/module.h:23,
                    from drivers/gpu/drm/tiny/bochs.c:5:
   drivers/gpu/drm/tiny/bochs.c: In function '__check_modeset':
quoted
drivers/gpu/drm/tiny/bochs.c:66:29: error: 'bochs_modeset' undeclared (first use in this function); did you mean 'drm_mode_set'?
    module_param_named(modeset, bochs_modeset, int, 0444);
                                ^~~~~~~~~~~~~
   include/linux/moduleparam.h:430:68: note: in definition of macro '__param_check'
     static inline type __always_unused *__check_##name(void) { return(p); }
                                                                       ^
   include/linux/moduleparam.h:155:2: note: in expansion of macro 'param_check_int'
     param_check_##type(name, &(value));       \
     ^~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:66:1: note: in expansion of macro 'module_param_named'
    module_param_named(modeset, bochs_modeset, int, 0444);
    ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:66:29: note: each undeclared identifier is reported only once for each function it appears in
    module_param_named(modeset, bochs_modeset, int, 0444);
                                ^~~~~~~~~~~~~
   include/linux/moduleparam.h:430:68: note: in definition of macro '__param_check'
     static inline type __always_unused *__check_##name(void) { return(p); }
                                                                       ^
   include/linux/moduleparam.h:155:2: note: in expansion of macro 'param_check_int'
     param_check_##type(name, &(value));       \
     ^~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:66:1: note: in expansion of macro 'module_param_named'
    module_param_named(modeset, bochs_modeset, int, 0444);
    ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c: At top level:
quoted
drivers/gpu/drm/tiny/bochs.c:66:29: error: 'bochs_modeset' undeclared here (not in a function); did you mean 'drm_mode_set'?
    module_param_named(modeset, bochs_modeset, int, 0444);
                                ^~~~~~~~~~~~~
   include/linux/moduleparam.h:298:54: note: in definition of macro '__module_param_call'
         VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } }
                                                         ^~~
   include/linux/moduleparam.h:156:2: note: in expansion of macro 'module_param_cb'
     module_param_cb(name, &param_ops_##type, &value, perm);     \
     ^~~~~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:66:1: note: in expansion of macro 'module_param_named'
    module_param_named(modeset, bochs_modeset, int, 0444);
    ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c: In function 'bochs_pci_driver_init':
   drivers/gpu/drm/tiny/bochs.c:835:1: warning: control reaches end of non-void function [-Wreturn-type]
    drm_module_pci_driver_if_modeset(bochs_pci_driver, bochs_modeset);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
..


vim +489 include/video/vga.h

   487	
   488	#endif /* __linux_video_vga_h__ */
 > 489	?

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Message details and related content
Hi Ville,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm-i915/for-linux-next drm-i915/for-linux-next-fixes linus/master v6.18 next-20251208]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-vga-Register-vgaarb-client-later/20251209-030730
base:   https://gitlab.freedesktop.org/drm/tip.git drm-tip
patch link:    https://lore.kernel.org/r/20251208182637.334-15-ville.syrjala%40linux.intel.com
patch subject: [PATCH 14/19] video/vga: Add VGA_IS0_R
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20251209/202512090554.7pZ9xOQ5-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251209/202512090554.7pZ9xOQ5-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot [off-list ref]
| Closes: https://lore.kernel.org/oe-kbuild-all/202512090554.7pZ9xOQ5-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/video/console/vgacon.c:51:
quoted
include/video/vga.h:489:1: error: expected identifier or '('
     489 | ?
         | ^
quoted
drivers/video/console/vgacon.c:126:25: error: use of undeclared identifier 'vga_lock'; did you mean 'pgd_lock'?
     126 |         raw_spin_lock_irqsave(&vga_lock, flags);
         |                                ^~~~~~~~
         |                                pgd_lock
   include/linux/spinlock.h:266:26: note: expanded from macro 'raw_spin_lock_irqsave'
     266 |                 _raw_spin_lock_irqsave(lock, flags);    \
         |                                        ^
   include/linux/spinlock_api_up.h:69:60: note: expanded from macro '_raw_spin_lock_irqsave'
      69 | #define _raw_spin_lock_irqsave(lock, flags)     __LOCK_IRQSAVE(lock, flags)
         |                                                                ^
   include/linux/spinlock_api_up.h:40:38: note: expanded from macro '__LOCK_IRQSAVE'
      40 |   do { local_irq_save(flags); __LOCK(lock); } while (0)
         |                                      ^
   include/linux/spinlock_api_up.h:31:35: note: expanded from macro '__LOCK'
      31 |   do { preempt_disable(); ___LOCK(lock); } while (0)
         |                                   ^
   include/linux/spinlock_api_up.h:28:32: note: expanded from macro '___LOCK'
      28 |   do { __acquire(lock); (void)(lock); } while (0)
         |                                ^
   arch/x86/include/asm/pgtable.h:58:19: note: 'pgd_lock' declared here
      58 | extern spinlock_t pgd_lock;
         |                   ^
   drivers/video/console/vgacon.c:131:30: error: use of undeclared identifier 'vga_lock'; did you mean 'pgd_lock'?
     131 |         raw_spin_unlock_irqrestore(&vga_lock, flags);
         |                                     ^~~~~~~~
         |                                     pgd_lock
   include/linux/spinlock.h:282:31: note: expanded from macro 'raw_spin_unlock_irqrestore'
     282 |                 _raw_spin_unlock_irqrestore(lock, flags);       \
         |                                             ^
   include/linux/spinlock_api_up.h:86:26: note: expanded from macro '_raw_spin_unlock_irqrestore'
      86 |                                         __UNLOCK_IRQRESTORE(lock, flags)
         |                                                             ^
   include/linux/spinlock_api_up.h:56:43: note: expanded from macro '__UNLOCK_IRQRESTORE'
      56 |   do { local_irq_restore(flags); __UNLOCK(lock); } while (0)
         |                                           ^
   include/linux/spinlock_api_up.h:46:36: note: expanded from macro '__UNLOCK'
      46 |   do { preempt_enable(); ___UNLOCK(lock); } while (0)
         |                                    ^
   include/linux/spinlock_api_up.h:43:32: note: expanded from macro '___UNLOCK'
      43 |   do { __release(lock); (void)(lock); } while (0)
         |                                ^

71 more lines

Message details and related content
Hi Ville,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-i915/for-linux-next drm-i915/for-linux-next-fixes linus/master v6.18 next-20251208]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-vga-Register-vgaarb-client-later/20251209-030730
base:   https://gitlab.freedesktop.org/drm/tip.git drm-tip
patch link:    https://lore.kernel.org/r/20251208182637.334-15-ville.syrjala%40linux.intel.com
patch subject: [PATCH 14/19] video/vga: Add VGA_IS0_R
config: i386-randconfig-141-20251209 (https://download.01.org/0day-ci/archive/20251209/202512090603.ycfxEuHJ-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251209/202512090603.ycfxEuHJ-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot [off-list ref]
| Closes: https://lore.kernel.org/oe-kbuild-all/202512090603.ycfxEuHJ-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from drivers/gpu/drm/tiny/bochs.c:29:
   include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
     489 | ?
         | ^
   In file included from include/linux/module.h:23,
                    from drivers/gpu/drm/tiny/bochs.c:5:
   drivers/gpu/drm/tiny/bochs.c: In function '__check_modeset':
   drivers/gpu/drm/tiny/bochs.c:66:29: error: 'bochs_modeset' undeclared (first use in this function)
      66 | module_param_named(modeset, bochs_modeset, int, 0444);
         |                             ^~~~~~~~~~~~~
   include/linux/moduleparam.h:430:75: note: in definition of macro '__param_check'
     430 |         static inline type __always_unused *__check_##name(void) { return(p); }
         |                                                                           ^
   include/linux/moduleparam.h:155:9: note: in expansion of macro 'param_check_int'
     155 |         param_check_##type(name, &(value));                                \

33 more lines

quoted
include/linux/device/driver.h:261:1: warning: control reaches end of non-void function [-Wreturn-type]
     261 | } \
         | ^
   include/drm/drm_module.h:93:9: note: in expansion of macro 'module_driver'
      93 |         module_driver(__pci_drv, drm_pci_register_driver_if_modeset, \
         |         ^~~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:835:1: note: in expansion of macro 'drm_module_pci_driver_if_modeset'
     835 | drm_module_pci_driver_if_modeset(bochs_pci_driver, bochs_modeset);
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +261 include/linux/device/driver.h

4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  242  
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  243  /**
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  244   * module_driver() - Helper macro for drivers that don't do anything
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  245   * special in module init/exit. This eliminates a lot of boilerplate.
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  246   * Each module may only use this macro once, and calling it replaces
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  247   * module_init() and module_exit().
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  248   *
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  249   * @__driver: driver name
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  250   * @__register: register function for this driver type
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  251   * @__unregister: unregister function for this driver type
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  252   * @...: Additional arguments to be passed to __register and __unregister.
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  253   *
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  254   * Use this macro to construct bus specific macros for registering
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  255   * drivers, and do not use it on its own.
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  256   */
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  257  #define module_driver(__driver, __register, __unregister, ...) \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  258  static int __init __driver##_init(void) \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  259  { \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  260  	return __register(&(__driver) , ##__VA_ARGS__); \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09 @261  } \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  262  module_init(__driver##_init); \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  263  static void __exit __driver##_exit(void) \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  264  { \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  265  	__unregister(&(__driver) , ##__VA_ARGS__); \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  266  } \
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  267  module_exit(__driver##_exit);
4c002c978b7f2f Greg Kroah-Hartman 2019-12-09  268  

3 more lines

[PATCH v2 14/19] video/vga: Add VGA_IS0_R

Message details and related content
From: Ville Syrjälä <redacted>

Add a proper name for the "Input status register 0" IO address.
Currently we have some code that does read addressed using the
aliasing VGA_MSR_W define, making it unclear what register we're
actually reading.

v2: Remove stray '?'

Cc: Helge Deller <deller@gmx.de>
Cc: <redacted>
Cc: <redacted>
Signed-off-by: Ville Syrjälä <redacted>
---
 include/video/vga.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/include/video/vga.h b/include/video/vga.h
index 468764d6727a..2f13c371800b 100644
--- a/include/video/vga.h
+++ b/include/video/vga.h
@@ -46,6 +46,7 @@
 #define VGA_MIS_R   	0x3CC	/* Misc Output Read Register */
 #define VGA_MIS_W   	0x3C2	/* Misc Output Write Register */
 #define VGA_FTC_R	0x3CA	/* Feature Control Read Register */
+#define VGA_IS0_R	0x3C2	/* Input Status Register 0 */
 #define VGA_IS1_RC  	0x3DA	/* Input Status Register 1 - color emulation */
 #define VGA_IS1_RM  	0x3BA	/* Input Status Register 1 - mono emulation */
 #define VGA_PEL_D   	0x3C9	/* PEL Data Register */
-- 
2.51.2

Re: [PATCH v2 14/19] video/vga: Add VGA_IS0_R

Message details and related content
On Tue, 09 Dec 2025, Ville Syrjala [off-list ref] wrote:
From: Ville Syrjälä <redacted>

Add a proper name for the "Input status register 0" IO address.
Currently we have some code that does read addressed using the
aliasing VGA_MSR_W define, making it unclear what register we're
actually reading.

v2: Remove stray '?'

Cc: Helge Deller <deller@gmx.de>
Cc: <redacted>
Cc: <redacted>
Signed-off-by: Ville Syrjälä <redacted>
Reviewed-by: Jani Nikula <redacted>
quoted hunk
---
 include/video/vga.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/include/video/vga.h b/include/video/vga.h
index 468764d6727a..2f13c371800b 100644
--- a/include/video/vga.h
+++ b/include/video/vga.h
@@ -46,6 +46,7 @@
 #define VGA_MIS_R   	0x3CC	/* Misc Output Read Register */
 #define VGA_MIS_W   	0x3C2	/* Misc Output Write Register */
 #define VGA_FTC_R	0x3CA	/* Feature Control Read Register */
+#define VGA_IS0_R	0x3C2	/* Input Status Register 0 */
 #define VGA_IS1_RC  	0x3DA	/* Input Status Register 1 - color emulation */
 #define VGA_IS1_RM  	0x3BA	/* Input Status Register 1 - mono emulation */
 #define VGA_PEL_D   	0x3C9	/* PEL Data Register */
-- 
Jani Nikula, Intel
Message details and related content
Hi Ville,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm-i915/for-linux-next drm-i915/for-linux-next-fixes drm-xe/drm-xe-next linus/master v6.18 next-20251210]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-vga-Register-vgaarb-client-later/20251209-195929
base:   https://gitlab.freedesktop.org/drm/tip.git drm-tip
patch link:    https://lore.kernel.org/r/20251208182637.334-15-ville.syrjala%40linux.intel.com
patch subject: [PATCH 14/19] video/vga: Add VGA_IS0_R
config: parisc-randconfig-002-20251210 (https://download.01.org/0day-ci/archive/20251210/202512102159.xsvvXCXy-lkp@intel.com/config)
compiler: hppa-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251210/202512102159.xsvvXCXy-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot [off-list ref]
| Closes: https://lore.kernel.org/oe-kbuild-all/202512102159.xsvvXCXy-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/svga.h:6,
                    from drivers/video/fbdev/arkfb.c:24:
   include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from drivers/video/fbdev/arkfb.c:28:
   include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   drivers/video/fbdev/arkfb.c:68:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_h_total_regs[]        = {{0x00, 0, 7}, {0x41, 7, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:69:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_h_display_regs[]      = {{0x01, 0, 7}, {0x41, 6, 6}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~

40 more lines

quoted
drivers/video/fbdev/arkfb.c:152:21: error: dereferencing pointer to incomplete type 'struct arkfb_info'
     svga_tilecursor(par->state.vgabase, info, cursor);
                        ^~
   drivers/video/fbdev/arkfb.c: At top level:
   drivers/video/fbdev/arkfb.c:303:29: warning: 'struct dac_info' declared inside parameter list will not be visible outside of this definition or declaration
     int (*dac_get_mode)(struct dac_info *info);
                                ^~~~~~~~
   drivers/video/fbdev/arkfb.c:304:29: warning: 'struct dac_info' declared inside parameter list will not be visible outside of this definition or declaration
     int (*dac_set_mode)(struct dac_info *info, int mode);
                                ^~~~~~~~
   drivers/video/fbdev/arkfb.c:305:29: warning: 'struct dac_info' declared inside parameter list will not be visible outside of this definition or declaration
     int (*dac_get_freq)(struct dac_info *info, int channel);
                                ^~~~~~~~
   drivers/video/fbdev/arkfb.c:306:29: warning: 'struct dac_info' declared inside parameter list will not be visible outside of this definition or declaration
     int (*dac_set_freq)(struct dac_info *info, int channel, u32 freq);
                                ^~~~~~~~
   drivers/video/fbdev/arkfb.c:307:29: warning: 'struct dac_info' declared inside parameter list will not be visible outside of this definition or declaration
     void (*dac_release)(struct dac_info *info);
                                ^~~~~~~~
   drivers/video/fbdev/arkfb.c: In function 'dac_set_mode':
   drivers/video/fbdev/arkfb.c:339:36: error: passing argument 1 of 'info->dacops->dac_set_mode' from incompatible pointer type [-Werror=incompatible-pointer-types]
     return info->dacops->dac_set_mode(info, mode);
                                       ^~~~
   drivers/video/fbdev/arkfb.c:339:36: note: expected 'struct dac_info *' but argument is of type 'struct dac_info *'
   drivers/video/fbdev/arkfb.c: In function 'dac_set_freq':
   drivers/video/fbdev/arkfb.c:344:36: error: passing argument 1 of 'info->dacops->dac_set_freq' from incompatible pointer type [-Werror=incompatible-pointer-types]
     return info->dacops->dac_set_freq(info, channel, freq);
                                       ^~~~
   drivers/video/fbdev/arkfb.c:344:36: note: expected 'struct dac_info *' but argument is of type 'struct dac_info *'
   drivers/video/fbdev/arkfb.c: In function 'dac_release':
   drivers/video/fbdev/arkfb.c:349:28: error: passing argument 1 of 'info->dacops->dac_release' from incompatible pointer type [-Werror=incompatible-pointer-types]
     info->dacops->dac_release(info);
                               ^~~~
   drivers/video/fbdev/arkfb.c:349:28: note: expected 'struct dac_info *' but argument is of type 'struct dac_info *'
   drivers/video/fbdev/arkfb.c: At top level:
   drivers/video/fbdev/arkfb.c:426:18: error: initialization of 'int (*)(struct dac_info *, int)' from incompatible pointer type 'int (*)(struct dac_info *, int)' [-Werror=incompatible-pointer-types]
     .dac_set_mode = ics5342_set_mode,
                     ^~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:426:18: note: (near initialization for 'ics5342_ops.dac_set_mode')
   drivers/video/fbdev/arkfb.c:427:18: error: initialization of 'int (*)(struct dac_info *, int,  u32)' {aka 'int (*)(struct dac_info *, int,  unsigned int)'} from incompatible pointer type 'int (*)(struct dac_info *, int,  u32)' {aka 'int (*)(struct dac_info *, int,  unsigned int)'} [-Werror=incompatible-pointer-types]
     .dac_set_freq = ics5342_set_freq,

119 more lines

quoted
drivers/video/fbdev/vt8623fb.c:119:21: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     svga_tilecursor(par->state.vgabase, info, cursor);
                        ^~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623_set_pixclock':
   drivers/video/fbdev/vt8623fb.c:265:20: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     regval = vga_r(par->state.vgabase, VGA_MIS_R);
                       ^~
   In file included from include/linux/seqlock.h:19,
                    from include/linux/mmzone.h:17,
                    from include/linux/gfp.h:7,
                    from include/linux/umh.h:4,
                    from include/linux/kmod.h:9,
                    from include/linux/module.h:18,
                    from drivers/video/fbdev/vt8623fb.c:16:
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623fb_open':
   drivers/video/fbdev/vt8623fb.c:284:18: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     mutex_lock(&(par->open_lock));
                     ^~
   include/linux/mutex.h:168:44: note: in definition of macro 'mutex_lock'
    #define mutex_lock(lock) mutex_lock_nested(lock, 0)
                                               ^~~~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623fb_release':
   drivers/video/fbdev/vt8623fb.c:306:18: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     mutex_lock(&(par->open_lock));
                     ^~
   include/linux/mutex.h:168:44: note: in definition of macro 'mutex_lock'
    #define mutex_lock(lock) mutex_lock_nested(lock, 0)
                                               ^~~~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623fb_set_par':
   drivers/video/fbdev/vt8623fb.c:431:20: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     svga_wseq_mask(par->state.vgabase, 0x10, 0x01, 0x01);
                       ^~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623fb_blank':
   drivers/video/fbdev/vt8623fb.c:593:21: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
      svga_wcrt_mask(par->state.vgabase, 0x36, 0x00, 0x30);
                        ^~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623fb_pan_display':
   drivers/video/fbdev/vt8623fb.c:639:21: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     svga_wcrt_multi(par->state.vgabase, vt8623_start_address_regs, offset);
                        ^~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623_pci_probe':

142 more lines

Message details and related content
Hi Ville,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]
[cannot apply to drm-i915/for-linux-next drm-i915/for-linux-next-fixes drm-xe/drm-xe-next linus/master v6.18 next-20251210]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-vga-Register-vgaarb-client-later/20251209-195929
base:   https://gitlab.freedesktop.org/drm/tip.git drm-tip
patch link:    https://lore.kernel.org/r/20251208182637.334-15-ville.syrjala%40linux.intel.com
patch subject: [PATCH 14/19] video/vga: Add VGA_IS0_R
config: s390-randconfig-002-20251210 (https://download.01.org/0day-ci/archive/20251210/202512102200.KIAC3RLu-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 9.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251210/202512102200.KIAC3RLu-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot [off-list ref]
| Closes: https://lore.kernel.org/oe-kbuild-all/202512102200.KIAC3RLu-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/video/vgastate.c:20:
   include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
     489 | ?
         | ^
   drivers/video/vgastate.c: In function 'save_vga_text':
quoted
drivers/video/vgastate.c:89:9: error: dereferencing pointer to incomplete type 'struct regstate'
      89 |    saved->vga_font0[i] = vga_r(fbbase, i);
         |         ^~
   drivers/video/vgastate.c: In function 'restore_vga_text':
   drivers/video/vgastate.c:175:26: error: dereferencing pointer to incomplete type 'struct regstate'
     175 |    vga_w(fbbase, i, saved->vga_font0[i]);
         |                          ^~
   drivers/video/vgastate.c: In function 'save_vga_mode':
   drivers/video/vgastate.c:232:7: error: dereferencing pointer to incomplete type 'struct regstate'
     232 |  saved->misc = vga_r(state->vgabase, VGA_MIS_R);
         |       ^~
   drivers/video/vgastate.c: In function 'restore_vga_mode':
   drivers/video/vgastate.c:263:40: error: dereferencing pointer to incomplete type 'struct regstate'
     263 |  vga_w(state->vgabase, VGA_MIS_W, saved->misc);
         |                                        ^~
   drivers/video/vgastate.c: In function 'save_vga_cmap':
   drivers/video/vgastate.c:319:8: error: dereferencing pointer to incomplete type 'struct regstate'
     319 |   saved->vga_cmap[i] = vga_r(state->vgabase, VGA_PEL_D);
         |        ^~
   drivers/video/vgastate.c: In function 'restore_vga_cmap':
   drivers/video/vgastate.c:332:41: error: dereferencing pointer to incomplete type 'struct regstate'
     332 |   vga_w(state->vgabase, VGA_PEL_D, saved->vga_cmap[i]);
         |                                         ^~
   drivers/video/vgastate.c: In function 'vga_cleanup':
   drivers/video/vgastate.c:340:14: error: dereferencing pointer to incomplete type 'struct regstate'
     340 |   vfree(saved->vga_font0);
         |              ^~
   In file included from include/linux/workqueue.h:9,
                    from include/linux/mm_types.h:19,
                    from include/linux/mmzone.h:22,
                    from include/linux/gfp.h:7,
                    from include/linux/umh.h:4,
                    from include/linux/kmod.h:9,
                    from include/linux/module.h:18,
                    from drivers/video/vgastate.c:16:
   drivers/video/vgastate.c: In function 'save_vga':
   drivers/video/vgastate.c:354:25: error: invalid application of 'sizeof' to incomplete type 'struct regstate'
     354 |  saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
         |                         ^~~~~~
   include/linux/alloc_tag.h:251:9: note: in definition of macro 'alloc_hooks_tag'
     251 |  typeof(_do_alloc) _res;      \

136 more lines

Re: [PATCH v2 14/19] video/vga: Add VGA_IS0_R

Message details and related content
On Tue, Dec 09, 2025 at 12:55:49PM +0200, Jani Nikula wrote:
On Tue, 09 Dec 2025, Ville Syrjala [off-list ref] wrote:
quoted
From: Ville Syrjälä <redacted>

Add a proper name for the "Input status register 0" IO address.
Currently we have some code that does read addressed using the
aliasing VGA_MSR_W define, making it unclear what register we're
actually reading.

v2: Remove stray '?'

Cc: Helge Deller <deller@gmx.de>
Helge, can you toss me an ack to merge this via drm-intel please?
quoted
Cc: <redacted>
Cc: <redacted>
Signed-off-by: Ville Syrjälä <redacted>
Reviewed-by: Jani Nikula <redacted>
quoted
---
 include/video/vga.h | 1 +
 1 file changed, 1 insertion(+)
diff --git a/include/video/vga.h b/include/video/vga.h
index 468764d6727a..2f13c371800b 100644
--- a/include/video/vga.h
+++ b/include/video/vga.h
@@ -46,6 +46,7 @@
 #define VGA_MIS_R   	0x3CC	/* Misc Output Read Register */
 #define VGA_MIS_W   	0x3C2	/* Misc Output Write Register */
 #define VGA_FTC_R	0x3CA	/* Feature Control Read Register */
+#define VGA_IS0_R	0x3C2	/* Input Status Register 0 */
 #define VGA_IS1_RC  	0x3DA	/* Input Status Register 1 - color emulation */
 #define VGA_IS1_RM  	0x3BA	/* Input Status Register 1 - mono emulation */
 #define VGA_PEL_D   	0x3C9	/* PEL Data Register */
-- 
Jani Nikula, Intel
-- 
Ville Syrjälä
Intel

Re: [PATCH v2 14/19] video/vga: Add VGA_IS0_R

Message details and related content
On 12/18/25 17:56, Ville Syrjälä wrote:
On Tue, Dec 09, 2025 at 12:55:49PM +0200, Jani Nikula wrote:
quoted
On Tue, 09 Dec 2025, Ville Syrjala [off-list ref] wrote:
quoted
From: Ville Syrjälä <redacted>

Add a proper name for the "Input status register 0" IO address.
Currently we have some code that does read addressed using the
aliasing VGA_MSR_W define, making it unclear what register we're
actually reading.

v2: Remove stray '?'

Cc: Helge Deller <deller@gmx.de>
Helge, can you toss me an ack to merge this via drm-intel please?
of course!

Acked-by: Helge Deller <deller@gmx.de>

 
quoted
quoted
Cc: <redacted>
Cc: <redacted>
Signed-off-by: Ville Syrjälä <redacted>
Reviewed-by: Jani Nikula <redacted>
quoted
---
  include/video/vga.h | 1 +
  1 file changed, 1 insertion(+)
diff --git a/include/video/vga.h b/include/video/vga.h
index 468764d6727a..2f13c371800b 100644
--- a/include/video/vga.h
+++ b/include/video/vga.h
@@ -46,6 +46,7 @@
  #define VGA_MIS_R   	0x3CC	/* Misc Output Read Register */
  #define VGA_MIS_W   	0x3C2	/* Misc Output Write Register */
  #define VGA_FTC_R	0x3CA	/* Feature Control Read Register */
+#define VGA_IS0_R	0x3C2	/* Input Status Register 0 */
  #define VGA_IS1_RC  	0x3DA	/* Input Status Register 1 - color emulation */
  #define VGA_IS1_RM  	0x3BA	/* Input Status Register 1 - mono emulation */
  #define VGA_PEL_D   	0x3C9	/* PEL Data Register */
-- 
Jani Nikula, Intel
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help