linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 14/19] video/vga: Add VGA_IS0_R
       [not found] <20251208182637.334-1-ville.syrjala@linux.intel.com>
@ 2025-12-08 18:26 ` Ville Syrjala
  2025-12-08 21:07   ` kernel test robot
                     ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Ville Syrjala @ 2025-12-08 18:26 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe, Helge Deller, linux-fbdev, dri-devel

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

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: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 14/19] video/vga: Add VGA_IS0_R
  2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
@ 2025-12-08 21:07   ` kernel test robot
  2025-12-08 21:18   ` kernel test robot
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2025-12-08 21:07 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx
  Cc: oe-kbuild-all, intel-xe, Helge Deller, linux-fbdev, dri-devel

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 <lkp@intel.com>
| 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:
>> include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from drivers/video/aperture.c:14:
>> include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   drivers/video/aperture.c: In function 'devm_aperture_acquire_release':
>> 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':
>> 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:
>> 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':
>> 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:
>> 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:
>> 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:
>> 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':
>> 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':
>> 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':
>> 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,
                                               ^~~~~~~~~
   include/linux/iosys-map.h: In function 'iosys_map_memset':
   include/linux/iosys-map.h:339:9: error: dereferencing pointer to incomplete type 'struct iosys_map'
     if (dst->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_bmc.c:10:
   include/linux/dma-buf.h: At top level:
>> 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);
                                                   ^~~~~~~~~
>> 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:
>> 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:
>> 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':
>> 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':
>> 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:
>> 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:
>> 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':
>> 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:
>> 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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 14/19] video/vga: Add VGA_IS0_R
  2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
  2025-12-08 21:07   ` kernel test robot
@ 2025-12-08 21:18   ` kernel test robot
  2025-12-08 22:22   ` kernel test robot
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2025-12-08 21:18 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx
  Cc: llvm, oe-kbuild-all, intel-xe, Helge Deller, linux-fbdev,
	dri-devel

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 <lkp@intel.com>
| 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:
>> include/video/vga.h:489:1: error: expected identifier or '('
     489 | ?
         | ^
>> 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)
         |                                ^
   arch/x86/include/asm/pgtable.h:58:19: note: 'pgd_lock' declared here
      58 | extern spinlock_t pgd_lock;
         |                   ^
   drivers/video/console/vgacon.c:485:25: error: use of undeclared identifier 'vga_lock'; did you mean 'pgd_lock'?
     485 |         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:503:30: error: use of undeclared identifier 'vga_lock'; did you mean 'pgd_lock'?
     503 |         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)
         |                                ^
   arch/x86/include/asm/pgtable.h:58:19: note: 'pgd_lock' declared here
      58 | extern spinlock_t pgd_lock;
         |                   ^
   drivers/video/console/vgacon.c:563:25: error: use of undeclared identifier 'vga_lock'; did you mean 'pgd_lock'?
     563 |         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)
         |                                      ^


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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 14/19] video/vga: Add VGA_IS0_R
  2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
  2025-12-08 21:07   ` kernel test robot
  2025-12-08 21:18   ` kernel test robot
@ 2025-12-08 22:22   ` kernel test robot
  2025-12-09  7:55   ` [PATCH v2 " Ville Syrjala
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2025-12-08 22:22 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx
  Cc: oe-kbuild-all, intel-xe, Helge Deller, linux-fbdev, dri-devel

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 <lkp@intel.com>
| 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));                                \
         |         ^~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:66:1: note: in expansion of macro 'module_param_named'
      66 | 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
      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));                                \
         |         ^~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c:66:1: note: in expansion of macro 'module_param_named'
      66 | module_param_named(modeset, bochs_modeset, int, 0444);
         | ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/tiny/bochs.c: At top level:
   drivers/gpu/drm/tiny/bochs.c:66:29: error: 'bochs_modeset' undeclared here (not in a function)
      66 | module_param_named(modeset, bochs_modeset, int, 0444);
         |                             ^~~~~~~~~~~~~
   include/linux/moduleparam.h:298:61: note: in definition of macro '__module_param_call'
     298 |             VERIFY_OCTAL_PERMISSIONS(perm), level, flags, { arg } }
         |                                                             ^~~
   include/linux/moduleparam.h:156:9: note: in expansion of macro 'module_param_cb'
     156 |         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'
      66 | module_param_named(modeset, bochs_modeset, int, 0444);
         | ^~~~~~~~~~~~~~~~~~
   In file included from include/linux/device.h:32,
                    from include/linux/pci.h:37,
                    from drivers/gpu/drm/tiny/bochs.c:6:
   drivers/gpu/drm/tiny/bochs.c: In function 'bochs_pci_driver_init':
>> 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  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 14/19] video/vga: Add VGA_IS0_R
  2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
                     ` (2 preceding siblings ...)
  2025-12-08 22:22   ` kernel test robot
@ 2025-12-09  7:55   ` Ville Syrjala
  2025-12-09 10:55     ` Jani Nikula
  2025-12-10 14:13   ` [PATCH " kernel test robot
  2025-12-10 14:24   ` kernel test robot
  5 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjala @ 2025-12-09  7:55 UTC (permalink / raw)
  To: intel-gfx; +Cc: intel-xe, Helge Deller, linux-fbdev, dri-devel

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

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: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 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


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 14/19] video/vga: Add VGA_IS0_R
  2025-12-09  7:55   ` [PATCH v2 " Ville Syrjala
@ 2025-12-09 10:55     ` Jani Nikula
  2025-12-18 16:56       ` Ville Syrjälä
  0 siblings, 1 reply; 10+ messages in thread
From: Jani Nikula @ 2025-12-09 10:55 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx; +Cc: intel-xe, Helge Deller, linux-fbdev, dri-devel

On Tue, 09 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> 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: linux-fbdev@vger.kernel.org
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 14/19] video/vga: Add VGA_IS0_R
  2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
                     ` (3 preceding siblings ...)
  2025-12-09  7:55   ` [PATCH v2 " Ville Syrjala
@ 2025-12-10 14:13   ` kernel test robot
  2025-12-10 14:24   ` kernel test robot
  5 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2025-12-10 14:13 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx
  Cc: oe-kbuild-all, intel-xe, Helge Deller, linux-fbdev, dri-devel

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 <lkp@intel.com>
| 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};
                                   ^~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:70:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_h_blank_start_regs[]  = {{0x02, 0, 7}, {0x41, 5, 5}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:71:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_h_blank_end_regs[]    = {{0x03, 0, 4}, {0x05, 7, 7 }, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:72:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_h_sync_start_regs[]   = {{0x04, 0, 7}, {0x41, 4, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:73:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_h_sync_end_regs[]     = {{0x05, 0, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:75:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_v_total_regs[]        = {{0x06, 0, 7}, {0x07, 0, 0}, {0x07, 5, 5}, {0x40, 7, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:76:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_v_display_regs[]      = {{0x12, 0, 7}, {0x07, 1, 1}, {0x07, 6, 6}, {0x40, 6, 6}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:77:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_v_blank_start_regs[]  = {{0x15, 0, 7}, {0x07, 3, 3}, {0x09, 5, 5}, {0x40, 5, 5}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:79:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_v_blank_end_regs[]    = {{0x16, 0, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:80:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_v_sync_start_regs[]   = {{0x10, 0, 7}, {0x07, 2, 2}, {0x07, 7, 7}, {0x40, 4, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:81:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_v_sync_end_regs[]     = {{0x11, 0, 3}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:83:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_line_compare_regs[]   = {{0x18, 0, 7}, {0x07, 4, 4}, {0x09, 6, 6}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:84:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_start_address_regs[]  = {{0x0d, 0, 7}, {0x0c, 0, 7}, {0x40, 0, 2}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:85:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset ark_offset_regs[]         = {{0x13, 0, 7}, {0x41, 3, 3}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c: In function 'arkfb_tilecursor':
>> 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,
                     ^~~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:427:18: note: (near initialization for 'ics5342_ops.dac_set_freq')
   drivers/video/fbdev/arkfb.c:428:17: error: initialization of 'void (*)(struct dac_info *)' from incompatible pointer type 'void (*)(struct dac_info *)' [-Werror=incompatible-pointer-types]
     .dac_release = ics5342_release
                    ^~~~~~~~~~~~~~~
   drivers/video/fbdev/arkfb.c:428:17: note: (near initialization for 'ics5342_ops.dac_release')
   drivers/video/fbdev/arkfb.c: In function 'ark_dac_read_regs':
   drivers/video/fbdev/arkfb.c:461:23: error: dereferencing pointer to incomplete type 'struct arkfb_info'
     regval = vga_rseq(par->state.vgabase, 0x1C);
                          ^~
   drivers/video/fbdev/arkfb.c: In function 'ark_dac_write_regs':
   drivers/video/fbdev/arkfb.c:480:23: error: dereferencing pointer to incomplete type 'struct arkfb_info'
     regval = vga_rseq(par->state.vgabase, 0x1C);
                          ^~
   drivers/video/fbdev/arkfb.c: In function 'ark_set_pixclock':
   drivers/video/fbdev/arkfb.c:498:27: error: dereferencing pointer to incomplete type 'struct arkfb_info'
     int rv = dac_set_freq(par->dac, 0, 1000000000 / pixclock);
                              ^~
   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/arkfb.c:15:
   drivers/video/fbdev/arkfb.c: In function 'arkfb_open':
   drivers/video/fbdev/arkfb.c:516:18: error: dereferencing pointer to incomplete type 'struct arkfb_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/arkfb.c: In function 'arkfb_release':
   drivers/video/fbdev/arkfb.c:540:18: error: dereferencing pointer to incomplete type 'struct arkfb_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/arkfb.c: In function 'arkfb_set_par':
   drivers/video/fbdev/arkfb.c:658:20: error: dereferencing pointer to incomplete type 'struct arkfb_info'
     svga_wcrt_mask(par->state.vgabase, 0x11, 0x00, 0x80);
                       ^~
   drivers/video/fbdev/arkfb.c: In function 'arkfb_blank':
   drivers/video/fbdev/arkfb.c:881:21: error: dereferencing pointer to incomplete type 'struct arkfb_info'
      svga_wseq_mask(par->state.vgabase, 0x01, 0x00, 0x20);
                        ^~
   drivers/video/fbdev/arkfb.c: In function 'arkfb_pan_display':
   drivers/video/fbdev/arkfb.c:920:21: error: dereferencing pointer to incomplete type 'struct arkfb_info'
     svga_wcrt_multi(par->state.vgabase, ark_start_address_regs, offset);
                        ^~
   drivers/video/fbdev/arkfb.c: In function 'ark_pci_probe':
   drivers/video/fbdev/arkfb.c:973:34: error: invalid application of 'sizeof' to incomplete type 'struct arkfb_info'
     info = framebuffer_alloc(sizeof(struct arkfb_info), &(dev->dev));
                                     ^~~~~~
   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,
--
   In file included from include/linux/svga.h:6,
                    from drivers/video/fbdev/vt8623fb.c:24:
   include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   In file included from drivers/video/fbdev/vt8623fb.c:28:
   include/video/vga.h:489:1: error: expected identifier or '(' before '?' token
    ?
    ^
   drivers/video/fbdev/vt8623fb.c:66:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_h_total_regs[]       = {{0x00, 0, 7}, {0x36, 3, 3}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:67:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_h_display_regs[]     = {{0x01, 0, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:68:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_h_blank_start_regs[] = {{0x02, 0, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:69:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_h_blank_end_regs[]   = {{0x03, 0, 4}, {0x05, 7, 7}, {0x33, 5, 5}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:70:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_h_sync_start_regs[]  = {{0x04, 0, 7}, {0x33, 4, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:71:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_h_sync_end_regs[]    = {{0x05, 0, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:73:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_v_total_regs[]       = {{0x06, 0, 7}, {0x07, 0, 0}, {0x07, 5, 5}, {0x35, 0, 0}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:74:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_v_display_regs[]     = {{0x12, 0, 7}, {0x07, 1, 1}, {0x07, 6, 6}, {0x35, 2, 2}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:75:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_v_blank_start_regs[] = {{0x15, 0, 7}, {0x07, 3, 3}, {0x09, 5, 5}, {0x35, 3, 3}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:76:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_v_blank_end_regs[]   = {{0x16, 0, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:77:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_v_sync_start_regs[]  = {{0x10, 0, 7}, {0x07, 2, 2}, {0x07, 7, 7}, {0x35, 1, 1}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:78:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_v_sync_end_regs[]    = {{0x11, 0, 3}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:80:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_offset_regs[]        = {{0x13, 0, 7}, {0x35, 5, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:81:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_line_compare_regs[]  = {{0x18, 0, 7}, {0x07, 4, 4}, {0x09, 6, 6}, {0x33, 0, 2}, {0x35, 4, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:82:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_fetch_count_regs[]   = {{0x1C, 0, 7}, {0x1D, 0, 1}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:83:32: error: array type has incomplete element type 'struct vga_regset'
    static const struct vga_regset vt8623_start_address_regs[] = {{0x0d, 0, 7}, {0x0c, 0, 7}, {0x34, 0, 7}, {0x48, 0, 1}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623fb_tilecursor':
>> 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':
   drivers/video/fbdev/vt8623fb.c:690:34: error: invalid application of 'sizeof' to incomplete type 'struct vt8623fb_info'
     info = framebuffer_alloc(sizeof(struct vt8623fb_info), &(dev->dev));
                                     ^~~~~~
   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:695:17: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
     mutex_init(&par->open_lock);
                    ^~
   include/linux/mutex.h:64:16: note: in definition of macro 'mutex_init'
     __mutex_init((mutex), #mutex, &__key);    \
                   ^~~~~
   drivers/video/fbdev/vt8623fb.c: In function 'vt8623_pci_remove':
   drivers/video/fbdev/vt8623fb.c:823:23: error: dereferencing pointer to incomplete type 'struct vt8623fb_info'
      arch_phys_wc_del(par->wc_cookie);
                          ^~
   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 'vt8623_pci_suspend':
   drivers/video/fbdev/vt8623fb.c:847: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 'vt8623_pci_resume':
   drivers/video/fbdev/vt8623fb.c:874: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)
                                               ^~~~
   At top level:
   drivers/video/fbdev/vt8623fb.c:83:32: warning: 'vt8623_start_address_regs' defined but not used [-Wunused-variable]
    static const struct vga_regset vt8623_start_address_regs[] = {{0x0d, 0, 7}, {0x0c, 0, 7}, {0x34, 0, 7}, {0x48, 0, 1}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:82:32: warning: 'vt8623_fetch_count_regs' defined but not used [-Wunused-variable]
    static const struct vga_regset vt8623_fetch_count_regs[]   = {{0x1C, 0, 7}, {0x1D, 0, 1}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:81:32: warning: 'vt8623_line_compare_regs' defined but not used [-Wunused-variable]
    static const struct vga_regset vt8623_line_compare_regs[]  = {{0x18, 0, 7}, {0x07, 4, 4}, {0x09, 6, 6}, {0x33, 0, 2}, {0x35, 4, 4}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:80:32: warning: 'vt8623_offset_regs' defined but not used [-Wunused-variable]
    static const struct vga_regset vt8623_offset_regs[]        = {{0x13, 0, 7}, {0x35, 5, 7}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:78:32: warning: 'vt8623_v_sync_end_regs' defined but not used [-Wunused-variable]
    static const struct vga_regset vt8623_v_sync_end_regs[]    = {{0x11, 0, 3}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/vt8623fb.c:77:32: warning: 'vt8623_v_sync_start_regs' defined but not used [-Wunused-variable]
    static const struct vga_regset vt8623_v_sync_start_regs[]  = {{0x10, 0, 7}, {0x07, 2, 2}, {0x07, 7, 7}, {0x35, 1, 1}, VGA_REGSET_END};
                                   ^~~~~~~~~~~~~~~~~~~~~~~~
..


vim +152 drivers/video/fbdev/arkfb.c

681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   82  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   83  static const struct vga_regset ark_line_compare_regs[]   = {{0x18, 0, 7}, {0x07, 4, 4}, {0x09, 6, 6}, VGA_REGSET_END};
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  @84  static const struct vga_regset ark_start_address_regs[]  = {{0x0d, 0, 7}, {0x0c, 0, 7}, {0x40, 0, 2}, VGA_REGSET_END};
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   85  static const struct vga_regset ark_offset_regs[]         = {{0x13, 0, 7}, {0x41, 3, 3}, VGA_REGSET_END};
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   86  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   87  static const struct svga_timing_regs ark_timing_regs     = {
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   88  	ark_h_total_regs, ark_h_display_regs, ark_h_blank_start_regs,
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   89  	ark_h_blank_end_regs, ark_h_sync_start_regs, ark_h_sync_end_regs,
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   90  	ark_v_total_regs, ark_v_display_regs, ark_v_blank_start_regs,
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   91  	ark_v_blank_end_regs, ark_v_sync_start_regs, ark_v_sync_end_regs,
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   92  };
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   93  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   94  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   95  /* ------------------------------------------------------------------------- */
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   96  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   97  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   98  /* Module parameters */
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09   99  
48c68c4f1b5424 drivers/video/arkfb.c Greg Kroah-Hartman 2012-12-21  100  static char *mode_option = "640x480-8@60";
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  101  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  102  MODULE_AUTHOR("(c) 2007 Ondrej Zajicek <santiago@crfreenet.org>");
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  103  MODULE_LICENSE("GPL");
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  104  MODULE_DESCRIPTION("fbdev driver for ARK 2000PV");
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  105  
1abf91729faf2f drivers/video/arkfb.c Krzysztof Helt     2008-04-28  106  module_param(mode_option, charp, 0444);
1abf91729faf2f drivers/video/arkfb.c Krzysztof Helt     2008-04-28  107  MODULE_PARM_DESC(mode_option, "Default video mode ('640x480-8@60', etc)");
1abf91729faf2f drivers/video/arkfb.c Krzysztof Helt     2008-04-28  108  module_param_named(mode, mode_option, charp, 0444);
1abf91729faf2f drivers/video/arkfb.c Krzysztof Helt     2008-04-28  109  MODULE_PARM_DESC(mode, "Default video mode ('640x480-8@60', etc) (deprecated)");
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  110  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  111  static int threshold = 4;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  112  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  113  module_param(threshold, int, 0644);
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  114  MODULE_PARM_DESC(threshold, "FIFO threshold");
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  115  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  116  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  117  /* ------------------------------------------------------------------------- */
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  118  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  119  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  120  static void arkfb_settile(struct fb_info *info, struct fb_tilemap *map)
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  121  {
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  122  	const u8 *font = map->data;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  123  	u8 __iomem *fb = (u8 __iomem *)info->screen_base;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  124  	int i, c;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  125  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  126  	if ((map->width != 8) || (map->height != 16) ||
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  127  	    (map->depth != 1) || (map->length != 256)) {
31b6780c15a4e3 drivers/video/arkfb.c Joe Perches        2013-09-19  128  		fb_err(info, "unsupported font parameters: width %d, height %d, depth %d, length %d\n",
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  129  		       map->width, map->height, map->depth, map->length);
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  130  		return;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  131  	}
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  132  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  133  	fb += 2;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  134  	for (c = 0; c < map->length; c++) {
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  135  		for (i = 0; i < map->height; i++) {
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  136  			fb_writeb(font[i], &fb[i * 4]);
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  137  			fb_writeb(font[i], &fb[i * 4 + (128 * 8)]);
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  138  		}
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  139  		fb += 128;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  140  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  141  		if ((c % 8) == 7)
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  142  			fb += 128*8;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  143  
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  144  		font += map->height;
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  145  	}
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  146  }
681e14730c73cc drivers/video/arkfb.c Ondrej Zajicek     2007-05-09  147  
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11  148  static void arkfb_tilecursor(struct fb_info *info, struct fb_tilecursor *cursor)
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11  149  {
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11  150  	struct arkfb_info *par = info->par;
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11  151  
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11 @152  	svga_tilecursor(par->state.vgabase, info, cursor);
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11  153  }
55db0923884554 drivers/video/arkfb.c David Miller       2011-01-11  154  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 14/19] video/vga: Add VGA_IS0_R
  2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
                     ` (4 preceding siblings ...)
  2025-12-10 14:13   ` [PATCH " kernel test robot
@ 2025-12-10 14:24   ` kernel test robot
  5 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2025-12-10 14:24 UTC (permalink / raw)
  To: Ville Syrjala, intel-gfx
  Cc: oe-kbuild-all, intel-xe, Helge Deller, linux-fbdev, dri-devel

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 <lkp@intel.com>
| 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':
>> 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;      \
         |         ^~~~~~~~~
   include/linux/slab.h:1096:25: note: in expansion of macro 'alloc_hooks'
    1096 | #define kzalloc(...)    alloc_hooks(kzalloc_noprof(__VA_ARGS__))
         |                         ^~~~~~~~~~~
   drivers/video/vgastate.c:354:10: note: in expansion of macro 'kzalloc'
     354 |  saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
         |          ^~~~~~~
   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:255:10: note: in definition of macro 'alloc_hooks_tag'
     255 |   _res = _do_alloc;     \
         |          ^~~~~~~~~
   include/linux/slab.h:1096:25: note: in expansion of macro 'alloc_hooks'
    1096 | #define kzalloc(...)    alloc_hooks(kzalloc_noprof(__VA_ARGS__))
         |                         ^~~~~~~~~~~
   drivers/video/vgastate.c:354:10: note: in expansion of macro 'kzalloc'
     354 |  saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
         |          ^~~~~~~
   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:258:10: note: in definition of macro 'alloc_hooks_tag'
     258 |   _res = _do_alloc;     \
         |          ^~~~~~~~~
   include/linux/slab.h:1096:25: note: in expansion of macro 'alloc_hooks'
    1096 | #define kzalloc(...)    alloc_hooks(kzalloc_noprof(__VA_ARGS__))
         |                         ^~~~~~~~~~~
   drivers/video/vgastate.c:354:10: note: in expansion of macro 'kzalloc'
     354 |  saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
         |          ^~~~~~~
   drivers/video/vgastate.c:354:8: warning: assignment to 'struct regstate *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     354 |  saved = kzalloc(sizeof(struct regstate), GFP_KERNEL);
         |        ^
   drivers/video/vgastate.c:362:8: error: dereferencing pointer to incomplete type 'struct regstate'
     362 |   saved->vga_cmap = vmalloc(768);
         |        ^~


vim +89 drivers/video/vgastate.c

^1da177e4c3f41 Linus Torvalds 2005-04-16   47  
^1da177e4c3f41 Linus Torvalds 2005-04-16   48  static void save_vga_text(struct vgastate *state, void __iomem *fbbase)
^1da177e4c3f41 Linus Torvalds 2005-04-16   49  {
^1da177e4c3f41 Linus Torvalds 2005-04-16   50  	struct regstate *saved = (struct regstate *) state->vidstate;
^1da177e4c3f41 Linus Torvalds 2005-04-16   51  	int i;
^1da177e4c3f41 Linus Torvalds 2005-04-16   52  	u8 misc, attr10, gr4, gr5, gr6, seq1, seq2, seq4;
0449359f053829 Ondrej Zajicek 2007-05-08   53  	unsigned short iobase;
^1da177e4c3f41 Linus Torvalds 2005-04-16   54  
^1da177e4c3f41 Linus Torvalds 2005-04-16   55  	/* if in graphics mode, no need to save */
0449359f053829 Ondrej Zajicek 2007-05-08   56  	misc = vga_r(state->vgabase, VGA_MIS_R);
0449359f053829 Ondrej Zajicek 2007-05-08   57  	iobase = (misc & 1) ? 0x3d0 : 0x3b0;
0449359f053829 Ondrej Zajicek 2007-05-08   58  
0449359f053829 Ondrej Zajicek 2007-05-08   59  	vga_r(state->vgabase, iobase + 0xa);
0449359f053829 Ondrej Zajicek 2007-05-08   60  	vga_w(state->vgabase, VGA_ATT_W, 0x00);
^1da177e4c3f41 Linus Torvalds 2005-04-16   61  	attr10 = vga_rattr(state->vgabase, 0x10);
0449359f053829 Ondrej Zajicek 2007-05-08   62  	vga_r(state->vgabase, iobase + 0xa);
0449359f053829 Ondrej Zajicek 2007-05-08   63  	vga_w(state->vgabase, VGA_ATT_W, 0x20);
0449359f053829 Ondrej Zajicek 2007-05-08   64  
^1da177e4c3f41 Linus Torvalds 2005-04-16   65  	if (attr10 & 1)
^1da177e4c3f41 Linus Torvalds 2005-04-16   66  		return;
^1da177e4c3f41 Linus Torvalds 2005-04-16   67  
^1da177e4c3f41 Linus Torvalds 2005-04-16   68  	/* save regs */
^1da177e4c3f41 Linus Torvalds 2005-04-16   69  	gr4 = vga_rgfx(state->vgabase, VGA_GFX_PLANE_READ);
^1da177e4c3f41 Linus Torvalds 2005-04-16   70  	gr5 = vga_rgfx(state->vgabase, VGA_GFX_MODE);
^1da177e4c3f41 Linus Torvalds 2005-04-16   71  	gr6 = vga_rgfx(state->vgabase, VGA_GFX_MISC);
^1da177e4c3f41 Linus Torvalds 2005-04-16   72  	seq2 = vga_rseq(state->vgabase, VGA_SEQ_PLANE_WRITE);
^1da177e4c3f41 Linus Torvalds 2005-04-16   73  	seq4 = vga_rseq(state->vgabase, VGA_SEQ_MEMORY_MODE);
^1da177e4c3f41 Linus Torvalds 2005-04-16   74  
^1da177e4c3f41 Linus Torvalds 2005-04-16   75  	/* blank screen */
^1da177e4c3f41 Linus Torvalds 2005-04-16   76  	seq1 = vga_rseq(state->vgabase, VGA_SEQ_CLOCK_MODE);
^1da177e4c3f41 Linus Torvalds 2005-04-16   77  	vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x1);
^1da177e4c3f41 Linus Torvalds 2005-04-16   78  	vga_wseq(state->vgabase, VGA_SEQ_CLOCK_MODE, seq1 | 1 << 5);
^1da177e4c3f41 Linus Torvalds 2005-04-16   79  	vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x3);
^1da177e4c3f41 Linus Torvalds 2005-04-16   80  
^1da177e4c3f41 Linus Torvalds 2005-04-16   81  	/* save font at plane 2 */
^1da177e4c3f41 Linus Torvalds 2005-04-16   82  	if (state->flags & VGA_SAVE_FONT0) {
^1da177e4c3f41 Linus Torvalds 2005-04-16   83  		vga_wseq(state->vgabase, VGA_SEQ_PLANE_WRITE, 0x4);
^1da177e4c3f41 Linus Torvalds 2005-04-16   84  		vga_wseq(state->vgabase, VGA_SEQ_MEMORY_MODE, 0x6);
^1da177e4c3f41 Linus Torvalds 2005-04-16   85  		vga_wgfx(state->vgabase, VGA_GFX_PLANE_READ, 0x2);
^1da177e4c3f41 Linus Torvalds 2005-04-16   86  		vga_wgfx(state->vgabase, VGA_GFX_MODE, 0x0);
^1da177e4c3f41 Linus Torvalds 2005-04-16   87  		vga_wgfx(state->vgabase, VGA_GFX_MISC, 0x5);
^1da177e4c3f41 Linus Torvalds 2005-04-16   88  		for (i = 0; i < 4 * 8192; i++)
^1da177e4c3f41 Linus Torvalds 2005-04-16  @89  			saved->vga_font0[i] = vga_r(fbbase, i);
^1da177e4c3f41 Linus Torvalds 2005-04-16   90  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16   91  
^1da177e4c3f41 Linus Torvalds 2005-04-16   92  	/* save font at plane 3 */
^1da177e4c3f41 Linus Torvalds 2005-04-16   93  	if (state->flags & VGA_SAVE_FONT1) {
^1da177e4c3f41 Linus Torvalds 2005-04-16   94  		vga_wseq(state->vgabase, VGA_SEQ_PLANE_WRITE, 0x8);
^1da177e4c3f41 Linus Torvalds 2005-04-16   95  		vga_wseq(state->vgabase, VGA_SEQ_MEMORY_MODE, 0x6);
^1da177e4c3f41 Linus Torvalds 2005-04-16   96  		vga_wgfx(state->vgabase, VGA_GFX_PLANE_READ, 0x3);
^1da177e4c3f41 Linus Torvalds 2005-04-16   97  		vga_wgfx(state->vgabase, VGA_GFX_MODE, 0x0);
^1da177e4c3f41 Linus Torvalds 2005-04-16   98  		vga_wgfx(state->vgabase, VGA_GFX_MISC, 0x5);
^1da177e4c3f41 Linus Torvalds 2005-04-16   99  		for (i = 0; i < state->memsize; i++)
^1da177e4c3f41 Linus Torvalds 2005-04-16  100  			saved->vga_font1[i] = vga_r(fbbase, i);
^1da177e4c3f41 Linus Torvalds 2005-04-16  101  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  102  
^1da177e4c3f41 Linus Torvalds 2005-04-16  103  	/* save font at plane 0/1 */
^1da177e4c3f41 Linus Torvalds 2005-04-16  104  	if (state->flags & VGA_SAVE_TEXT) {
^1da177e4c3f41 Linus Torvalds 2005-04-16  105  		vga_wseq(state->vgabase, VGA_SEQ_PLANE_WRITE, 0x1);
^1da177e4c3f41 Linus Torvalds 2005-04-16  106  		vga_wseq(state->vgabase, VGA_SEQ_MEMORY_MODE, 0x6);
^1da177e4c3f41 Linus Torvalds 2005-04-16  107  		vga_wgfx(state->vgabase, VGA_GFX_PLANE_READ, 0x0);
^1da177e4c3f41 Linus Torvalds 2005-04-16  108  		vga_wgfx(state->vgabase, VGA_GFX_MODE, 0x0);
^1da177e4c3f41 Linus Torvalds 2005-04-16  109  		vga_wgfx(state->vgabase, VGA_GFX_MISC, 0x5);
^1da177e4c3f41 Linus Torvalds 2005-04-16  110  		for (i = 0; i < 8192; i++)
^1da177e4c3f41 Linus Torvalds 2005-04-16  111  			saved->vga_text[i] = vga_r(fbbase, i);
^1da177e4c3f41 Linus Torvalds 2005-04-16  112  
^1da177e4c3f41 Linus Torvalds 2005-04-16  113  		vga_wseq(state->vgabase, VGA_SEQ_PLANE_WRITE, 0x2);
^1da177e4c3f41 Linus Torvalds 2005-04-16  114  		vga_wseq(state->vgabase, VGA_SEQ_MEMORY_MODE, 0x6);
^1da177e4c3f41 Linus Torvalds 2005-04-16  115  		vga_wgfx(state->vgabase, VGA_GFX_PLANE_READ, 0x1);
^1da177e4c3f41 Linus Torvalds 2005-04-16  116  		vga_wgfx(state->vgabase, VGA_GFX_MODE, 0x0);
^1da177e4c3f41 Linus Torvalds 2005-04-16  117  		vga_wgfx(state->vgabase, VGA_GFX_MISC, 0x5);
^1da177e4c3f41 Linus Torvalds 2005-04-16  118  		for (i = 0; i < 8192; i++)
^1da177e4c3f41 Linus Torvalds 2005-04-16  119  			saved->vga_text[8192+i] = vga_r(fbbase + 2 * 8192, i);
^1da177e4c3f41 Linus Torvalds 2005-04-16  120  	}
^1da177e4c3f41 Linus Torvalds 2005-04-16  121  
^1da177e4c3f41 Linus Torvalds 2005-04-16  122  	/* restore regs */
^1da177e4c3f41 Linus Torvalds 2005-04-16  123  	vga_wseq(state->vgabase, VGA_SEQ_PLANE_WRITE, seq2);
^1da177e4c3f41 Linus Torvalds 2005-04-16  124  	vga_wseq(state->vgabase, VGA_SEQ_MEMORY_MODE, seq4);
^1da177e4c3f41 Linus Torvalds 2005-04-16  125  
^1da177e4c3f41 Linus Torvalds 2005-04-16  126  	vga_wgfx(state->vgabase, VGA_GFX_PLANE_READ, gr4);
^1da177e4c3f41 Linus Torvalds 2005-04-16  127  	vga_wgfx(state->vgabase, VGA_GFX_MODE, gr5);
^1da177e4c3f41 Linus Torvalds 2005-04-16  128  	vga_wgfx(state->vgabase, VGA_GFX_MISC, gr6);
^1da177e4c3f41 Linus Torvalds 2005-04-16  129  
^1da177e4c3f41 Linus Torvalds 2005-04-16  130  	/* unblank screen */
^1da177e4c3f41 Linus Torvalds 2005-04-16  131  	vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x1);
^1da177e4c3f41 Linus Torvalds 2005-04-16  132  	vga_wseq(state->vgabase, VGA_SEQ_CLOCK_MODE, seq1 & ~(1 << 5));
^1da177e4c3f41 Linus Torvalds 2005-04-16  133  	vga_wseq(state->vgabase, VGA_SEQ_RESET, 0x3);
^1da177e4c3f41 Linus Torvalds 2005-04-16  134  
^1da177e4c3f41 Linus Torvalds 2005-04-16  135  	vga_wseq(state->vgabase, VGA_SEQ_CLOCK_MODE, seq1);
^1da177e4c3f41 Linus Torvalds 2005-04-16  136  }
^1da177e4c3f41 Linus Torvalds 2005-04-16  137  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 14/19] video/vga: Add VGA_IS0_R
  2025-12-09 10:55     ` Jani Nikula
@ 2025-12-18 16:56       ` Ville Syrjälä
  2025-12-30  8:30         ` Helge Deller
  0 siblings, 1 reply; 10+ messages in thread
From: Ville Syrjälä @ 2025-12-18 16:56 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, intel-xe, Helge Deller, linux-fbdev, dri-devel

On Tue, Dec 09, 2025 at 12:55:49PM +0200, Jani Nikula wrote:
> On Tue, 09 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > 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?

> > Cc: linux-fbdev@vger.kernel.org
> > Cc: dri-devel@lists.freedesktop.org
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> 
> > ---
> >  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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 14/19] video/vga: Add VGA_IS0_R
  2025-12-18 16:56       ` Ville Syrjälä
@ 2025-12-30  8:30         ` Helge Deller
  0 siblings, 0 replies; 10+ messages in thread
From: Helge Deller @ 2025-12-30  8:30 UTC (permalink / raw)
  To: Ville Syrjälä, Jani Nikula; +Cc: linux-fbdev, dri-devel

On 12/18/25 17:56, Ville Syrjälä wrote:
> On Tue, Dec 09, 2025 at 12:55:49PM +0200, Jani Nikula wrote:
>> On Tue, 09 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
>>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>
>>> 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>

  
>>> Cc: linux-fbdev@vger.kernel.org
>>> Cc: dri-devel@lists.freedesktop.org
>>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>
>> Reviewed-by: Jani Nikula <jani.nikula@intel.com>
>>
>>> ---
>>>   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
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-12-30  8:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20251208182637.334-1-ville.syrjala@linux.intel.com>
2025-12-08 18:26 ` [PATCH 14/19] video/vga: Add VGA_IS0_R Ville Syrjala
2025-12-08 21:07   ` kernel test robot
2025-12-08 21:18   ` kernel test robot
2025-12-08 22:22   ` kernel test robot
2025-12-09  7:55   ` [PATCH v2 " Ville Syrjala
2025-12-09 10:55     ` Jani Nikula
2025-12-18 16:56       ` Ville Syrjälä
2025-12-30  8:30         ` Helge Deller
2025-12-10 14:13   ` [PATCH " kernel test robot
2025-12-10 14:24   ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).