All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:38 ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: intel-gfx, jani.nikula, Andy Walls, Bernie Thompson,
	Bruno Prémont, Daniel Vetter, Hans Verkuil, Jaya Kumar,
	Kirti Wankhede, Miguel Ojeda Sandonis, Noralf Trønnes,
	Robin van der Gracht, Steve Glendinning, Ville Syrjälä,
	ivtv-devel, kvm, linux-input, linux-media, linux-omap

This is v3 of https://patchwork.freedesktop.org/series/70198/.

0day reported some build failures, and I needed to add patches 1-5 and 7
to address them. Patch 8 was amended accordingly (dropped some consts),
but the other patches remain the same from v2, except the ones I merged
already.

BR,
Jani.


Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Jaya Kumar <jayalk@intworks.biz>
Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Robin van der Gracht <robin@protonic.nl>
Cc: Steve Glendinning <steve.glendinning@shawell.net>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: ivtv-devel@ivtvdriver.org
Cc: kvm@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-omap@vger.kernel.org

Jani Nikula (12):
  video: fbdev: atyfb: modify the static fb_ops directly
  video: fbdev: mb862xx: modify the static fb_ops directly
  video: fbdev: nvidia: modify the static fb_ops directly
  video: fbdev: uvesafb: modify the static fb_ops directly
  video: fbdev: make fbops member of struct fb_info a const pointer
  drm: constify fb ops across all drivers
  video: fbdev: intelfb: use const pointer for fb_ops
  video: constify fb ops across all drivers
  HID: picoLCD: constify fb ops
  media: constify fb ops across all drivers
  samples: vfio-mdev: constify fb ops
  auxdisplay: constify fb ops

 drivers/auxdisplay/cfag12864bfb.c             |  2 +-
 drivers/auxdisplay/ht16k33.c                  |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
 drivers/gpu/drm/drm_fb_helper.c               |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
 drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
 drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
 drivers/gpu/drm/tegra/fb.c                    |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
 drivers/hid/hid-picolcd_fb.c                  |  3 +--
 drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
 drivers/media/platform/vivid/vivid-osd.c      |  3 +--
 drivers/video/fbdev/68328fb.c                 |  2 +-
 drivers/video/fbdev/acornfb.c                 |  2 +-
 drivers/video/fbdev/amba-clcd.c               |  2 +-
 drivers/video/fbdev/amifb.c                   |  2 +-
 drivers/video/fbdev/arcfb.c                   |  2 +-
 drivers/video/fbdev/arkfb.c                   |  2 +-
 drivers/video/fbdev/asiliantfb.c              |  2 +-
 drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
 drivers/video/fbdev/aty/aty128fb.c            |  2 +-
 drivers/video/fbdev/aty/atyfb.h               |  2 +-
 drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
 drivers/video/fbdev/aty/radeon_base.c         |  2 +-
 drivers/video/fbdev/au1100fb.c                |  2 +-
 drivers/video/fbdev/au1200fb.c                |  2 +-
 drivers/video/fbdev/broadsheetfb.c            |  2 +-
 drivers/video/fbdev/bw2.c                     |  2 +-
 drivers/video/fbdev/carminefb.c               |  2 +-
 drivers/video/fbdev/cg14.c                    |  2 +-
 drivers/video/fbdev/cg3.c                     |  2 +-
 drivers/video/fbdev/cg6.c                     |  2 +-
 drivers/video/fbdev/chipsfb.c                 |  2 +-
 drivers/video/fbdev/cirrusfb.c                |  2 +-
 drivers/video/fbdev/clps711x-fb.c             |  2 +-
 drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
 drivers/video/fbdev/controlfb.c               |  2 +-
 drivers/video/fbdev/cyber2000fb.c             |  2 +-
 drivers/video/fbdev/da8xx-fb.c                |  2 +-
 drivers/video/fbdev/dnfb.c                    |  2 +-
 drivers/video/fbdev/efifb.c                   |  2 +-
 drivers/video/fbdev/ep93xx-fb.c               |  2 +-
 drivers/video/fbdev/fb-puv3.c                 |  2 +-
 drivers/video/fbdev/ffb.c                     |  2 +-
 drivers/video/fbdev/fm2fb.c                   |  2 +-
 drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
 drivers/video/fbdev/g364fb.c                  |  2 +-
 drivers/video/fbdev/gbefb.c                   |  2 +-
 drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
 drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
 drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
 drivers/video/fbdev/goldfishfb.c              |  2 +-
 drivers/video/fbdev/grvga.c                   |  2 +-
 drivers/video/fbdev/gxt4500.c                 |  2 +-
 drivers/video/fbdev/hecubafb.c                |  2 +-
 drivers/video/fbdev/hgafb.c                   |  2 +-
 drivers/video/fbdev/hitfb.c                   |  2 +-
 drivers/video/fbdev/hpfb.c                    |  2 +-
 drivers/video/fbdev/hyperv_fb.c               |  2 +-
 drivers/video/fbdev/i740fb.c                  |  2 +-
 drivers/video/fbdev/imsttfb.c                 |  2 +-
 drivers/video/fbdev/imxfb.c                   |  2 +-
 drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
 drivers/video/fbdev/kyro/fbdev.c              |  2 +-
 drivers/video/fbdev/leo.c                     |  2 +-
 drivers/video/fbdev/macfb.c                   |  2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
 drivers/video/fbdev/maxinefb.c                |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
 drivers/video/fbdev/metronomefb.c             |  2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
 drivers/video/fbdev/mx3fb.c                   |  5 +++--
 drivers/video/fbdev/neofb.c                   |  2 +-
 drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
 drivers/video/fbdev/ocfb.c                    |  2 +-
 drivers/video/fbdev/offb.c                    |  2 +-
 .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
 drivers/video/fbdev/p9100.c                   |  2 +-
 drivers/video/fbdev/platinumfb.c              |  2 +-
 drivers/video/fbdev/pm2fb.c                   |  2 +-
 drivers/video/fbdev/pm3fb.c                   |  2 +-
 drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
 drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
 drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
 drivers/video/fbdev/ps3fb.c                   |  2 +-
 drivers/video/fbdev/pvr2fb.c                  |  2 +-
 drivers/video/fbdev/pxa168fb.c                |  2 +-
 drivers/video/fbdev/pxafb.c                   |  4 ++--
 drivers/video/fbdev/q40fb.c                   |  2 +-
 drivers/video/fbdev/riva/fbdev.c              |  2 +-
 drivers/video/fbdev/s3c-fb.c                  |  2 +-
 drivers/video/fbdev/s3c2410fb.c               |  2 +-
 drivers/video/fbdev/s3fb.c                    |  2 +-
 drivers/video/fbdev/sa1100fb.c                |  2 +-
 drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
 drivers/video/fbdev/sh7760fb.c                |  2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
 drivers/video/fbdev/simplefb.c                |  2 +-
 drivers/video/fbdev/sis/sis_main.c            |  2 +-
 drivers/video/fbdev/skeletonfb.c              |  2 +-
 drivers/video/fbdev/sm712fb.c                 |  2 +-
 drivers/video/fbdev/smscufx.c                 |  2 +-
 drivers/video/fbdev/ssd1307fb.c               |  2 +-
 drivers/video/fbdev/sstfb.c                   |  2 +-
 drivers/video/fbdev/stifb.c                   |  2 +-
 drivers/video/fbdev/sunxvr1000.c              |  2 +-
 drivers/video/fbdev/sunxvr2500.c              |  2 +-
 drivers/video/fbdev/sunxvr500.c               |  2 +-
 drivers/video/fbdev/tcx.c                     |  2 +-
 drivers/video/fbdev/tdfxfb.c                  |  2 +-
 drivers/video/fbdev/tgafb.c                   |  2 +-
 drivers/video/fbdev/tmiofb.c                  |  2 +-
 drivers/video/fbdev/tridentfb.c               |  2 +-
 drivers/video/fbdev/uvesafb.c                 |  4 ++--
 drivers/video/fbdev/valkyriefb.c              |  2 +-
 drivers/video/fbdev/vfb.c                     |  2 +-
 drivers/video/fbdev/vga16fb.c                 |  2 +-
 drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
 drivers/video/fbdev/vt8623fb.c                |  2 +-
 drivers/video/fbdev/w100fb.c                  |  2 +-
 drivers/video/fbdev/wm8505fb.c                |  2 +-
 drivers/video/fbdev/xen-fbfront.c             |  2 +-
 drivers/video/fbdev/xilinxfb.c                |  2 +-
 include/linux/fb.h                            |  2 +-
 samples/vfio-mdev/mdpy-fb.c                   |  2 +-
 136 files changed, 163 insertions(+), 162 deletions(-)

-- 
2.20.1


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

* [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:38 ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, linux-omap, jani.nikula,
	Robin van der Gracht, intel-gfx, Bernie Thompson, Kirti Wankhede,
	Hans Verkuil, Miguel Ojeda Sandonis, Bruno Prémont,
	ivtv-devel, linux-input, linux-media, Jaya Kumar

This is v3 of https://patchwork.freedesktop.org/series/70198/.

0day reported some build failures, and I needed to add patches 1-5 and 7
to address them. Patch 8 was amended accordingly (dropped some consts),
but the other patches remain the same from v2, except the ones I merged
already.

BR,
Jani.


Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Jaya Kumar <jayalk@intworks.biz>
Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Robin van der Gracht <robin@protonic.nl>
Cc: Steve Glendinning <steve.glendinning@shawell.net>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: ivtv-devel@ivtvdriver.org
Cc: kvm@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-omap@vger.kernel.org

Jani Nikula (12):
  video: fbdev: atyfb: modify the static fb_ops directly
  video: fbdev: mb862xx: modify the static fb_ops directly
  video: fbdev: nvidia: modify the static fb_ops directly
  video: fbdev: uvesafb: modify the static fb_ops directly
  video: fbdev: make fbops member of struct fb_info a const pointer
  drm: constify fb ops across all drivers
  video: fbdev: intelfb: use const pointer for fb_ops
  video: constify fb ops across all drivers
  HID: picoLCD: constify fb ops
  media: constify fb ops across all drivers
  samples: vfio-mdev: constify fb ops
  auxdisplay: constify fb ops

 drivers/auxdisplay/cfag12864bfb.c             |  2 +-
 drivers/auxdisplay/ht16k33.c                  |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
 drivers/gpu/drm/drm_fb_helper.c               |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
 drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
 drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
 drivers/gpu/drm/tegra/fb.c                    |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
 drivers/hid/hid-picolcd_fb.c                  |  3 +--
 drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
 drivers/media/platform/vivid/vivid-osd.c      |  3 +--
 drivers/video/fbdev/68328fb.c                 |  2 +-
 drivers/video/fbdev/acornfb.c                 |  2 +-
 drivers/video/fbdev/amba-clcd.c               |  2 +-
 drivers/video/fbdev/amifb.c                   |  2 +-
 drivers/video/fbdev/arcfb.c                   |  2 +-
 drivers/video/fbdev/arkfb.c                   |  2 +-
 drivers/video/fbdev/asiliantfb.c              |  2 +-
 drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
 drivers/video/fbdev/aty/aty128fb.c            |  2 +-
 drivers/video/fbdev/aty/atyfb.h               |  2 +-
 drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
 drivers/video/fbdev/aty/radeon_base.c         |  2 +-
 drivers/video/fbdev/au1100fb.c                |  2 +-
 drivers/video/fbdev/au1200fb.c                |  2 +-
 drivers/video/fbdev/broadsheetfb.c            |  2 +-
 drivers/video/fbdev/bw2.c                     |  2 +-
 drivers/video/fbdev/carminefb.c               |  2 +-
 drivers/video/fbdev/cg14.c                    |  2 +-
 drivers/video/fbdev/cg3.c                     |  2 +-
 drivers/video/fbdev/cg6.c                     |  2 +-
 drivers/video/fbdev/chipsfb.c                 |  2 +-
 drivers/video/fbdev/cirrusfb.c                |  2 +-
 drivers/video/fbdev/clps711x-fb.c             |  2 +-
 drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
 drivers/video/fbdev/controlfb.c               |  2 +-
 drivers/video/fbdev/cyber2000fb.c             |  2 +-
 drivers/video/fbdev/da8xx-fb.c                |  2 +-
 drivers/video/fbdev/dnfb.c                    |  2 +-
 drivers/video/fbdev/efifb.c                   |  2 +-
 drivers/video/fbdev/ep93xx-fb.c               |  2 +-
 drivers/video/fbdev/fb-puv3.c                 |  2 +-
 drivers/video/fbdev/ffb.c                     |  2 +-
 drivers/video/fbdev/fm2fb.c                   |  2 +-
 drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
 drivers/video/fbdev/g364fb.c                  |  2 +-
 drivers/video/fbdev/gbefb.c                   |  2 +-
 drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
 drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
 drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
 drivers/video/fbdev/goldfishfb.c              |  2 +-
 drivers/video/fbdev/grvga.c                   |  2 +-
 drivers/video/fbdev/gxt4500.c                 |  2 +-
 drivers/video/fbdev/hecubafb.c                |  2 +-
 drivers/video/fbdev/hgafb.c                   |  2 +-
 drivers/video/fbdev/hitfb.c                   |  2 +-
 drivers/video/fbdev/hpfb.c                    |  2 +-
 drivers/video/fbdev/hyperv_fb.c               |  2 +-
 drivers/video/fbdev/i740fb.c                  |  2 +-
 drivers/video/fbdev/imsttfb.c                 |  2 +-
 drivers/video/fbdev/imxfb.c                   |  2 +-
 drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
 drivers/video/fbdev/kyro/fbdev.c              |  2 +-
 drivers/video/fbdev/leo.c                     |  2 +-
 drivers/video/fbdev/macfb.c                   |  2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
 drivers/video/fbdev/maxinefb.c                |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
 drivers/video/fbdev/metronomefb.c             |  2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
 drivers/video/fbdev/mx3fb.c                   |  5 +++--
 drivers/video/fbdev/neofb.c                   |  2 +-
 drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
 drivers/video/fbdev/ocfb.c                    |  2 +-
 drivers/video/fbdev/offb.c                    |  2 +-
 .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
 drivers/video/fbdev/p9100.c                   |  2 +-
 drivers/video/fbdev/platinumfb.c              |  2 +-
 drivers/video/fbdev/pm2fb.c                   |  2 +-
 drivers/video/fbdev/pm3fb.c                   |  2 +-
 drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
 drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
 drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
 drivers/video/fbdev/ps3fb.c                   |  2 +-
 drivers/video/fbdev/pvr2fb.c                  |  2 +-
 drivers/video/fbdev/pxa168fb.c                |  2 +-
 drivers/video/fbdev/pxafb.c                   |  4 ++--
 drivers/video/fbdev/q40fb.c                   |  2 +-
 drivers/video/fbdev/riva/fbdev.c              |  2 +-
 drivers/video/fbdev/s3c-fb.c                  |  2 +-
 drivers/video/fbdev/s3c2410fb.c               |  2 +-
 drivers/video/fbdev/s3fb.c                    |  2 +-
 drivers/video/fbdev/sa1100fb.c                |  2 +-
 drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
 drivers/video/fbdev/sh7760fb.c                |  2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
 drivers/video/fbdev/simplefb.c                |  2 +-
 drivers/video/fbdev/sis/sis_main.c            |  2 +-
 drivers/video/fbdev/skeletonfb.c              |  2 +-
 drivers/video/fbdev/sm712fb.c                 |  2 +-
 drivers/video/fbdev/smscufx.c                 |  2 +-
 drivers/video/fbdev/ssd1307fb.c               |  2 +-
 drivers/video/fbdev/sstfb.c                   |  2 +-
 drivers/video/fbdev/stifb.c                   |  2 +-
 drivers/video/fbdev/sunxvr1000.c              |  2 +-
 drivers/video/fbdev/sunxvr2500.c              |  2 +-
 drivers/video/fbdev/sunxvr500.c               |  2 +-
 drivers/video/fbdev/tcx.c                     |  2 +-
 drivers/video/fbdev/tdfxfb.c                  |  2 +-
 drivers/video/fbdev/tgafb.c                   |  2 +-
 drivers/video/fbdev/tmiofb.c                  |  2 +-
 drivers/video/fbdev/tridentfb.c               |  2 +-
 drivers/video/fbdev/uvesafb.c                 |  4 ++--
 drivers/video/fbdev/valkyriefb.c              |  2 +-
 drivers/video/fbdev/vfb.c                     |  2 +-
 drivers/video/fbdev/vga16fb.c                 |  2 +-
 drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
 drivers/video/fbdev/vt8623fb.c                |  2 +-
 drivers/video/fbdev/w100fb.c                  |  2 +-
 drivers/video/fbdev/wm8505fb.c                |  2 +-
 drivers/video/fbdev/xen-fbfront.c             |  2 +-
 drivers/video/fbdev/xilinxfb.c                |  2 +-
 include/linux/fb.h                            |  2 +-
 samples/vfio-mdev/mdpy-fb.c                   |  2 +-
 136 files changed, 163 insertions(+), 162 deletions(-)

-- 
2.20.1

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

* [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:38 ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, linux-omap, jani.nikula,
	Robin van der Gracht, intel-gfx, Bernie Thompson, Kirti Wankhede,
	Hans Verkuil, Miguel Ojeda Sandonis, Bruno Prémont,
	Noralf Trønnes, ivtv-devel, linux-input, linux-media,
	Jaya Kumar

This is v3 of https://patchwork.freedesktop.org/series/70198/.

0day reported some build failures, and I needed to add patches 1-5 and 7
to address them. Patch 8 was amended accordingly (dropped some consts),
but the other patches remain the same from v2, except the ones I merged
already.

BR,
Jani.


Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Jaya Kumar <jayalk@intworks.biz>
Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Robin van der Gracht <robin@protonic.nl>
Cc: Steve Glendinning <steve.glendinning@shawell.net>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: ivtv-devel@ivtvdriver.org
Cc: kvm@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-omap@vger.kernel.org

Jani Nikula (12):
  video: fbdev: atyfb: modify the static fb_ops directly
  video: fbdev: mb862xx: modify the static fb_ops directly
  video: fbdev: nvidia: modify the static fb_ops directly
  video: fbdev: uvesafb: modify the static fb_ops directly
  video: fbdev: make fbops member of struct fb_info a const pointer
  drm: constify fb ops across all drivers
  video: fbdev: intelfb: use const pointer for fb_ops
  video: constify fb ops across all drivers
  HID: picoLCD: constify fb ops
  media: constify fb ops across all drivers
  samples: vfio-mdev: constify fb ops
  auxdisplay: constify fb ops

 drivers/auxdisplay/cfag12864bfb.c             |  2 +-
 drivers/auxdisplay/ht16k33.c                  |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
 drivers/gpu/drm/drm_fb_helper.c               |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
 drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
 drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
 drivers/gpu/drm/tegra/fb.c                    |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
 drivers/hid/hid-picolcd_fb.c                  |  3 +--
 drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
 drivers/media/platform/vivid/vivid-osd.c      |  3 +--
 drivers/video/fbdev/68328fb.c                 |  2 +-
 drivers/video/fbdev/acornfb.c                 |  2 +-
 drivers/video/fbdev/amba-clcd.c               |  2 +-
 drivers/video/fbdev/amifb.c                   |  2 +-
 drivers/video/fbdev/arcfb.c                   |  2 +-
 drivers/video/fbdev/arkfb.c                   |  2 +-
 drivers/video/fbdev/asiliantfb.c              |  2 +-
 drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
 drivers/video/fbdev/aty/aty128fb.c            |  2 +-
 drivers/video/fbdev/aty/atyfb.h               |  2 +-
 drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
 drivers/video/fbdev/aty/radeon_base.c         |  2 +-
 drivers/video/fbdev/au1100fb.c                |  2 +-
 drivers/video/fbdev/au1200fb.c                |  2 +-
 drivers/video/fbdev/broadsheetfb.c            |  2 +-
 drivers/video/fbdev/bw2.c                     |  2 +-
 drivers/video/fbdev/carminefb.c               |  2 +-
 drivers/video/fbdev/cg14.c                    |  2 +-
 drivers/video/fbdev/cg3.c                     |  2 +-
 drivers/video/fbdev/cg6.c                     |  2 +-
 drivers/video/fbdev/chipsfb.c                 |  2 +-
 drivers/video/fbdev/cirrusfb.c                |  2 +-
 drivers/video/fbdev/clps711x-fb.c             |  2 +-
 drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
 drivers/video/fbdev/controlfb.c               |  2 +-
 drivers/video/fbdev/cyber2000fb.c             |  2 +-
 drivers/video/fbdev/da8xx-fb.c                |  2 +-
 drivers/video/fbdev/dnfb.c                    |  2 +-
 drivers/video/fbdev/efifb.c                   |  2 +-
 drivers/video/fbdev/ep93xx-fb.c               |  2 +-
 drivers/video/fbdev/fb-puv3.c                 |  2 +-
 drivers/video/fbdev/ffb.c                     |  2 +-
 drivers/video/fbdev/fm2fb.c                   |  2 +-
 drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
 drivers/video/fbdev/g364fb.c                  |  2 +-
 drivers/video/fbdev/gbefb.c                   |  2 +-
 drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
 drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
 drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
 drivers/video/fbdev/goldfishfb.c              |  2 +-
 drivers/video/fbdev/grvga.c                   |  2 +-
 drivers/video/fbdev/gxt4500.c                 |  2 +-
 drivers/video/fbdev/hecubafb.c                |  2 +-
 drivers/video/fbdev/hgafb.c                   |  2 +-
 drivers/video/fbdev/hitfb.c                   |  2 +-
 drivers/video/fbdev/hpfb.c                    |  2 +-
 drivers/video/fbdev/hyperv_fb.c               |  2 +-
 drivers/video/fbdev/i740fb.c                  |  2 +-
 drivers/video/fbdev/imsttfb.c                 |  2 +-
 drivers/video/fbdev/imxfb.c                   |  2 +-
 drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
 drivers/video/fbdev/kyro/fbdev.c              |  2 +-
 drivers/video/fbdev/leo.c                     |  2 +-
 drivers/video/fbdev/macfb.c                   |  2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
 drivers/video/fbdev/maxinefb.c                |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
 drivers/video/fbdev/metronomefb.c             |  2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
 drivers/video/fbdev/mx3fb.c                   |  5 +++--
 drivers/video/fbdev/neofb.c                   |  2 +-
 drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
 drivers/video/fbdev/ocfb.c                    |  2 +-
 drivers/video/fbdev/offb.c                    |  2 +-
 .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
 drivers/video/fbdev/p9100.c                   |  2 +-
 drivers/video/fbdev/platinumfb.c              |  2 +-
 drivers/video/fbdev/pm2fb.c                   |  2 +-
 drivers/video/fbdev/pm3fb.c                   |  2 +-
 drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
 drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
 drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
 drivers/video/fbdev/ps3fb.c                   |  2 +-
 drivers/video/fbdev/pvr2fb.c                  |  2 +-
 drivers/video/fbdev/pxa168fb.c                |  2 +-
 drivers/video/fbdev/pxafb.c                   |  4 ++--
 drivers/video/fbdev/q40fb.c                   |  2 +-
 drivers/video/fbdev/riva/fbdev.c              |  2 +-
 drivers/video/fbdev/s3c-fb.c                  |  2 +-
 drivers/video/fbdev/s3c2410fb.c               |  2 +-
 drivers/video/fbdev/s3fb.c                    |  2 +-
 drivers/video/fbdev/sa1100fb.c                |  2 +-
 drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
 drivers/video/fbdev/sh7760fb.c                |  2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
 drivers/video/fbdev/simplefb.c                |  2 +-
 drivers/video/fbdev/sis/sis_main.c            |  2 +-
 drivers/video/fbdev/skeletonfb.c              |  2 +-
 drivers/video/fbdev/sm712fb.c                 |  2 +-
 drivers/video/fbdev/smscufx.c                 |  2 +-
 drivers/video/fbdev/ssd1307fb.c               |  2 +-
 drivers/video/fbdev/sstfb.c                   |  2 +-
 drivers/video/fbdev/stifb.c                   |  2 +-
 drivers/video/fbdev/sunxvr1000.c              |  2 +-
 drivers/video/fbdev/sunxvr2500.c              |  2 +-
 drivers/video/fbdev/sunxvr500.c               |  2 +-
 drivers/video/fbdev/tcx.c                     |  2 +-
 drivers/video/fbdev/tdfxfb.c                  |  2 +-
 drivers/video/fbdev/tgafb.c                   |  2 +-
 drivers/video/fbdev/tmiofb.c                  |  2 +-
 drivers/video/fbdev/tridentfb.c               |  2 +-
 drivers/video/fbdev/uvesafb.c                 |  4 ++--
 drivers/video/fbdev/valkyriefb.c              |  2 +-
 drivers/video/fbdev/vfb.c                     |  2 +-
 drivers/video/fbdev/vga16fb.c                 |  2 +-
 drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
 drivers/video/fbdev/vt8623fb.c                |  2 +-
 drivers/video/fbdev/w100fb.c                  |  2 +-
 drivers/video/fbdev/wm8505fb.c                |  2 +-
 drivers/video/fbdev/xen-fbfront.c             |  2 +-
 drivers/video/fbdev/xilinxfb.c                |  2 +-
 include/linux/fb.h                            |  2 +-
 samples/vfio-mdev/mdpy-fb.c                   |  2 +-
 136 files changed, 163 insertions(+), 162 deletions(-)

-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:38 ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, linux-omap, jani.nikula,
	Robin van der Gracht, intel-gfx, Bernie Thompson, Kirti Wankhede,
	Hans Verkuil, Miguel Ojeda Sandonis, Bruno Prémont,
	ivtv-devel, linux-input, linux-media, Jaya Kumar

This is v3 of https://patchwork.freedesktop.org/series/70198/.

0day reported some build failures, and I needed to add patches 1-5 and 7
to address them. Patch 8 was amended accordingly (dropped some consts),
but the other patches remain the same from v2, except the ones I merged
already.

BR,
Jani.


Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Jaya Kumar <jayalk@intworks.biz>
Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Robin van der Gracht <robin@protonic.nl>
Cc: Steve Glendinning <steve.glendinning@shawell.net>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: ivtv-devel@ivtvdriver.org
Cc: kvm@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-omap@vger.kernel.org

Jani Nikula (12):
  video: fbdev: atyfb: modify the static fb_ops directly
  video: fbdev: mb862xx: modify the static fb_ops directly
  video: fbdev: nvidia: modify the static fb_ops directly
  video: fbdev: uvesafb: modify the static fb_ops directly
  video: fbdev: make fbops member of struct fb_info a const pointer
  drm: constify fb ops across all drivers
  video: fbdev: intelfb: use const pointer for fb_ops
  video: constify fb ops across all drivers
  HID: picoLCD: constify fb ops
  media: constify fb ops across all drivers
  samples: vfio-mdev: constify fb ops
  auxdisplay: constify fb ops

 drivers/auxdisplay/cfag12864bfb.c             |  2 +-
 drivers/auxdisplay/ht16k33.c                  |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
 drivers/gpu/drm/drm_fb_helper.c               |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
 drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
 drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
 drivers/gpu/drm/tegra/fb.c                    |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
 drivers/hid/hid-picolcd_fb.c                  |  3 +--
 drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
 drivers/media/platform/vivid/vivid-osd.c      |  3 +--
 drivers/video/fbdev/68328fb.c                 |  2 +-
 drivers/video/fbdev/acornfb.c                 |  2 +-
 drivers/video/fbdev/amba-clcd.c               |  2 +-
 drivers/video/fbdev/amifb.c                   |  2 +-
 drivers/video/fbdev/arcfb.c                   |  2 +-
 drivers/video/fbdev/arkfb.c                   |  2 +-
 drivers/video/fbdev/asiliantfb.c              |  2 +-
 drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
 drivers/video/fbdev/aty/aty128fb.c            |  2 +-
 drivers/video/fbdev/aty/atyfb.h               |  2 +-
 drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
 drivers/video/fbdev/aty/radeon_base.c         |  2 +-
 drivers/video/fbdev/au1100fb.c                |  2 +-
 drivers/video/fbdev/au1200fb.c                |  2 +-
 drivers/video/fbdev/broadsheetfb.c            |  2 +-
 drivers/video/fbdev/bw2.c                     |  2 +-
 drivers/video/fbdev/carminefb.c               |  2 +-
 drivers/video/fbdev/cg14.c                    |  2 +-
 drivers/video/fbdev/cg3.c                     |  2 +-
 drivers/video/fbdev/cg6.c                     |  2 +-
 drivers/video/fbdev/chipsfb.c                 |  2 +-
 drivers/video/fbdev/cirrusfb.c                |  2 +-
 drivers/video/fbdev/clps711x-fb.c             |  2 +-
 drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
 drivers/video/fbdev/controlfb.c               |  2 +-
 drivers/video/fbdev/cyber2000fb.c             |  2 +-
 drivers/video/fbdev/da8xx-fb.c                |  2 +-
 drivers/video/fbdev/dnfb.c                    |  2 +-
 drivers/video/fbdev/efifb.c                   |  2 +-
 drivers/video/fbdev/ep93xx-fb.c               |  2 +-
 drivers/video/fbdev/fb-puv3.c                 |  2 +-
 drivers/video/fbdev/ffb.c                     |  2 +-
 drivers/video/fbdev/fm2fb.c                   |  2 +-
 drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
 drivers/video/fbdev/g364fb.c                  |  2 +-
 drivers/video/fbdev/gbefb.c                   |  2 +-
 drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
 drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
 drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
 drivers/video/fbdev/goldfishfb.c              |  2 +-
 drivers/video/fbdev/grvga.c                   |  2 +-
 drivers/video/fbdev/gxt4500.c                 |  2 +-
 drivers/video/fbdev/hecubafb.c                |  2 +-
 drivers/video/fbdev/hgafb.c                   |  2 +-
 drivers/video/fbdev/hitfb.c                   |  2 +-
 drivers/video/fbdev/hpfb.c                    |  2 +-
 drivers/video/fbdev/hyperv_fb.c               |  2 +-
 drivers/video/fbdev/i740fb.c                  |  2 +-
 drivers/video/fbdev/imsttfb.c                 |  2 +-
 drivers/video/fbdev/imxfb.c                   |  2 +-
 drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
 drivers/video/fbdev/kyro/fbdev.c              |  2 +-
 drivers/video/fbdev/leo.c                     |  2 +-
 drivers/video/fbdev/macfb.c                   |  2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
 drivers/video/fbdev/maxinefb.c                |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
 drivers/video/fbdev/metronomefb.c             |  2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
 drivers/video/fbdev/mx3fb.c                   |  5 +++--
 drivers/video/fbdev/neofb.c                   |  2 +-
 drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
 drivers/video/fbdev/ocfb.c                    |  2 +-
 drivers/video/fbdev/offb.c                    |  2 +-
 .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
 drivers/video/fbdev/p9100.c                   |  2 +-
 drivers/video/fbdev/platinumfb.c              |  2 +-
 drivers/video/fbdev/pm2fb.c                   |  2 +-
 drivers/video/fbdev/pm3fb.c                   |  2 +-
 drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
 drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
 drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
 drivers/video/fbdev/ps3fb.c                   |  2 +-
 drivers/video/fbdev/pvr2fb.c                  |  2 +-
 drivers/video/fbdev/pxa168fb.c                |  2 +-
 drivers/video/fbdev/pxafb.c                   |  4 ++--
 drivers/video/fbdev/q40fb.c                   |  2 +-
 drivers/video/fbdev/riva/fbdev.c              |  2 +-
 drivers/video/fbdev/s3c-fb.c                  |  2 +-
 drivers/video/fbdev/s3c2410fb.c               |  2 +-
 drivers/video/fbdev/s3fb.c                    |  2 +-
 drivers/video/fbdev/sa1100fb.c                |  2 +-
 drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
 drivers/video/fbdev/sh7760fb.c                |  2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
 drivers/video/fbdev/simplefb.c                |  2 +-
 drivers/video/fbdev/sis/sis_main.c            |  2 +-
 drivers/video/fbdev/skeletonfb.c              |  2 +-
 drivers/video/fbdev/sm712fb.c                 |  2 +-
 drivers/video/fbdev/smscufx.c                 |  2 +-
 drivers/video/fbdev/ssd1307fb.c               |  2 +-
 drivers/video/fbdev/sstfb.c                   |  2 +-
 drivers/video/fbdev/stifb.c                   |  2 +-
 drivers/video/fbdev/sunxvr1000.c              |  2 +-
 drivers/video/fbdev/sunxvr2500.c              |  2 +-
 drivers/video/fbdev/sunxvr500.c               |  2 +-
 drivers/video/fbdev/tcx.c                     |  2 +-
 drivers/video/fbdev/tdfxfb.c                  |  2 +-
 drivers/video/fbdev/tgafb.c                   |  2 +-
 drivers/video/fbdev/tmiofb.c                  |  2 +-
 drivers/video/fbdev/tridentfb.c               |  2 +-
 drivers/video/fbdev/uvesafb.c                 |  4 ++--
 drivers/video/fbdev/valkyriefb.c              |  2 +-
 drivers/video/fbdev/vfb.c                     |  2 +-
 drivers/video/fbdev/vga16fb.c                 |  2 +-
 drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
 drivers/video/fbdev/vt8623fb.c                |  2 +-
 drivers/video/fbdev/w100fb.c                  |  2 +-
 drivers/video/fbdev/wm8505fb.c                |  2 +-
 drivers/video/fbdev/xen-fbfront.c             |  2 +-
 drivers/video/fbdev/xilinxfb.c                |  2 +-
 include/linux/fb.h                            |  2 +-
 samples/vfio-mdev/mdpy-fb.c                   |  2 +-
 136 files changed, 163 insertions(+), 162 deletions(-)

-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:38 ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, linux-omap, jani.nikula,
	Robin van der Gracht, intel-gfx, Bernie Thompson, Kirti Wankhede,
	Hans Verkuil, Miguel Ojeda Sandonis, Bruno Prémont,
	Noralf Trønnes, ivtv-devel, linux-input, linux-media,
	Jaya Kumar

This is v3 of https://patchwork.freedesktop.org/series/70198/.

0day reported some build failures, and I needed to add patches 1-5 and 7
to address them. Patch 8 was amended accordingly (dropped some consts),
but the other patches remain the same from v2, except the ones I merged
already.

BR,
Jani.


Cc: Andy Walls <awalls@md.metrocast.net>
Cc: Bernie Thompson <bernie@plugable.com>
Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Jaya Kumar <jayalk@intworks.biz>
Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Robin van der Gracht <robin@protonic.nl>
Cc: Steve Glendinning <steve.glendinning@shawell.net>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: dri-devel@lists.freedesktop.org
Cc: ivtv-devel@ivtvdriver.org
Cc: kvm@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-omap@vger.kernel.org

Jani Nikula (12):
  video: fbdev: atyfb: modify the static fb_ops directly
  video: fbdev: mb862xx: modify the static fb_ops directly
  video: fbdev: nvidia: modify the static fb_ops directly
  video: fbdev: uvesafb: modify the static fb_ops directly
  video: fbdev: make fbops member of struct fb_info a const pointer
  drm: constify fb ops across all drivers
  video: fbdev: intelfb: use const pointer for fb_ops
  video: constify fb ops across all drivers
  HID: picoLCD: constify fb ops
  media: constify fb ops across all drivers
  samples: vfio-mdev: constify fb ops
  auxdisplay: constify fb ops

 drivers/auxdisplay/cfag12864bfb.c             |  2 +-
 drivers/auxdisplay/ht16k33.c                  |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
 drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
 drivers/gpu/drm/drm_fb_helper.c               |  2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
 .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
 drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
 drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
 drivers/gpu/drm/tegra/fb.c                    |  2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
 drivers/hid/hid-picolcd_fb.c                  |  3 +--
 drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
 drivers/media/platform/vivid/vivid-osd.c      |  3 +--
 drivers/video/fbdev/68328fb.c                 |  2 +-
 drivers/video/fbdev/acornfb.c                 |  2 +-
 drivers/video/fbdev/amba-clcd.c               |  2 +-
 drivers/video/fbdev/amifb.c                   |  2 +-
 drivers/video/fbdev/arcfb.c                   |  2 +-
 drivers/video/fbdev/arkfb.c                   |  2 +-
 drivers/video/fbdev/asiliantfb.c              |  2 +-
 drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
 drivers/video/fbdev/aty/aty128fb.c            |  2 +-
 drivers/video/fbdev/aty/atyfb.h               |  2 +-
 drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
 drivers/video/fbdev/aty/radeon_base.c         |  2 +-
 drivers/video/fbdev/au1100fb.c                |  2 +-
 drivers/video/fbdev/au1200fb.c                |  2 +-
 drivers/video/fbdev/broadsheetfb.c            |  2 +-
 drivers/video/fbdev/bw2.c                     |  2 +-
 drivers/video/fbdev/carminefb.c               |  2 +-
 drivers/video/fbdev/cg14.c                    |  2 +-
 drivers/video/fbdev/cg3.c                     |  2 +-
 drivers/video/fbdev/cg6.c                     |  2 +-
 drivers/video/fbdev/chipsfb.c                 |  2 +-
 drivers/video/fbdev/cirrusfb.c                |  2 +-
 drivers/video/fbdev/clps711x-fb.c             |  2 +-
 drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
 drivers/video/fbdev/controlfb.c               |  2 +-
 drivers/video/fbdev/cyber2000fb.c             |  2 +-
 drivers/video/fbdev/da8xx-fb.c                |  2 +-
 drivers/video/fbdev/dnfb.c                    |  2 +-
 drivers/video/fbdev/efifb.c                   |  2 +-
 drivers/video/fbdev/ep93xx-fb.c               |  2 +-
 drivers/video/fbdev/fb-puv3.c                 |  2 +-
 drivers/video/fbdev/ffb.c                     |  2 +-
 drivers/video/fbdev/fm2fb.c                   |  2 +-
 drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
 drivers/video/fbdev/g364fb.c                  |  2 +-
 drivers/video/fbdev/gbefb.c                   |  2 +-
 drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
 drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
 drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
 drivers/video/fbdev/goldfishfb.c              |  2 +-
 drivers/video/fbdev/grvga.c                   |  2 +-
 drivers/video/fbdev/gxt4500.c                 |  2 +-
 drivers/video/fbdev/hecubafb.c                |  2 +-
 drivers/video/fbdev/hgafb.c                   |  2 +-
 drivers/video/fbdev/hitfb.c                   |  2 +-
 drivers/video/fbdev/hpfb.c                    |  2 +-
 drivers/video/fbdev/hyperv_fb.c               |  2 +-
 drivers/video/fbdev/i740fb.c                  |  2 +-
 drivers/video/fbdev/imsttfb.c                 |  2 +-
 drivers/video/fbdev/imxfb.c                   |  2 +-
 drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
 drivers/video/fbdev/kyro/fbdev.c              |  2 +-
 drivers/video/fbdev/leo.c                     |  2 +-
 drivers/video/fbdev/macfb.c                   |  2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
 drivers/video/fbdev/maxinefb.c                |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
 drivers/video/fbdev/metronomefb.c             |  2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
 drivers/video/fbdev/mx3fb.c                   |  5 +++--
 drivers/video/fbdev/neofb.c                   |  2 +-
 drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
 drivers/video/fbdev/ocfb.c                    |  2 +-
 drivers/video/fbdev/offb.c                    |  2 +-
 .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
 drivers/video/fbdev/p9100.c                   |  2 +-
 drivers/video/fbdev/platinumfb.c              |  2 +-
 drivers/video/fbdev/pm2fb.c                   |  2 +-
 drivers/video/fbdev/pm3fb.c                   |  2 +-
 drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
 drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
 drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
 drivers/video/fbdev/ps3fb.c                   |  2 +-
 drivers/video/fbdev/pvr2fb.c                  |  2 +-
 drivers/video/fbdev/pxa168fb.c                |  2 +-
 drivers/video/fbdev/pxafb.c                   |  4 ++--
 drivers/video/fbdev/q40fb.c                   |  2 +-
 drivers/video/fbdev/riva/fbdev.c              |  2 +-
 drivers/video/fbdev/s3c-fb.c                  |  2 +-
 drivers/video/fbdev/s3c2410fb.c               |  2 +-
 drivers/video/fbdev/s3fb.c                    |  2 +-
 drivers/video/fbdev/sa1100fb.c                |  2 +-
 drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
 drivers/video/fbdev/sh7760fb.c                |  2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
 drivers/video/fbdev/simplefb.c                |  2 +-
 drivers/video/fbdev/sis/sis_main.c            |  2 +-
 drivers/video/fbdev/skeletonfb.c              |  2 +-
 drivers/video/fbdev/sm712fb.c                 |  2 +-
 drivers/video/fbdev/smscufx.c                 |  2 +-
 drivers/video/fbdev/ssd1307fb.c               |  2 +-
 drivers/video/fbdev/sstfb.c                   |  2 +-
 drivers/video/fbdev/stifb.c                   |  2 +-
 drivers/video/fbdev/sunxvr1000.c              |  2 +-
 drivers/video/fbdev/sunxvr2500.c              |  2 +-
 drivers/video/fbdev/sunxvr500.c               |  2 +-
 drivers/video/fbdev/tcx.c                     |  2 +-
 drivers/video/fbdev/tdfxfb.c                  |  2 +-
 drivers/video/fbdev/tgafb.c                   |  2 +-
 drivers/video/fbdev/tmiofb.c                  |  2 +-
 drivers/video/fbdev/tridentfb.c               |  2 +-
 drivers/video/fbdev/uvesafb.c                 |  4 ++--
 drivers/video/fbdev/valkyriefb.c              |  2 +-
 drivers/video/fbdev/vfb.c                     |  2 +-
 drivers/video/fbdev/vga16fb.c                 |  2 +-
 drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
 drivers/video/fbdev/vt8623fb.c                |  2 +-
 drivers/video/fbdev/w100fb.c                  |  2 +-
 drivers/video/fbdev/wm8505fb.c                |  2 +-
 drivers/video/fbdev/xen-fbfront.c             |  2 +-
 drivers/video/fbdev/xilinxfb.c                |  2 +-
 include/linux/fb.h                            |  2 +-
 samples/vfio-mdev/mdpy-fb.c                   |  2 +-
 136 files changed, 163 insertions(+), 162 deletions(-)

-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/aty/atyfb.h         | 2 +-
 drivers/video/fbdev/aty/atyfb_base.c    | 6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/video/fbdev/aty/atyfb.h b/drivers/video/fbdev/aty/atyfb.h
index e5a347c58180..a7833bc98225 100644
--- a/drivers/video/fbdev/aty/atyfb.h
+++ b/drivers/video/fbdev/aty/atyfb.h
@@ -341,7 +341,7 @@ extern const u8 aty_postdividers[8];
      *  Hardware cursor support
      */
 
-extern int aty_init_cursor(struct fb_info *info);
+extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);
 
     /*
      *  Hardware acceleration
diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
index 6dda5d885a03..bebc08505d94 100644
--- a/drivers/video/fbdev/aty/atyfb_base.c
+++ b/drivers/video/fbdev/aty/atyfb_base.c
@@ -1316,10 +1316,10 @@ static int atyfb_set_par(struct fb_info *info)
 	par->accel_flags = var->accel_flags; /* hack */
 
 	if (var->accel_flags) {
-		info->fbops->fb_sync = atyfb_sync;
+		atyfb_ops.fb_sync = atyfb_sync;
 		info->flags &= ~FBINFO_HWACCEL_DISABLED;
 	} else {
-		info->fbops->fb_sync = NULL;
+		atyfb_ops.fb_sync = NULL;
 		info->flags |= FBINFO_HWACCEL_DISABLED;
 	}
 
@@ -2702,7 +2702,7 @@ static int aty_init(struct fb_info *info)
 
 #ifdef CONFIG_FB_ATY_CT
 	if (!noaccel && M64_HAS(INTEGRATED))
-		aty_init_cursor(info);
+		aty_init_cursor(info, &atyfb_ops);
 #endif /* CONFIG_FB_ATY_CT */
 	info->var = var;
 
diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
index 4cde25eab8e8..b06fa6e42e6e 100644
--- a/drivers/video/fbdev/aty/mach64_cursor.c
+++ b/drivers/video/fbdev/aty/mach64_cursor.c
@@ -194,7 +194,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-int aty_init_cursor(struct fb_info *info)
+int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops)
 {
 	unsigned long addr;
 
@@ -219,7 +219,7 @@ int aty_init_cursor(struct fb_info *info)
 	info->sprite.buf_align = 16; 	/* and 64 lines tall. */
 	info->sprite.flags = FB_PIXMAP_IO;
 
-	info->fbops->fb_cursor = atyfb_cursor;
+	atyfb_ops->fb_cursor = atyfb_cursor;
 
 	return 0;
 }
-- 
2.20.1

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

* [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/aty/atyfb.h         | 2 +-
 drivers/video/fbdev/aty/atyfb_base.c    | 6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/video/fbdev/aty/atyfb.h b/drivers/video/fbdev/aty/atyfb.h
index e5a347c58180..a7833bc98225 100644
--- a/drivers/video/fbdev/aty/atyfb.h
+++ b/drivers/video/fbdev/aty/atyfb.h
@@ -341,7 +341,7 @@ extern const u8 aty_postdividers[8];
      *  Hardware cursor support
      */
 
-extern int aty_init_cursor(struct fb_info *info);
+extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);
 
     /*
      *  Hardware acceleration
diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
index 6dda5d885a03..bebc08505d94 100644
--- a/drivers/video/fbdev/aty/atyfb_base.c
+++ b/drivers/video/fbdev/aty/atyfb_base.c
@@ -1316,10 +1316,10 @@ static int atyfb_set_par(struct fb_info *info)
 	par->accel_flags = var->accel_flags; /* hack */
 
 	if (var->accel_flags) {
-		info->fbops->fb_sync = atyfb_sync;
+		atyfb_ops.fb_sync = atyfb_sync;
 		info->flags &= ~FBINFO_HWACCEL_DISABLED;
 	} else {
-		info->fbops->fb_sync = NULL;
+		atyfb_ops.fb_sync = NULL;
 		info->flags |= FBINFO_HWACCEL_DISABLED;
 	}
 
@@ -2702,7 +2702,7 @@ static int aty_init(struct fb_info *info)
 
 #ifdef CONFIG_FB_ATY_CT
 	if (!noaccel && M64_HAS(INTEGRATED))
-		aty_init_cursor(info);
+		aty_init_cursor(info, &atyfb_ops);
 #endif /* CONFIG_FB_ATY_CT */
 	info->var = var;
 
diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
index 4cde25eab8e8..b06fa6e42e6e 100644
--- a/drivers/video/fbdev/aty/mach64_cursor.c
+++ b/drivers/video/fbdev/aty/mach64_cursor.c
@@ -194,7 +194,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-int aty_init_cursor(struct fb_info *info)
+int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops)
 {
 	unsigned long addr;
 
@@ -219,7 +219,7 @@ int aty_init_cursor(struct fb_info *info)
 	info->sprite.buf_align = 16; 	/* and 64 lines tall. */
 	info->sprite.flags = FB_PIXMAP_IO;
 
-	info->fbops->fb_cursor = atyfb_cursor;
+	atyfb_ops->fb_cursor = atyfb_cursor;
 
 	return 0;
 }
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/aty/atyfb.h         | 2 +-
 drivers/video/fbdev/aty/atyfb_base.c    | 6 +++---
 drivers/video/fbdev/aty/mach64_cursor.c | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/video/fbdev/aty/atyfb.h b/drivers/video/fbdev/aty/atyfb.h
index e5a347c58180..a7833bc98225 100644
--- a/drivers/video/fbdev/aty/atyfb.h
+++ b/drivers/video/fbdev/aty/atyfb.h
@@ -341,7 +341,7 @@ extern const u8 aty_postdividers[8];
      *  Hardware cursor support
      */
 
-extern int aty_init_cursor(struct fb_info *info);
+extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);
 
     /*
      *  Hardware acceleration
diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
index 6dda5d885a03..bebc08505d94 100644
--- a/drivers/video/fbdev/aty/atyfb_base.c
+++ b/drivers/video/fbdev/aty/atyfb_base.c
@@ -1316,10 +1316,10 @@ static int atyfb_set_par(struct fb_info *info)
 	par->accel_flags = var->accel_flags; /* hack */
 
 	if (var->accel_flags) {
-		info->fbops->fb_sync = atyfb_sync;
+		atyfb_ops.fb_sync = atyfb_sync;
 		info->flags &= ~FBINFO_HWACCEL_DISABLED;
 	} else {
-		info->fbops->fb_sync = NULL;
+		atyfb_ops.fb_sync = NULL;
 		info->flags |= FBINFO_HWACCEL_DISABLED;
 	}
 
@@ -2702,7 +2702,7 @@ static int aty_init(struct fb_info *info)
 
 #ifdef CONFIG_FB_ATY_CT
 	if (!noaccel && M64_HAS(INTEGRATED))
-		aty_init_cursor(info);
+		aty_init_cursor(info, &atyfb_ops);
 #endif /* CONFIG_FB_ATY_CT */
 	info->var = var;
 
diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
index 4cde25eab8e8..b06fa6e42e6e 100644
--- a/drivers/video/fbdev/aty/mach64_cursor.c
+++ b/drivers/video/fbdev/aty/mach64_cursor.c
@@ -194,7 +194,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-int aty_init_cursor(struct fb_info *info)
+int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops)
 {
 	unsigned long addr;
 
@@ -219,7 +219,7 @@ int aty_init_cursor(struct fb_info *info)
 	info->sprite.buf_align = 16; 	/* and 64 lines tall. */
 	info->sprite.flags = FB_PIXMAP_IO;
 
-	info->fbops->fb_cursor = atyfb_cursor;
+	atyfb_ops->fb_cursor = atyfb_cursor;
 
 	return 0;
 }
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 02/12] video: fbdev: mb862xx: modify the static fb_ops directly
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future. Drop the unnecessary EXPORT_SYMBOL() while at it.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++--------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb.h b/drivers/video/fbdev/mb862xx/mb862xxfb.h
index 50bc9b584ca1..52a77ea4e849 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb.h
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb.h
@@ -89,7 +89,7 @@ struct mb862xxfb_par {
 	u32			pseudo_palette[16];
 };
 
-extern void mb862xxfb_init_accel(struct fb_info *info, int xres);
+extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);
 #ifdef CONFIG_FB_MB862XX_I2C
 extern int mb862xx_i2c_init(struct mb862xxfb_par *par);
 extern void mb862xx_i2c_exit(struct mb862xxfb_par *par);
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
index f58ff900e82a..42569264801f 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
@@ -303,19 +303,19 @@ static void mb86290fb_fillrect(struct fb_info *info,
 	mb862xxfb_write_fifo(7, cmd, info);
 }
 
-void mb862xxfb_init_accel(struct fb_info *info, int xres)
+void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres)
 {
 	struct mb862xxfb_par *par = info->par;
 
 	if (info->var.bits_per_pixel = 32) {
-		info->fbops->fb_fillrect = cfb_fillrect;
-		info->fbops->fb_copyarea = cfb_copyarea;
-		info->fbops->fb_imageblit = cfb_imageblit;
+		fbops->fb_fillrect = cfb_fillrect;
+		fbops->fb_copyarea = cfb_copyarea;
+		fbops->fb_imageblit = cfb_imageblit;
 	} else {
 		outreg(disp, GC_L0EM, 3);
-		info->fbops->fb_fillrect = mb86290fb_fillrect;
-		info->fbops->fb_copyarea = mb86290fb_copyarea;
-		info->fbops->fb_imageblit = mb86290fb_imageblit;
+		fbops->fb_fillrect = mb86290fb_fillrect;
+		fbops->fb_copyarea = mb86290fb_copyarea;
+		fbops->fb_imageblit = mb86290fb_imageblit;
 	}
 	outreg(draw, GDC_REG_DRAW_BASE, 0);
 	outreg(draw, GDC_REG_MODE_MISC, 0x8000);
@@ -326,6 +326,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
 	    FBINFO_HWACCEL_IMAGEBLIT;
 	info->fix.accel = 0xff;	/*FIXME: add right define */
 }
-EXPORT_SYMBOL(mb862xxfb_init_accel);
 
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
index 962c0171d271..52755b591c14 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
@@ -194,6 +194,8 @@ static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
 	return 0;
 }
 
+static struct fb_ops mb862xxfb_ops;
+
 /*
  * set display parameters
  */
@@ -204,7 +206,7 @@ static int mb862xxfb_set_par(struct fb_info *fbi)
 
 	dev_dbg(par->dev, "%s\n", __func__);
 	if (par->type = BT_CORALP)
-		mb862xxfb_init_accel(fbi, fbi->var.xres);
+		mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
 
 	if (par->pre_init)
 		return 0;
-- 
2.20.1

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

* [PATCH v3 02/12] video: fbdev: mb862xx: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future. Drop the unnecessary EXPORT_SYMBOL() while at it.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++--------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb.h b/drivers/video/fbdev/mb862xx/mb862xxfb.h
index 50bc9b584ca1..52a77ea4e849 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb.h
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb.h
@@ -89,7 +89,7 @@ struct mb862xxfb_par {
 	u32			pseudo_palette[16];
 };
 
-extern void mb862xxfb_init_accel(struct fb_info *info, int xres);
+extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);
 #ifdef CONFIG_FB_MB862XX_I2C
 extern int mb862xx_i2c_init(struct mb862xxfb_par *par);
 extern void mb862xx_i2c_exit(struct mb862xxfb_par *par);
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
index f58ff900e82a..42569264801f 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
@@ -303,19 +303,19 @@ static void mb86290fb_fillrect(struct fb_info *info,
 	mb862xxfb_write_fifo(7, cmd, info);
 }
 
-void mb862xxfb_init_accel(struct fb_info *info, int xres)
+void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres)
 {
 	struct mb862xxfb_par *par = info->par;
 
 	if (info->var.bits_per_pixel == 32) {
-		info->fbops->fb_fillrect = cfb_fillrect;
-		info->fbops->fb_copyarea = cfb_copyarea;
-		info->fbops->fb_imageblit = cfb_imageblit;
+		fbops->fb_fillrect = cfb_fillrect;
+		fbops->fb_copyarea = cfb_copyarea;
+		fbops->fb_imageblit = cfb_imageblit;
 	} else {
 		outreg(disp, GC_L0EM, 3);
-		info->fbops->fb_fillrect = mb86290fb_fillrect;
-		info->fbops->fb_copyarea = mb86290fb_copyarea;
-		info->fbops->fb_imageblit = mb86290fb_imageblit;
+		fbops->fb_fillrect = mb86290fb_fillrect;
+		fbops->fb_copyarea = mb86290fb_copyarea;
+		fbops->fb_imageblit = mb86290fb_imageblit;
 	}
 	outreg(draw, GDC_REG_DRAW_BASE, 0);
 	outreg(draw, GDC_REG_MODE_MISC, 0x8000);
@@ -326,6 +326,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
 	    FBINFO_HWACCEL_IMAGEBLIT;
 	info->fix.accel = 0xff;	/*FIXME: add right define */
 }
-EXPORT_SYMBOL(mb862xxfb_init_accel);
 
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
index 962c0171d271..52755b591c14 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
@@ -194,6 +194,8 @@ static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
 	return 0;
 }
 
+static struct fb_ops mb862xxfb_ops;
+
 /*
  * set display parameters
  */
@@ -204,7 +206,7 @@ static int mb862xxfb_set_par(struct fb_info *fbi)
 
 	dev_dbg(par->dev, "%s\n", __func__);
 	if (par->type == BT_CORALP)
-		mb862xxfb_init_accel(fbi, fbi->var.xres);
+		mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
 
 	if (par->pre_init)
 		return 0;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 02/12] video: fbdev: mb862xx: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future. Drop the unnecessary EXPORT_SYMBOL() while at it.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
 drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++--------
 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb.h b/drivers/video/fbdev/mb862xx/mb862xxfb.h
index 50bc9b584ca1..52a77ea4e849 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb.h
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb.h
@@ -89,7 +89,7 @@ struct mb862xxfb_par {
 	u32			pseudo_palette[16];
 };
 
-extern void mb862xxfb_init_accel(struct fb_info *info, int xres);
+extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);
 #ifdef CONFIG_FB_MB862XX_I2C
 extern int mb862xx_i2c_init(struct mb862xxfb_par *par);
 extern void mb862xx_i2c_exit(struct mb862xxfb_par *par);
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
index f58ff900e82a..42569264801f 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
@@ -303,19 +303,19 @@ static void mb86290fb_fillrect(struct fb_info *info,
 	mb862xxfb_write_fifo(7, cmd, info);
 }
 
-void mb862xxfb_init_accel(struct fb_info *info, int xres)
+void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres)
 {
 	struct mb862xxfb_par *par = info->par;
 
 	if (info->var.bits_per_pixel == 32) {
-		info->fbops->fb_fillrect = cfb_fillrect;
-		info->fbops->fb_copyarea = cfb_copyarea;
-		info->fbops->fb_imageblit = cfb_imageblit;
+		fbops->fb_fillrect = cfb_fillrect;
+		fbops->fb_copyarea = cfb_copyarea;
+		fbops->fb_imageblit = cfb_imageblit;
 	} else {
 		outreg(disp, GC_L0EM, 3);
-		info->fbops->fb_fillrect = mb86290fb_fillrect;
-		info->fbops->fb_copyarea = mb86290fb_copyarea;
-		info->fbops->fb_imageblit = mb86290fb_imageblit;
+		fbops->fb_fillrect = mb86290fb_fillrect;
+		fbops->fb_copyarea = mb86290fb_copyarea;
+		fbops->fb_imageblit = mb86290fb_imageblit;
 	}
 	outreg(draw, GDC_REG_DRAW_BASE, 0);
 	outreg(draw, GDC_REG_MODE_MISC, 0x8000);
@@ -326,6 +326,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
 	    FBINFO_HWACCEL_IMAGEBLIT;
 	info->fix.accel = 0xff;	/*FIXME: add right define */
 }
-EXPORT_SYMBOL(mb862xxfb_init_accel);
 
 MODULE_LICENSE("GPL v2");
diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
index 962c0171d271..52755b591c14 100644
--- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
+++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
@@ -194,6 +194,8 @@ static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
 	return 0;
 }
 
+static struct fb_ops mb862xxfb_ops;
+
 /*
  * set display parameters
  */
@@ -204,7 +206,7 @@ static int mb862xxfb_set_par(struct fb_info *fbi)
 
 	dev_dbg(par->dev, "%s\n", __func__);
 	if (par->type == BT_CORALP)
-		mb862xxfb_init_accel(fbi, fbi->var.xres);
+		mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
 
 	if (par->pre_init)
 		return 0;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 03/12] video: fbdev: nvidia: modify the static fb_ops directly
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/nvidia/nvidia.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
index fbeeed5afe35..c583c018304d 100644
--- a/drivers/video/fbdev/nvidia/nvidia.c
+++ b/drivers/video/fbdev/nvidia/nvidia.c
@@ -607,6 +607,8 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
+static struct fb_ops nvidia_fb_ops;
+
 static int nvidiafb_set_par(struct fb_info *info)
 {
 	struct nvidia_par *par = info->par;
@@ -660,19 +662,19 @@ static int nvidiafb_set_par(struct fb_info *info)
 	info->fix.line_length = (info->var.xres_virtual *
 				 info->var.bits_per_pixel) >> 3;
 	if (info->var.accel_flags) {
-		info->fbops->fb_imageblit = nvidiafb_imageblit;
-		info->fbops->fb_fillrect = nvidiafb_fillrect;
-		info->fbops->fb_copyarea = nvidiafb_copyarea;
-		info->fbops->fb_sync = nvidiafb_sync;
+		nvidia_fb_ops.fb_imageblit = nvidiafb_imageblit;
+		nvidia_fb_ops.fb_fillrect = nvidiafb_fillrect;
+		nvidia_fb_ops.fb_copyarea = nvidiafb_copyarea;
+		nvidia_fb_ops.fb_sync = nvidiafb_sync;
 		info->pixmap.scan_align = 4;
 		info->flags &= ~FBINFO_HWACCEL_DISABLED;
 		info->flags |= FBINFO_READS_FAST;
 		NVResetGraphics(info);
 	} else {
-		info->fbops->fb_imageblit = cfb_imageblit;
-		info->fbops->fb_fillrect = cfb_fillrect;
-		info->fbops->fb_copyarea = cfb_copyarea;
-		info->fbops->fb_sync = NULL;
+		nvidia_fb_ops.fb_imageblit = cfb_imageblit;
+		nvidia_fb_ops.fb_fillrect = cfb_fillrect;
+		nvidia_fb_ops.fb_copyarea = cfb_copyarea;
+		nvidia_fb_ops.fb_sync = NULL;
 		info->pixmap.scan_align = 1;
 		info->flags |= FBINFO_HWACCEL_DISABLED;
 		info->flags &= ~FBINFO_READS_FAST;
@@ -1165,7 +1167,7 @@ static int nvidia_set_fbinfo(struct fb_info *info)
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 
 	if (!hwcur)
-	    info->fbops->fb_cursor = NULL;
+	    nvidia_fb_ops.fb_cursor = NULL;
 
 	info->var.accel_flags = (!noaccel);
 
-- 
2.20.1

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

* [PATCH v3 03/12] video: fbdev: nvidia: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/nvidia/nvidia.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
index fbeeed5afe35..c583c018304d 100644
--- a/drivers/video/fbdev/nvidia/nvidia.c
+++ b/drivers/video/fbdev/nvidia/nvidia.c
@@ -607,6 +607,8 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
+static struct fb_ops nvidia_fb_ops;
+
 static int nvidiafb_set_par(struct fb_info *info)
 {
 	struct nvidia_par *par = info->par;
@@ -660,19 +662,19 @@ static int nvidiafb_set_par(struct fb_info *info)
 	info->fix.line_length = (info->var.xres_virtual *
 				 info->var.bits_per_pixel) >> 3;
 	if (info->var.accel_flags) {
-		info->fbops->fb_imageblit = nvidiafb_imageblit;
-		info->fbops->fb_fillrect = nvidiafb_fillrect;
-		info->fbops->fb_copyarea = nvidiafb_copyarea;
-		info->fbops->fb_sync = nvidiafb_sync;
+		nvidia_fb_ops.fb_imageblit = nvidiafb_imageblit;
+		nvidia_fb_ops.fb_fillrect = nvidiafb_fillrect;
+		nvidia_fb_ops.fb_copyarea = nvidiafb_copyarea;
+		nvidia_fb_ops.fb_sync = nvidiafb_sync;
 		info->pixmap.scan_align = 4;
 		info->flags &= ~FBINFO_HWACCEL_DISABLED;
 		info->flags |= FBINFO_READS_FAST;
 		NVResetGraphics(info);
 	} else {
-		info->fbops->fb_imageblit = cfb_imageblit;
-		info->fbops->fb_fillrect = cfb_fillrect;
-		info->fbops->fb_copyarea = cfb_copyarea;
-		info->fbops->fb_sync = NULL;
+		nvidia_fb_ops.fb_imageblit = cfb_imageblit;
+		nvidia_fb_ops.fb_fillrect = cfb_fillrect;
+		nvidia_fb_ops.fb_copyarea = cfb_copyarea;
+		nvidia_fb_ops.fb_sync = NULL;
 		info->pixmap.scan_align = 1;
 		info->flags |= FBINFO_HWACCEL_DISABLED;
 		info->flags &= ~FBINFO_READS_FAST;
@@ -1165,7 +1167,7 @@ static int nvidia_set_fbinfo(struct fb_info *info)
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 
 	if (!hwcur)
-	    info->fbops->fb_cursor = NULL;
+	    nvidia_fb_ops.fb_cursor = NULL;
 
 	info->var.accel_flags = (!noaccel);
 
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 03/12] video: fbdev: nvidia: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/nvidia/nvidia.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
index fbeeed5afe35..c583c018304d 100644
--- a/drivers/video/fbdev/nvidia/nvidia.c
+++ b/drivers/video/fbdev/nvidia/nvidia.c
@@ -607,6 +607,8 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
+static struct fb_ops nvidia_fb_ops;
+
 static int nvidiafb_set_par(struct fb_info *info)
 {
 	struct nvidia_par *par = info->par;
@@ -660,19 +662,19 @@ static int nvidiafb_set_par(struct fb_info *info)
 	info->fix.line_length = (info->var.xres_virtual *
 				 info->var.bits_per_pixel) >> 3;
 	if (info->var.accel_flags) {
-		info->fbops->fb_imageblit = nvidiafb_imageblit;
-		info->fbops->fb_fillrect = nvidiafb_fillrect;
-		info->fbops->fb_copyarea = nvidiafb_copyarea;
-		info->fbops->fb_sync = nvidiafb_sync;
+		nvidia_fb_ops.fb_imageblit = nvidiafb_imageblit;
+		nvidia_fb_ops.fb_fillrect = nvidiafb_fillrect;
+		nvidia_fb_ops.fb_copyarea = nvidiafb_copyarea;
+		nvidia_fb_ops.fb_sync = nvidiafb_sync;
 		info->pixmap.scan_align = 4;
 		info->flags &= ~FBINFO_HWACCEL_DISABLED;
 		info->flags |= FBINFO_READS_FAST;
 		NVResetGraphics(info);
 	} else {
-		info->fbops->fb_imageblit = cfb_imageblit;
-		info->fbops->fb_fillrect = cfb_fillrect;
-		info->fbops->fb_copyarea = cfb_copyarea;
-		info->fbops->fb_sync = NULL;
+		nvidia_fb_ops.fb_imageblit = cfb_imageblit;
+		nvidia_fb_ops.fb_fillrect = cfb_fillrect;
+		nvidia_fb_ops.fb_copyarea = cfb_copyarea;
+		nvidia_fb_ops.fb_sync = NULL;
 		info->pixmap.scan_align = 1;
 		info->flags |= FBINFO_HWACCEL_DISABLED;
 		info->flags &= ~FBINFO_READS_FAST;
@@ -1165,7 +1167,7 @@ static int nvidia_set_fbinfo(struct fb_info *info)
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 
 	if (!hwcur)
-	    info->fbops->fb_cursor = NULL;
+	    nvidia_fb_ops.fb_cursor = NULL;
 
 	info->var.accel_flags = (!noaccel);
 
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/uvesafb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 439565cae7ab..53d08d1b56f5 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
 
 	/* Disable blanking if the user requested so. */
 	if (!blank)
-		info->fbops->fb_blank = NULL;
+		uvesafb_ops.fb_blank = NULL;
 
 	/*
 	 * Find out how much IO memory is required for the mode with
@@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
 			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
 
 	if (!par->ypan)
-		info->fbops->fb_pan_display = NULL;
+		uvesafb_ops.fb_pan_display = NULL;
 }
 
 static void uvesafb_init_mtrr(struct fb_info *info)
-- 
2.20.1

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

* [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/uvesafb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 439565cae7ab..53d08d1b56f5 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
 
 	/* Disable blanking if the user requested so. */
 	if (!blank)
-		info->fbops->fb_blank = NULL;
+		uvesafb_ops.fb_blank = NULL;
 
 	/*
 	 * Find out how much IO memory is required for the mode with
@@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
 			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
 
 	if (!par->ypan)
-		info->fbops->fb_pan_display = NULL;
+		uvesafb_ops.fb_pan_display = NULL;
 }
 
 static void uvesafb_init_mtrr(struct fb_info *info)
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Avoid modifying the fb_ops via info->fbops to let us make the pointer
const in the future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/uvesafb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 439565cae7ab..53d08d1b56f5 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
 
 	/* Disable blanking if the user requested so. */
 	if (!blank)
-		info->fbops->fb_blank = NULL;
+		uvesafb_ops.fb_blank = NULL;
 
 	/*
 	 * Find out how much IO memory is required for the mode with
@@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
 			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
 
 	if (!par->ypan)
-		info->fbops->fb_pan_display = NULL;
+		uvesafb_ops.fb_pan_display = NULL;
 }
 
 static void uvesafb_init_mtrr(struct fb_info *info)
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that we no longer modify the fbops, or hold non-const pointers to
it, we can make it const. After this, we can start making the fbops
const all over the place.

Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 include/linux/fb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/fb.h b/include/linux/fb.h
index a6ad528990de..6557fabdea62 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -472,7 +472,7 @@ struct fb_info {
 	struct fb_deferred_io *fbdefio;
 #endif
 
-	struct fb_ops *fbops;
+	const struct fb_ops *fbops;
 	struct device *device;		/* This is the parent */
 	struct device *dev;		/* This is this fb device */
 	int class_flag;                    /* private sysfs flags */
-- 
2.20.1

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

* [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that we no longer modify the fbops, or hold non-const pointers to
it, we can make it const. After this, we can start making the fbops
const all over the place.

Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 include/linux/fb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/fb.h b/include/linux/fb.h
index a6ad528990de..6557fabdea62 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -472,7 +472,7 @@ struct fb_info {
 	struct fb_deferred_io *fbdefio;
 #endif
 
-	struct fb_ops *fbops;
+	const struct fb_ops *fbops;
 	struct device *device;		/* This is the parent */
 	struct device *dev;		/* This is this fb device */
 	int class_flag;                    /* private sysfs flags */
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that we no longer modify the fbops, or hold non-const pointers to
it, we can make it const. After this, we can start making the fbops
const all over the place.

Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 include/linux/fb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/fb.h b/include/linux/fb.h
index a6ad528990de..6557fabdea62 100644
--- a/include/linux/fb.h
+++ b/include/linux/fb.h
@@ -472,7 +472,7 @@ struct fb_info {
 	struct fb_deferred_io *fbdefio;
 #endif
 
-	struct fb_ops *fbops;
+	const struct fb_ops *fbops;
 	struct device *device;		/* This is the parent */
 	struct device *dev;		/* This is this fb device */
 	int class_flag;                    /* private sysfs flags */
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 06/12] drm: constify fb ops across all drivers
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 2 +-
 drivers/gpu/drm/armada/armada_fbdev.c             | 2 +-
 drivers/gpu/drm/drm_fb_helper.c                   | 2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c         | 2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c        | 2 +-
 drivers/gpu/drm/msm/msm_fbdev.c                   | 2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c           | 4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c              | 2 +-
 drivers/gpu/drm/radeon/radeon_fb.c                | 2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c     | 2 +-
 drivers/gpu/drm/tegra/fb.c                        | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c                | 2 +-
 13 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 143753d237e7..2672dc64a310 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -69,7 +69,7 @@ amdgpufb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops amdgpufb_ops = {
+static const struct fb_ops amdgpufb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = amdgpufb_open,
diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
index 090cc0d699ae..ac8a78bfda03 100644
--- a/drivers/gpu/drm/armada/armada_fbdev.c
+++ b/drivers/gpu/drm/armada/armada_fbdev.c
@@ -16,7 +16,7 @@
 #include "armada_fb.h"
 #include "armada_gem.h"
 
-static /*const*/ struct fb_ops armada_fb_ops = {
+static const struct fb_ops armada_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_fillrect	= drm_fb_helper_cfb_fillrect,
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 1751bb9ee8d8..fb9bff0f4581 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1997,7 +1997,7 @@ static int drm_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 		return -ENODEV;
 }
 
-static struct fb_ops drm_fbdev_fb_ops = {
+static const struct fb_ops drm_fbdev_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open	= drm_fbdev_fb_open,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index b0877b97291c..647a1fd1d815 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -60,7 +60,7 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
 	return 0;
 }
 
-static struct fb_ops exynos_drm_fb_ops = {
+static const struct fb_ops exynos_drm_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_mmap        = exynos_drm_fb_mmap,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
index b4c1cea051e8..1d15560ccb6e 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
@@ -38,7 +38,7 @@ static int hibmcfb_create_object(
 	return ret;
 }
 
-static struct fb_ops hibmc_drm_fb_ops = {
+static const struct fb_ops hibmc_drm_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = drm_fb_helper_check_var,
 	.fb_set_par = drm_fb_helper_set_par,
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 48c960ca12fb..1e98e432c9fa 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -100,7 +100,7 @@ static int intel_fbdev_pan_display(struct fb_var_screeninfo *var,
 	return ret;
 }
 
-static struct fb_ops intelfb_ops = {
+static const struct fb_ops intelfb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_set_par = intel_fbdev_set_par,
diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c
index cff198b2f470..db48867df47d 100644
--- a/drivers/gpu/drm/msm/msm_fbdev.c
+++ b/drivers/gpu/drm/msm/msm_fbdev.c
@@ -26,7 +26,7 @@ struct msm_fbdev {
 	struct drm_framebuffer *fb;
 };
 
-static struct fb_ops msm_fb_ops = {
+static const struct fb_ops msm_fb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index f439f0a5b43a..0c5cdda3c336 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -203,7 +203,7 @@ nouveau_fbcon_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops nouveau_fbcon_ops = {
+static const struct fb_ops nouveau_fbcon_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = nouveau_fbcon_open,
@@ -214,7 +214,7 @@ static struct fb_ops nouveau_fbcon_ops = {
 	.fb_sync = nouveau_fbcon_sync,
 };
 
-static struct fb_ops nouveau_fbcon_sw_ops = {
+static const struct fb_ops nouveau_fbcon_sw_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = nouveau_fbcon_open,
diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
index 58f53946ee4d..b06e5cbfd03a 100644
--- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
+++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
@@ -70,7 +70,7 @@ static int omap_fbdev_pan_display(struct fb_var_screeninfo *var,
 	return drm_fb_helper_pan_display(var, fbi);
 }
 
-static struct fb_ops omap_fb_ops = {
+static const struct fb_ops omap_fb_ops = {
 	.owner = THIS_MODULE,
 
 	.fb_check_var	= drm_fb_helper_check_var,
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index 2c564f4f3468..8a93fcce40e5 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -73,7 +73,7 @@ radeonfb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops radeonfb_ops = {
+static const struct fb_ops radeonfb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = radeonfb_open,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
index 02be6c5ff857..521fe42ac5e2 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
@@ -27,7 +27,7 @@ static int rockchip_fbdev_mmap(struct fb_info *info,
 	return rockchip_gem_mmap_buf(private->fbdev_bo, vma);
 }
 
-static struct fb_ops rockchip_drm_fbdev_ops = {
+static const struct fb_ops rockchip_drm_fbdev_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_mmap	= rockchip_fbdev_mmap,
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 7cea89f29a5c..84f0e01e3428 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -192,7 +192,7 @@ static int tegra_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return __tegra_gem_mmap(&bo->gem, vma);
 }
 
-static struct fb_ops tegra_fb_ops = {
+static const struct fb_ops tegra_fb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_fillrect = drm_fb_helper_sys_fillrect,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
index ea29953e0b08..c59806d40e15 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
@@ -624,7 +624,7 @@ static int vmw_fb_set_par(struct fb_info *info)
 }
 
 
-static struct fb_ops vmw_fb_ops = {
+static const struct fb_ops vmw_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = vmw_fb_check_var,
 	.fb_set_par = vmw_fb_set_par,
-- 
2.20.1

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

* [PATCH v3 06/12] drm: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 2 +-
 drivers/gpu/drm/armada/armada_fbdev.c             | 2 +-
 drivers/gpu/drm/drm_fb_helper.c                   | 2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c         | 2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c        | 2 +-
 drivers/gpu/drm/msm/msm_fbdev.c                   | 2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c           | 4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c              | 2 +-
 drivers/gpu/drm/radeon/radeon_fb.c                | 2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c     | 2 +-
 drivers/gpu/drm/tegra/fb.c                        | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c                | 2 +-
 13 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 143753d237e7..2672dc64a310 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -69,7 +69,7 @@ amdgpufb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops amdgpufb_ops = {
+static const struct fb_ops amdgpufb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = amdgpufb_open,
diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
index 090cc0d699ae..ac8a78bfda03 100644
--- a/drivers/gpu/drm/armada/armada_fbdev.c
+++ b/drivers/gpu/drm/armada/armada_fbdev.c
@@ -16,7 +16,7 @@
 #include "armada_fb.h"
 #include "armada_gem.h"
 
-static /*const*/ struct fb_ops armada_fb_ops = {
+static const struct fb_ops armada_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_fillrect	= drm_fb_helper_cfb_fillrect,
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 1751bb9ee8d8..fb9bff0f4581 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1997,7 +1997,7 @@ static int drm_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 		return -ENODEV;
 }
 
-static struct fb_ops drm_fbdev_fb_ops = {
+static const struct fb_ops drm_fbdev_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open	= drm_fbdev_fb_open,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index b0877b97291c..647a1fd1d815 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -60,7 +60,7 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
 	return 0;
 }
 
-static struct fb_ops exynos_drm_fb_ops = {
+static const struct fb_ops exynos_drm_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_mmap        = exynos_drm_fb_mmap,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
index b4c1cea051e8..1d15560ccb6e 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
@@ -38,7 +38,7 @@ static int hibmcfb_create_object(
 	return ret;
 }
 
-static struct fb_ops hibmc_drm_fb_ops = {
+static const struct fb_ops hibmc_drm_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = drm_fb_helper_check_var,
 	.fb_set_par = drm_fb_helper_set_par,
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 48c960ca12fb..1e98e432c9fa 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -100,7 +100,7 @@ static int intel_fbdev_pan_display(struct fb_var_screeninfo *var,
 	return ret;
 }
 
-static struct fb_ops intelfb_ops = {
+static const struct fb_ops intelfb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_set_par = intel_fbdev_set_par,
diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c
index cff198b2f470..db48867df47d 100644
--- a/drivers/gpu/drm/msm/msm_fbdev.c
+++ b/drivers/gpu/drm/msm/msm_fbdev.c
@@ -26,7 +26,7 @@ struct msm_fbdev {
 	struct drm_framebuffer *fb;
 };
 
-static struct fb_ops msm_fb_ops = {
+static const struct fb_ops msm_fb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index f439f0a5b43a..0c5cdda3c336 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -203,7 +203,7 @@ nouveau_fbcon_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops nouveau_fbcon_ops = {
+static const struct fb_ops nouveau_fbcon_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = nouveau_fbcon_open,
@@ -214,7 +214,7 @@ static struct fb_ops nouveau_fbcon_ops = {
 	.fb_sync = nouveau_fbcon_sync,
 };
 
-static struct fb_ops nouveau_fbcon_sw_ops = {
+static const struct fb_ops nouveau_fbcon_sw_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = nouveau_fbcon_open,
diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
index 58f53946ee4d..b06e5cbfd03a 100644
--- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
+++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
@@ -70,7 +70,7 @@ static int omap_fbdev_pan_display(struct fb_var_screeninfo *var,
 	return drm_fb_helper_pan_display(var, fbi);
 }
 
-static struct fb_ops omap_fb_ops = {
+static const struct fb_ops omap_fb_ops = {
 	.owner = THIS_MODULE,
 
 	.fb_check_var	= drm_fb_helper_check_var,
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index 2c564f4f3468..8a93fcce40e5 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -73,7 +73,7 @@ radeonfb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops radeonfb_ops = {
+static const struct fb_ops radeonfb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = radeonfb_open,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
index 02be6c5ff857..521fe42ac5e2 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
@@ -27,7 +27,7 @@ static int rockchip_fbdev_mmap(struct fb_info *info,
 	return rockchip_gem_mmap_buf(private->fbdev_bo, vma);
 }
 
-static struct fb_ops rockchip_drm_fbdev_ops = {
+static const struct fb_ops rockchip_drm_fbdev_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_mmap	= rockchip_fbdev_mmap,
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 7cea89f29a5c..84f0e01e3428 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -192,7 +192,7 @@ static int tegra_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return __tegra_gem_mmap(&bo->gem, vma);
 }
 
-static struct fb_ops tegra_fb_ops = {
+static const struct fb_ops tegra_fb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_fillrect = drm_fb_helper_sys_fillrect,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
index ea29953e0b08..c59806d40e15 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
@@ -624,7 +624,7 @@ static int vmw_fb_set_par(struct fb_info *info)
 }
 
 
-static struct fb_ops vmw_fb_ops = {
+static const struct fb_ops vmw_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = vmw_fb_check_var,
 	.fb_set_par = vmw_fb_set_par,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 06/12] drm: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c            | 2 +-
 drivers/gpu/drm/armada/armada_fbdev.c             | 2 +-
 drivers/gpu/drm/drm_fb_helper.c                   | 2 +-
 drivers/gpu/drm/exynos/exynos_drm_fbdev.c         | 2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c | 2 +-
 drivers/gpu/drm/i915/display/intel_fbdev.c        | 2 +-
 drivers/gpu/drm/msm/msm_fbdev.c                   | 2 +-
 drivers/gpu/drm/nouveau/nouveau_fbcon.c           | 4 ++--
 drivers/gpu/drm/omapdrm/omap_fbdev.c              | 2 +-
 drivers/gpu/drm/radeon/radeon_fb.c                | 2 +-
 drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c     | 2 +-
 drivers/gpu/drm/tegra/fb.c                        | 2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fb.c                | 2 +-
 13 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
index 143753d237e7..2672dc64a310 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c
@@ -69,7 +69,7 @@ amdgpufb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops amdgpufb_ops = {
+static const struct fb_ops amdgpufb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = amdgpufb_open,
diff --git a/drivers/gpu/drm/armada/armada_fbdev.c b/drivers/gpu/drm/armada/armada_fbdev.c
index 090cc0d699ae..ac8a78bfda03 100644
--- a/drivers/gpu/drm/armada/armada_fbdev.c
+++ b/drivers/gpu/drm/armada/armada_fbdev.c
@@ -16,7 +16,7 @@
 #include "armada_fb.h"
 #include "armada_gem.h"
 
-static /*const*/ struct fb_ops armada_fb_ops = {
+static const struct fb_ops armada_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_fillrect	= drm_fb_helper_cfb_fillrect,
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index 1751bb9ee8d8..fb9bff0f4581 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -1997,7 +1997,7 @@ static int drm_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 		return -ENODEV;
 }
 
-static struct fb_ops drm_fbdev_fb_ops = {
+static const struct fb_ops drm_fbdev_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open	= drm_fbdev_fb_open,
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
index b0877b97291c..647a1fd1d815 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c
@@ -60,7 +60,7 @@ static int exynos_drm_fb_mmap(struct fb_info *info,
 	return 0;
 }
 
-static struct fb_ops exynos_drm_fb_ops = {
+static const struct fb_ops exynos_drm_fb_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_mmap        = exynos_drm_fb_mmap,
diff --git a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
index b4c1cea051e8..1d15560ccb6e 100644
--- a/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
+++ b/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c
@@ -38,7 +38,7 @@ static int hibmcfb_create_object(
 	return ret;
 }
 
-static struct fb_ops hibmc_drm_fb_ops = {
+static const struct fb_ops hibmc_drm_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = drm_fb_helper_check_var,
 	.fb_set_par = drm_fb_helper_set_par,
diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 48c960ca12fb..1e98e432c9fa 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -100,7 +100,7 @@ static int intel_fbdev_pan_display(struct fb_var_screeninfo *var,
 	return ret;
 }
 
-static struct fb_ops intelfb_ops = {
+static const struct fb_ops intelfb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_set_par = intel_fbdev_set_par,
diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c
index cff198b2f470..db48867df47d 100644
--- a/drivers/gpu/drm/msm/msm_fbdev.c
+++ b/drivers/gpu/drm/msm/msm_fbdev.c
@@ -26,7 +26,7 @@ struct msm_fbdev {
 	struct drm_framebuffer *fb;
 };
 
-static struct fb_ops msm_fb_ops = {
+static const struct fb_ops msm_fb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index f439f0a5b43a..0c5cdda3c336 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -203,7 +203,7 @@ nouveau_fbcon_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops nouveau_fbcon_ops = {
+static const struct fb_ops nouveau_fbcon_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = nouveau_fbcon_open,
@@ -214,7 +214,7 @@ static struct fb_ops nouveau_fbcon_ops = {
 	.fb_sync = nouveau_fbcon_sync,
 };
 
-static struct fb_ops nouveau_fbcon_sw_ops = {
+static const struct fb_ops nouveau_fbcon_sw_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = nouveau_fbcon_open,
diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c
index 58f53946ee4d..b06e5cbfd03a 100644
--- a/drivers/gpu/drm/omapdrm/omap_fbdev.c
+++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c
@@ -70,7 +70,7 @@ static int omap_fbdev_pan_display(struct fb_var_screeninfo *var,
 	return drm_fb_helper_pan_display(var, fbi);
 }
 
-static struct fb_ops omap_fb_ops = {
+static const struct fb_ops omap_fb_ops = {
 	.owner = THIS_MODULE,
 
 	.fb_check_var	= drm_fb_helper_check_var,
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index 2c564f4f3468..8a93fcce40e5 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -73,7 +73,7 @@ radeonfb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops radeonfb_ops = {
+static const struct fb_ops radeonfb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_open = radeonfb_open,
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
index 02be6c5ff857..521fe42ac5e2 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c
@@ -27,7 +27,7 @@ static int rockchip_fbdev_mmap(struct fb_info *info,
 	return rockchip_gem_mmap_buf(private->fbdev_bo, vma);
 }
 
-static struct fb_ops rockchip_drm_fbdev_ops = {
+static const struct fb_ops rockchip_drm_fbdev_ops = {
 	.owner		= THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_mmap	= rockchip_fbdev_mmap,
diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c
index 7cea89f29a5c..84f0e01e3428 100644
--- a/drivers/gpu/drm/tegra/fb.c
+++ b/drivers/gpu/drm/tegra/fb.c
@@ -192,7 +192,7 @@ static int tegra_fb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return __tegra_gem_mmap(&bo->gem, vma);
 }
 
-static struct fb_ops tegra_fb_ops = {
+static const struct fb_ops tegra_fb_ops = {
 	.owner = THIS_MODULE,
 	DRM_FB_HELPER_DEFAULT_OPS,
 	.fb_fillrect = drm_fb_helper_sys_fillrect,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
index ea29953e0b08..c59806d40e15 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
@@ -624,7 +624,7 @@ static int vmw_fb_set_par(struct fb_info *info)
 }
 
 
-static struct fb_ops vmw_fb_ops = {
+static const struct fb_ops vmw_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = vmw_fb_check_var,
 	.fb_set_par = vmw_fb_set_par,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Use const for fb_ops to let us make the fbops struct const in the
future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/intelfb/intelfb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h
index b54db05f028d..5de703902a21 100644
--- a/drivers/video/fbdev/intelfb/intelfb.h
+++ b/drivers/video/fbdev/intelfb/intelfb.h
@@ -273,7 +273,7 @@ struct intelfb_vsync {
 
 struct intelfb_info {
 	struct fb_info *info;
-	struct fb_ops  *fbops;
+	const struct fb_ops *fbops;
 	struct pci_dev *pdev;
 
 	struct intelfb_hwstate save_state;
-- 
2.20.1

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

* [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Use const for fb_ops to let us make the fbops struct const in the
future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/intelfb/intelfb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h
index b54db05f028d..5de703902a21 100644
--- a/drivers/video/fbdev/intelfb/intelfb.h
+++ b/drivers/video/fbdev/intelfb/intelfb.h
@@ -273,7 +273,7 @@ struct intelfb_vsync {
 
 struct intelfb_info {
 	struct fb_info *info;
-	struct fb_ops  *fbops;
+	const struct fb_ops *fbops;
 	struct pci_dev *pdev;
 
 	struct intelfb_hwstate save_state;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, intel-gfx

Use const for fb_ops to let us make the fbops struct const in the
future.

Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/intelfb/intelfb.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h
index b54db05f028d..5de703902a21 100644
--- a/drivers/video/fbdev/intelfb/intelfb.h
+++ b/drivers/video/fbdev/intelfb/intelfb.h
@@ -273,7 +273,7 @@ struct intelfb_vsync {
 
 struct intelfb_info {
 	struct fb_info *info;
-	struct fb_ops  *fbops;
+	const struct fb_ops *fbops;
 	struct pci_dev *pdev;
 
 	struct intelfb_hwstate save_state;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 08/12] video: constify fb ops across all drivers
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

This does not cover all drivers; some actually modify the fbops struct,
for example to adjust for different configurations, and others do more
involved things that I'd rather not touch in practically obsolete
drivers. Mostly this is the low hanging fruit where we can add "const"
and be done with it.

v3:
- un-constify atyfb, mb862xx, nvidia and uvesabf (0day)

v2:
- fix typo (Christophe de Dinechin)
- use "static const" instead of "const static" in mx3fb.c
- also constify smscufx.c

Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/68328fb.c                  | 2 +-
 drivers/video/fbdev/acornfb.c                  | 2 +-
 drivers/video/fbdev/amba-clcd.c                | 2 +-
 drivers/video/fbdev/amifb.c                    | 2 +-
 drivers/video/fbdev/arcfb.c                    | 2 +-
 drivers/video/fbdev/arkfb.c                    | 2 +-
 drivers/video/fbdev/asiliantfb.c               | 2 +-
 drivers/video/fbdev/atmel_lcdfb.c              | 2 +-
 drivers/video/fbdev/aty/aty128fb.c             | 2 +-
 drivers/video/fbdev/aty/radeon_base.c          | 2 +-
 drivers/video/fbdev/au1100fb.c                 | 2 +-
 drivers/video/fbdev/au1200fb.c                 | 2 +-
 drivers/video/fbdev/broadsheetfb.c             | 2 +-
 drivers/video/fbdev/bw2.c                      | 2 +-
 drivers/video/fbdev/carminefb.c                | 2 +-
 drivers/video/fbdev/cg14.c                     | 2 +-
 drivers/video/fbdev/cg3.c                      | 2 +-
 drivers/video/fbdev/cg6.c                      | 2 +-
 drivers/video/fbdev/chipsfb.c                  | 2 +-
 drivers/video/fbdev/cirrusfb.c                 | 2 +-
 drivers/video/fbdev/clps711x-fb.c              | 2 +-
 drivers/video/fbdev/cobalt_lcdfb.c             | 2 +-
 drivers/video/fbdev/controlfb.c                | 2 +-
 drivers/video/fbdev/cyber2000fb.c              | 2 +-
 drivers/video/fbdev/da8xx-fb.c                 | 2 +-
 drivers/video/fbdev/dnfb.c                     | 2 +-
 drivers/video/fbdev/efifb.c                    | 2 +-
 drivers/video/fbdev/ep93xx-fb.c                | 2 +-
 drivers/video/fbdev/fb-puv3.c                  | 2 +-
 drivers/video/fbdev/ffb.c                      | 2 +-
 drivers/video/fbdev/fm2fb.c                    | 2 +-
 drivers/video/fbdev/fsl-diu-fb.c               | 2 +-
 drivers/video/fbdev/g364fb.c                   | 2 +-
 drivers/video/fbdev/gbefb.c                    | 2 +-
 drivers/video/fbdev/geode/gx1fb_core.c         | 2 +-
 drivers/video/fbdev/geode/gxfb_core.c          | 2 +-
 drivers/video/fbdev/geode/lxfb_core.c          | 2 +-
 drivers/video/fbdev/goldfishfb.c               | 2 +-
 drivers/video/fbdev/grvga.c                    | 2 +-
 drivers/video/fbdev/gxt4500.c                  | 2 +-
 drivers/video/fbdev/hecubafb.c                 | 2 +-
 drivers/video/fbdev/hgafb.c                    | 2 +-
 drivers/video/fbdev/hitfb.c                    | 2 +-
 drivers/video/fbdev/hpfb.c                     | 2 +-
 drivers/video/fbdev/hyperv_fb.c                | 2 +-
 drivers/video/fbdev/i740fb.c                   | 2 +-
 drivers/video/fbdev/imsttfb.c                  | 2 +-
 drivers/video/fbdev/imxfb.c                    | 2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c       | 2 +-
 drivers/video/fbdev/kyro/fbdev.c               | 2 +-
 drivers/video/fbdev/leo.c                      | 2 +-
 drivers/video/fbdev/macfb.c                    | 2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c    | 2 +-
 drivers/video/fbdev/maxinefb.c                 | 2 +-
 drivers/video/fbdev/mbx/mbxfb.c                | 2 +-
 drivers/video/fbdev/metronomefb.c              | 2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c             | 2 +-
 drivers/video/fbdev/mx3fb.c                    | 5 +++--
 drivers/video/fbdev/neofb.c                    | 2 +-
 drivers/video/fbdev/ocfb.c                     | 2 +-
 drivers/video/fbdev/offb.c                     | 2 +-
 drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +-
 drivers/video/fbdev/p9100.c                    | 2 +-
 drivers/video/fbdev/platinumfb.c               | 2 +-
 drivers/video/fbdev/pm2fb.c                    | 2 +-
 drivers/video/fbdev/pm3fb.c                    | 2 +-
 drivers/video/fbdev/pmag-aa-fb.c               | 2 +-
 drivers/video/fbdev/pmag-ba-fb.c               | 2 +-
 drivers/video/fbdev/pmagb-b-fb.c               | 2 +-
 drivers/video/fbdev/ps3fb.c                    | 2 +-
 drivers/video/fbdev/pvr2fb.c                   | 2 +-
 drivers/video/fbdev/pxa168fb.c                 | 2 +-
 drivers/video/fbdev/pxafb.c                    | 4 ++--
 drivers/video/fbdev/q40fb.c                    | 2 +-
 drivers/video/fbdev/riva/fbdev.c               | 2 +-
 drivers/video/fbdev/s3c-fb.c                   | 2 +-
 drivers/video/fbdev/s3c2410fb.c                | 2 +-
 drivers/video/fbdev/s3fb.c                     | 2 +-
 drivers/video/fbdev/sa1100fb.c                 | 2 +-
 drivers/video/fbdev/savage/savagefb_driver.c   | 2 +-
 drivers/video/fbdev/sh7760fb.c                 | 2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c         | 4 ++--
 drivers/video/fbdev/simplefb.c                 | 2 +-
 drivers/video/fbdev/sis/sis_main.c             | 2 +-
 drivers/video/fbdev/skeletonfb.c               | 2 +-
 drivers/video/fbdev/sm712fb.c                  | 2 +-
 drivers/video/fbdev/smscufx.c                  | 2 +-
 drivers/video/fbdev/ssd1307fb.c                | 2 +-
 drivers/video/fbdev/sstfb.c                    | 2 +-
 drivers/video/fbdev/stifb.c                    | 2 +-
 drivers/video/fbdev/sunxvr1000.c               | 2 +-
 drivers/video/fbdev/sunxvr2500.c               | 2 +-
 drivers/video/fbdev/sunxvr500.c                | 2 +-
 drivers/video/fbdev/tcx.c                      | 2 +-
 drivers/video/fbdev/tdfxfb.c                   | 2 +-
 drivers/video/fbdev/tgafb.c                    | 2 +-
 drivers/video/fbdev/tmiofb.c                   | 2 +-
 drivers/video/fbdev/tridentfb.c                | 2 +-
 drivers/video/fbdev/valkyriefb.c               | 2 +-
 drivers/video/fbdev/vfb.c                      | 2 +-
 drivers/video/fbdev/vga16fb.c                  | 2 +-
 drivers/video/fbdev/vt8500lcdfb.c              | 2 +-
 drivers/video/fbdev/vt8623fb.c                 | 2 +-
 drivers/video/fbdev/w100fb.c                   | 2 +-
 drivers/video/fbdev/wm8505fb.c                 | 2 +-
 drivers/video/fbdev/xen-fbfront.c              | 2 +-
 drivers/video/fbdev/xilinxfb.c                 | 2 +-
 107 files changed, 111 insertions(+), 110 deletions(-)

diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c
index d48e96088f76..491fd5a82993 100644
--- a/drivers/video/fbdev/68328fb.c
+++ b/drivers/video/fbdev/68328fb.c
@@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var,
 			   struct fb_info *info);
 static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma);
 
-static struct fb_ops mc68x328fb_ops = {
+static const struct fb_ops mc68x328fb_ops = {
 	.fb_check_var	= mc68x328fb_check_var,
 	.fb_set_par	= mc68x328fb_set_par,
 	.fb_setcolreg	= mc68x328fb_setcolreg,
diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
index 7cacae5a8797..a3af49529173 100644
--- a/drivers/video/fbdev/acornfb.c
+++ b/drivers/video/fbdev/acornfb.c
@@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops acornfb_ops = {
+static const struct fb_ops acornfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= acornfb_check_var,
 	.fb_set_par	= acornfb_set_par,
diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index 7de43be6ef2c..c3d55fc6c4e0 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info,
 	return ret;
 }
 
-static struct fb_ops clcdfb_ops = {
+static const struct fb_ops clcdfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= clcdfb_check_var,
 	.fb_set_par	= clcdfb_set_par,
diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
index 91ddc9602014..20e03e00b66d 100644
--- a/drivers/video/fbdev/amifb.c
+++ b/drivers/video/fbdev/amifb.c
@@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id)
 }
 
 
-static struct fb_ops amifb_ops = {
+static const struct fb_ops amifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= amifb_check_var,
 	.fb_set_par	= amifb_set_par,
diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
index a48741aab240..314ab82e01c0 100644
--- a/drivers/video/fbdev/arcfb.c
+++ b/drivers/video/fbdev/arcfb.c
@@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
 	return err;
 }
 
-static struct fb_ops arcfb_ops = {
+static const struct fb_ops arcfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= arcfb_open,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
index f940e8b66b85..11ab9a153860 100644
--- a/drivers/video/fbdev/arkfb.c
+++ b/drivers/video/fbdev/arkfb.c
@@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
 
 /* Frame buffer operations */
 
-static struct fb_ops arkfb_ops = {
+static const struct fb_ops arkfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= arkfb_open,
 	.fb_release	= arkfb_release,
diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c
index ea31054a28ca..3e006da47752 100644
--- a/drivers/video/fbdev/asiliantfb.c
+++ b/drivers/video/fbdev/asiliantfb.c
@@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info);
 static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
 				u_int transp, struct fb_info *info);
 
-static struct fb_ops asiliantfb_ops = {
+static const struct fb_ops asiliantfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= asiliantfb_check_var,
 	.fb_set_par	= asiliantfb_set_par,
diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c
index 5ff8e0320d95..d567f5d56c13 100644
--- a/drivers/video/fbdev/atmel_lcdfb.c
+++ b/drivers/video/fbdev/atmel_lcdfb.c
@@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info)
 	return ((blank_mode = FB_BLANK_NORMAL) ? 1 : 0);
 }
 
-static struct fb_ops atmel_lcdfb_ops = {
+static const struct fb_ops atmel_lcdfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= atmel_lcdfb_check_var,
 	.fb_set_par	= atmel_lcdfb_set_par,
diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
index fc1e45d44719..d7e41c8dd533 100644
--- a/drivers/video/fbdev/aty/aty128fb.c
+++ b/drivers/video/fbdev/aty/aty128fb.c
@@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power);
 			  (readb(bios + (v) + 3) << 24))
 
 
-static struct fb_ops aty128fb_ops = {
+static const struct fb_ops aty128fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= aty128fb_check_var,
 	.fb_set_par	= aty128fb_set_par,
diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
index 4ca07866f2f6..3af00e3b965e 100644
--- a/drivers/video/fbdev/aty/radeon_base.c
+++ b/drivers/video/fbdev/aty/radeon_base.c
@@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info)
 }
 
 
-static struct fb_ops radeonfb_ops = {
+static const struct fb_ops radeonfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_check_var		= radeonfb_check_var,
 	.fb_set_par		= radeonfb_set_par,
diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
index 99941ae1f3a1..37a6512feda0 100644
--- a/drivers/video/fbdev/au1100fb.c
+++ b/drivers/video/fbdev/au1100fb.c
@@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
 			fbdev->fb_len);
 }
 
-static struct fb_ops au1100fb_ops +static const struct fb_ops au1100fb_ops  {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= au1100fb_fb_setcolreg,
diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c
index 265d3b45efd0..c00e01a17368 100644
--- a/drivers/video/fbdev/au1200fb.c
+++ b/drivers/video/fbdev/au1200fb.c
@@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd,
 }
 
 
-static struct fb_ops au1200fb_fb_ops = {
+static const struct fb_ops au1200fb_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= au1200fb_fb_check_var,
 	.fb_set_par	= au1200fb_fb_set_par,
diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
index d6ba348deb9f..fd66f4d4a621 100644
--- a/drivers/video/fbdev/broadsheetfb.c
+++ b/drivers/video/fbdev/broadsheetfb.c
@@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops broadsheetfb_ops = {
+static const struct fb_ops broadsheetfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write	= broadsheetfb_write,
diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c
index 436f10f3d375..0d9a6bb57a09 100644
--- a/drivers/video/fbdev/bw2.c
+++ b/drivers/video/fbdev/bw2.c
@@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops bw2_ops = {
+static const struct fb_ops bw2_ops = {
 	.owner			= THIS_MODULE,
 	.fb_blank		= bw2_blank,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
index 9f3be0258623..bf3f2a9598b1 100644
--- a/drivers/video/fbdev/carminefb.c
+++ b/drivers/video/fbdev/carminefb.c
@@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw)
 	return 0;
 }
 
-static struct fb_ops carminefb_ops = {
+static const struct fb_ops carminefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c
index d80d99db3a46..a620b51cf7d0 100644
--- a/drivers/video/fbdev/cg14.c
+++ b/drivers/video/fbdev/cg14.c
@@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg14_ops = {
+static const struct fb_ops cg14_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg14_setcolreg,
 	.fb_pan_display		= cg14_pan_display,
diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c
index 09f616dddfd7..77f6470ce665 100644
--- a/drivers/video/fbdev/cg3.c
+++ b/drivers/video/fbdev/cg3.c
@@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg3_ops = {
+static const struct fb_ops cg3_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg3_setcolreg,
 	.fb_blank		= cg3_blank,
diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c
index d5888aecc2fb..a1c68cd48d7e 100644
--- a/drivers/video/fbdev/cg6.c
+++ b/drivers/video/fbdev/cg6.c
@@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg6_ops = {
+static const struct fb_ops cg6_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg6_setcolreg,
 	.fb_blank		= cg6_blank,
diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c
index f4dc320dcafe..998067b701fa 100644
--- a/drivers/video/fbdev/chipsfb.c
+++ b/drivers/video/fbdev/chipsfb.c
@@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
 			     u_int transp, struct fb_info *info);
 static int chipsfb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops chipsfb_ops = {
+static const struct fb_ops chipsfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= chipsfb_check_var,
 	.fb_set_par	= chipsfb_set_par,
diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c
index e4ce5667b125..c3a3e344cee3 100644
--- a/drivers/video/fbdev/cirrusfb.c
+++ b/drivers/video/fbdev/cirrusfb.c
@@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info)
 #endif /* CONFIG_ZORRO */
 
 /* function table of the above functions */
-static struct fb_ops cirrusfb_ops = {
+static const struct fb_ops cirrusfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= cirrusfb_open,
 	.fb_release	= cirrusfb_release,
diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
index cabbc721f894..c5d15c6db287 100644
--- a/drivers/video/fbdev/clps711x-fb.c
+++ b/drivers/video/fbdev/clps711x-fb.c
@@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops clps711x_fb_ops = {
+static const struct fb_ops clps711x_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= clps711x_fb_setcolreg,
 	.fb_check_var	= clps711x_fb_check_var,
diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
index 544946901e8b..5f8b6324d2e8 100644
--- a/drivers/video/fbdev/cobalt_lcdfb.c
+++ b/drivers/video/fbdev/cobalt_lcdfb.c
@@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-static struct fb_ops cobalt_lcd_fbops = {
+static const struct fb_ops cobalt_lcd_fbops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= cobalt_lcdfb_read,
 	.fb_write	= cobalt_lcdfb_write,
diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
index 9a680ef3ffc3..38b61cdb5ca4 100644
--- a/drivers/video/fbdev/controlfb.c
+++ b/drivers/video/fbdev/controlfb.c
@@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM;
 static int default_cmode __initdata = CMODE_NVRAM;
 
 
-static struct fb_ops controlfb_ops = {
+static const struct fb_ops controlfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= controlfb_check_var,
 	.fb_set_par	= controlfb_set_par,
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 3a2d9ff0aa42..460826a7ad55 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops cyber2000fb_ops = {
+static const struct fb_ops cyber2000fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= cyber2000fb_check_var,
 	.fb_set_par	= cyber2000fb_set_par,
diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c
index 2d3dcc52fcf3..73c3c4c8cc12 100644
--- a/drivers/video/fbdev/da8xx-fb.c
+++ b/drivers/video/fbdev/da8xx-fb.c
@@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops da8xx_fb_ops = {
+static const struct fb_ops da8xx_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = fb_check_var,
 	.fb_set_par = da8xxfb_set_par,
diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c
index 8da517eaa4a3..3688f9165848 100644
--- a/drivers/video/fbdev/dnfb.c
+++ b/drivers/video/fbdev/dnfb.c
@@ -108,7 +108,7 @@
 static int dnfb_blank(int blank, struct fb_info *info);
 static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
 
-static struct fb_ops dn_fb_ops = {
+static const struct fb_ops dn_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= dnfb_blank,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index 51d97ec4f58f..f03f9fb60c26 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info)
 	fb_dealloc_cmap(&info->cmap);
 }
 
-static struct fb_ops efifb_ops = {
+static const struct fb_ops efifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= efifb_destroy,
 	.fb_setcolreg	= efifb_setcolreg,
diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c
index d04a047094fc..cda2ef337423 100644
--- a/drivers/video/fbdev/ep93xx-fb.c
+++ b/drivers/video/fbdev/ep93xx-fb.c
@@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops ep93xxfb_ops = {
+static const struct fb_ops ep93xxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= ep93xxfb_check_var,
 	.fb_set_par	= ep93xxfb_set_par,
diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c
index fa62c4dff7d1..75df6aabac21 100644
--- a/drivers/video/fbdev/fb-puv3.c
+++ b/drivers/video/fbdev/fb-puv3.c
@@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info,
 	return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len);
 }
 
-static struct fb_ops unifb_ops = {
+static const struct fb_ops unifb_ops = {
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
 	.fb_check_var	= unifb_check_var,
diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c
index cd2d1db239a2..948b73184433 100644
--- a/drivers/video/fbdev/ffb.c
+++ b/drivers/video/fbdev/ffb.c
@@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops ffb_ops = {
+static const struct fb_ops ffb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= ffb_setcolreg,
 	.fb_blank		= ffb_blank,
diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c
index ac7a4ebfd390..3b727d528fde 100644
--- a/drivers/video/fbdev/fm2fb.c
+++ b/drivers/video/fbdev/fm2fb.c
@@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                            u_int transp, struct fb_info *info);
 static int fm2fb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops fm2fb_ops = {
+static const struct fb_ops fm2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= fm2fb_setcolreg,
 	.fb_blank	= fm2fb_blank,
diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
index d19f58263b4e..7cacabdd5f12 100644
--- a/drivers/video/fbdev/fsl-diu-fb.c
+++ b/drivers/video/fbdev/fsl-diu-fb.c
@@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user)
 	return res;
 }
 
-static struct fb_ops fsl_diu_ops = {
+static const struct fb_ops fsl_diu_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = fsl_diu_check_var,
 	.fb_set_par = fsl_diu_set_par,
diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
index 223896cc5f7d..845b79da2a7c 100644
--- a/drivers/video/fbdev/g364fb.c
+++ b/drivers/video/fbdev/g364fb.c
@@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
 static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
 static int g364fb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops g364fb_ops = {
+static const struct fb_ops g364fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= g364fb_setcolreg,
 	.fb_pan_display	= g364fb_pan_display,
diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c
index b9f6a82a0495..31270a8986e8 100644
--- a/drivers/video/fbdev/gbefb.c
+++ b/drivers/video/fbdev/gbefb.c
@@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info,
 	return 0;
 }
 
-static struct fb_ops gbefb_ops = {
+static const struct fb_ops gbefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gbefb_check_var,
 	.fb_set_par	= gbefb_set_par,
diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c
index 737e472fac14..5d34d89fb665 100644
--- a/drivers/video/fbdev/geode/gx1fb_core.c
+++ b/drivers/video/fbdev/geode/gx1fb_core.c
@@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops gx1fb_ops = {
+static const struct fb_ops gx1fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gx1fb_check_var,
 	.fb_set_par	= gx1fb_set_par,
diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
index 435ce2aa4240..d38a148d4746 100644
--- a/drivers/video/fbdev/geode/gxfb_core.c
+++ b/drivers/video/fbdev/geode/gxfb_core.c
@@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
 	return 0;
 }
 
-static struct fb_ops gxfb_ops = {
+static const struct fb_ops gxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gxfb_check_var,
 	.fb_set_par	= gxfb_set_par,
diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c
index b0f07d676eb3..adc2d9c2395e 100644
--- a/drivers/video/fbdev/geode/lxfb_core.c
+++ b/drivers/video/fbdev/geode/lxfb_core.c
@@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
 	return 0;
 }
 
-static struct fb_ops lxfb_ops = {
+static const struct fb_ops lxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= lxfb_check_var,
 	.fb_set_par	= lxfb_set_par,
diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
index f60ac276703d..9c83ec3f8e1f 100644
--- a/drivers/video/fbdev/goldfishfb.c
+++ b/drivers/video/fbdev/goldfishfb.c
@@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops goldfish_fb_ops = {
+static const struct fb_ops goldfish_fb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_check_var   = goldfish_fb_check_var,
 	.fb_set_par     = goldfish_fb_set_par,
diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c
index d22e8b0c906d..07dda03e0957 100644
--- a/drivers/video/fbdev/grvga.c
+++ b/drivers/video/fbdev/grvga.c
@@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var,
 	return 0;
 }
 
-static struct fb_ops grvga_ops = {
+static const struct fb_ops grvga_ops = {
 	.owner          = THIS_MODULE,
 	.fb_check_var   = grvga_check_var,
 	.fb_set_par	= grvga_set_par,
diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c
index c7502fd8f447..13ded3a10708 100644
--- a/drivers/video/fbdev/gxt4500.c
+++ b/drivers/video/fbdev/gxt4500.c
@@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = {
 	.mmio_len = 0x20000,
 };
 
-static struct fb_ops gxt4500_ops = {
+static const struct fb_ops gxt4500_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = gxt4500_check_var,
 	.fb_set_par = gxt4500_set_par,
diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c
index 8577195cb533..00d77105161a 100644
--- a/drivers/video/fbdev/hecubafb.c
+++ b/drivers/video/fbdev/hecubafb.c
@@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops hecubafb_ops = {
+static const struct fb_ops hecubafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write	= hecubafb_write,
diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c
index 59e1cae57948..a45fcff1461f 100644
--- a/drivers/video/fbdev/hgafb.c
+++ b/drivers/video/fbdev/hgafb.c
@@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
 	}
 }
 
-static struct fb_ops hgafb_ops = {
+static const struct fb_ops hgafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= hgafb_open,
 	.fb_release	= hgafb_release,
diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c
index abe3e54d4506..009e5d2aa100 100644
--- a/drivers/video/fbdev/hitfb.c
+++ b/drivers/video/fbdev/hitfb.c
@@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops hitfb_ops = {
+static const struct fb_ops hitfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= hitfb_check_var,
 	.fb_set_par		= hitfb_set_par,
diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
index a79af8f069d1..f02be0db335e 100644
--- a/drivers/video/fbdev/hpfb.c
+++ b/drivers/video/fbdev/hpfb.c
@@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops hpfb_ops = {
+static const struct fb_ops hpfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= hpfb_setcolreg,
 	.fb_blank	= hpfb_blank,
diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
index 2dcb7c58b31e..fcd546e5c031 100644
--- a/drivers/video/fbdev/hyperv_fb.c
+++ b/drivers/video/fbdev/hyperv_fb.c
@@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p,
 		synthvid_update(p);
 }
 
-static struct fb_ops hvfb_ops = {
+static const struct fb_ops hvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = hvfb_check_var,
 	.fb_set_par = hvfb_set_par,
diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c
index 347cf8babc3e..c65ec7386e87 100644
--- a/drivers/video/fbdev/i740fb.c
+++ b/drivers/video/fbdev/i740fb.c
@@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info)
 	return (blank_mode = FB_BLANK_NORMAL) ? 1 : 0;
 }
 
-static struct fb_ops i740fb_ops = {
+static const struct fb_ops i740fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= i740fb_open,
 	.fb_release	= i740fb_release,
diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
index 58b01c7d9056..3ac053b88495 100644
--- a/drivers/video/fbdev/imsttfb.c
+++ b/drivers/video/fbdev/imsttfb.c
@@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = {
 	.remove =	imsttfb_remove,
 };
 
-static struct fb_ops imsttfb_ops = {
+static const struct fb_ops imsttfb_ops = {
 	.owner 		= THIS_MODULE,
 	.fb_check_var	= imsttfb_check_var,
 	.fb_set_par 	= imsttfb_set_par,
diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
index b3286d1fa543..08a17eb2a5c7 100644
--- a/drivers/video/fbdev/imxfb.c
+++ b/drivers/video/fbdev/imxfb.c
@@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops imxfb_ops = {
+static const struct fb_ops imxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= imxfb_check_var,
 	.fb_set_par	= imxfb_set_par,
diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c
index a76c61512c60..c744891781a5 100644
--- a/drivers/video/fbdev/intelfb/intelfbdrv.c
+++ b/drivers/video/fbdev/intelfb/intelfbdrv.c
@@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = {
 static int num_registered = 0;
 
 /* fb ops */
-static struct fb_ops intel_fb_ops = {
+static const struct fb_ops intel_fb_ops = {
 	.owner =		THIS_MODULE,
 	.fb_open =              intelfb_open,
 	.fb_release =           intelfb_release,
diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c
index a7bd9f25911b..72dff2e42e3a 100644
--- a/drivers/video/fbdev/kyro/fbdev.c
+++ b/drivers/video/fbdev/kyro/fbdev.c
@@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = {
 	.remove		= kyrofb_remove,
 };
 
-static struct fb_ops kyrofb_ops = {
+static const struct fb_ops kyrofb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= kyrofb_check_var,
 	.fb_set_par	= kyrofb_set_par,
diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c
index 5b1141ac182b..40b11cce0ad6 100644
--- a/drivers/video/fbdev/leo.c
+++ b/drivers/video/fbdev/leo.c
@@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops leo_ops = {
+static const struct fb_ops leo_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= leo_setcolreg,
 	.fb_blank		= leo_blank,
diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c
index 9a6feee96133..e05a97662ca8 100644
--- a/drivers/video/fbdev/macfb.c
+++ b/drivers/video/fbdev/macfb.c
@@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green,
 	return 0;
 }
 
-static struct fb_ops macfb_ops = {
+static const struct fb_ops macfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= macfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
index d2a81a2c3ac0..7655afa3fd50 100644
--- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
+++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
@@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) {
 #undef m2info
 }
 
-static struct fb_ops matroxfb_dh_ops = {
+static const struct fb_ops matroxfb_dh_ops = {
 	.owner =	THIS_MODULE,
 	.fb_open =	matroxfb_dh_open,
 	.fb_release =	matroxfb_dh_release,
diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c
index 5bb1b5c308a7..ae1a42bcb0ea 100644
--- a/drivers/video/fbdev/maxinefb.c
+++ b/drivers/video/fbdev/maxinefb.c
@@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green,
 	return 0;
 }
 
-static struct fb_ops maxinefb_ops = {
+static const struct fb_ops maxinefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= maxinefb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c
index 50935252b50b..25dad4507d77 100644
--- a/drivers/video/fbdev/mbx/mbxfb.c
+++ b/drivers/video/fbdev/mbx/mbxfb.c
@@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd,
 	return -EINVAL;
 }
 
-static struct fb_ops mbxfb_ops = {
+static const struct fb_ops mbxfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = mbxfb_check_var,
 	.fb_set_par = mbxfb_set_par,
diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c
index bb4fee52e501..a42e2eceee48 100644
--- a/drivers/video/fbdev/metronomefb.c
+++ b/drivers/video/fbdev/metronomefb.c
@@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops metronomefb_ops = {
+static const struct fb_ops metronomefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_write	= metronomefb_write,
 	.fb_fillrect	= metronomefb_fillrect,
diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 47bc7c59bbd8..33db0850086f 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops mmpfb_ops = {
+static const struct fb_ops mmpfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= mmpfb_blank,
 	.fb_check_var	= mmpfb_check_var,
diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
index bafd5f5fac5a..4af28e4421e5 100644
--- a/drivers/video/fbdev/mx3fb.c
+++ b/drivers/video/fbdev/mx3fb.c
@@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
  * invoked by the core framebuffer driver to perform operations like
  * blitting, rectangle filling, copy regions and cursor definition.
  */
-static struct fb_ops mx3fb_ops = {
+static const struct fb_ops mx3fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_set_par = mx3fb_set_par,
 	.fb_check_var = mx3fb_check_var,
@@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi)
  * mx3fb_init_fbinfo() - initialize framebuffer information object.
  * @return:	initialized framebuffer structure.
  */
-static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
+static struct fb_info *mx3fb_init_fbinfo(struct device *dev,
+					 const struct fb_ops *ops)
 {
 	struct fb_info *fbi;
 	struct mx3fb_info *mx3fbi;
diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
index b770946a0920..e6ea853c1723 100644
--- a/drivers/video/fbdev/neofb.c
+++ b/drivers/video/fbdev/neofb.c
@@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 }
 */
 
-static struct fb_ops neofb_ops = {
+static const struct fb_ops neofb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= neofb_open,
 	.fb_release	= neofb_release,
diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c
index a970edc2a6f8..c8cee2d890dc 100644
--- a/drivers/video/fbdev/ocfb.c
+++ b/drivers/video/fbdev/ocfb.c
@@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev)
 	return 0;
 }
 
-static struct fb_ops ocfb_ops = {
+static const struct fb_ops ocfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= ocfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
index fbc6eafb63c7..5cd0f5f6a4ae 100644
--- a/drivers/video/fbdev/offb.c
+++ b/drivers/video/fbdev/offb.c
@@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info)
 	framebuffer_release(info);
 }
 
-static struct fb_ops offb_ops = {
+static const struct fb_ops offb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= offb_destroy,
 	.fb_setcolreg	= offb_setcolreg,
diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
index 858c2c011d19..8dfa9158ba78 100644
--- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
@@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf,
 }
 #endif
 
-static struct fb_ops omapfb_ops = {
+static const struct fb_ops omapfb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_open        = omapfb_open,
 	.fb_release     = omapfb_release,
diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c
index 8c18cc51aae2..6da672e92643 100644
--- a/drivers/video/fbdev/p9100.c
+++ b/drivers/video/fbdev/p9100.c
@@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops p9100_ops = {
+static const struct fb_ops p9100_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= p9100_setcolreg,
 	.fb_blank		= p9100_blank,
diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c
index 632b246ca35f..ce413a9df06e 100644
--- a/drivers/video/fbdev/platinumfb.c
+++ b/drivers/video/fbdev/platinumfb.c
@@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var,
  * Interface used by the world
  */
 
-static struct fb_ops platinumfb_ops = {
+static const struct fb_ops platinumfb_ops = {
 	.owner =	THIS_MODULE,
 	.fb_check_var	= platinumfb_check_var,
 	.fb_set_par	= platinumfb_set_par,
diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c
index 1dcf02e12af4..8f933bad461c 100644
--- a/drivers/video/fbdev/pm2fb.c
+++ b/drivers/video/fbdev/pm2fb.c
@@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
  *  Frame buffer operations
  */
 
-static struct fb_ops pm2fb_ops = {
+static const struct fb_ops pm2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pm2fb_check_var,
 	.fb_set_par	= pm2fb_set_par,
diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c
index 6130aa56a1e9..15a2b495235b 100644
--- a/drivers/video/fbdev/pm3fb.c
+++ b/drivers/video/fbdev/pm3fb.c
@@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info)
 	 *  Frame buffer operations
 	 */
 
-static struct fb_ops pm3fb_ops = {
+static const struct fb_ops pm3fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pm3fb_check_var,
 	.fb_set_par	= pm3fb_set_par,
diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c
index d1e78ce3a9c2..7b33b52b2526 100644
--- a/drivers/video/fbdev/pmag-aa-fb.c
+++ b/drivers/video/fbdev/pmag-aa-fb.c
@@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops aafb_ops = {
+static const struct fb_ops aafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= aafb_blank,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c
index 56b912bb28de..a60e56d8980b 100644
--- a/drivers/video/fbdev/pmag-ba-fb.c
+++ b/drivers/video/fbdev/pmag-ba-fb.c
@@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops pmagbafb_ops = {
+static const struct fb_ops pmagbafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pmagbafb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c
index 2822b2225924..f02080f21077 100644
--- a/drivers/video/fbdev/pmagb-b-fb.c
+++ b/drivers/video/fbdev/pmagb-b-fb.c
@@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops pmagbbfb_ops = {
+static const struct fb_ops pmagbbfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pmagbbfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c
index 5ed2db39d823..834f63edf700 100644
--- a/drivers/video/fbdev/ps3fb.c
+++ b/drivers/video/fbdev/ps3fb.c
@@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr)
 }
 
 
-static struct fb_ops ps3fb_ops = {
+static const struct fb_ops ps3fb_ops = {
 	.fb_open	= ps3fb_open,
 	.fb_release	= ps3fb_release,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
index 0a3b2b7c7891..fcb16eabbb0d 100644
--- a/drivers/video/fbdev/pvr2fb.c
+++ b/drivers/video/fbdev/pvr2fb.c
@@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
 }
 #endif /* CONFIG_PVR2_DMA */
 
-static struct fb_ops pvr2fb_ops = {
+static const struct fb_ops pvr2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pvr2fb_setcolreg,
 	.fb_blank	= pvr2fb_blank,
diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c
index 1410f476e135..c672c3354a2c 100644
--- a/drivers/video/fbdev/pxa168fb.c
+++ b/drivers/video/fbdev/pxa168fb.c
@@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id)
 	return IRQ_NONE;
 }
 
-static struct fb_ops pxa168fb_ops = {
+static const struct fb_ops pxa168fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pxa168fb_check_var,
 	.fb_set_par	= pxa168fb_set_par,
diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
index f70c9f79622e..6f7e9fb63190 100644
--- a/drivers/video/fbdev/pxafb.c
+++ b/drivers/video/fbdev/pxafb.c
@@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops pxafb_ops = {
+static const struct fb_ops pxafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pxafb_check_var,
 	.fb_set_par	= pxafb_set_par,
@@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops overlay_fb_ops = {
+static const struct fb_ops overlay_fb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_open		= overlayfb_open,
 	.fb_release		= overlayfb_release,
diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c
index 0b93aa964d43..79ff14a35c85 100644
--- a/drivers/video/fbdev/q40fb.c
+++ b/drivers/video/fbdev/q40fb.c
@@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green,
     return 0;
 }
 
-static struct fb_ops q40fb_ops = {
+static const struct fb_ops q40fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= q40fb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
index ca593a3e41d7..764ec3285e62 100644
--- a/drivers/video/fbdev/riva/fbdev.c
+++ b/drivers/video/fbdev/riva/fbdev.c
@@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info)
  * ------------------------------------------------------------------------- */
 
 /* kernel interface */
-static struct fb_ops riva_fb_ops = {
+static const struct fb_ops riva_fb_ops = {
 	.owner 		= THIS_MODULE,
 	.fb_open	= rivafb_open,
 	.fb_release	= rivafb_release,
diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c
index ba04d7a67829..f4871c430f8d 100644
--- a/drivers/video/fbdev/s3c-fb.c
+++ b/drivers/video/fbdev/s3c-fb.c
@@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd,
 	return ret;
 }
 
-static struct fb_ops s3c_fb_ops = {
+static const struct fb_ops s3c_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= s3c_fb_check_var,
 	.fb_set_par	= s3c_fb_set_par,
diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
index a702da89910b..2fb15a540167 100644
--- a/drivers/video/fbdev/s3c2410fb.c
+++ b/drivers/video/fbdev/s3c2410fb.c
@@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev,
 
 static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store);
 
-static struct fb_ops s3c2410fb_ops = {
+static const struct fb_ops s3c2410fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= s3c2410fb_check_var,
 	.fb_set_par	= s3c2410fb_set_par,
diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c
index be16c349c10f..60c424fae988 100644
--- a/drivers/video/fbdev/s3fb.c
+++ b/drivers/video/fbdev/s3fb.c
@@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 
 /* Frame buffer operations */
 
-static struct fb_ops s3fb_ops = {
+static const struct fb_ops s3fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= s3fb_open,
 	.fb_release	= s3fb_release,
diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
index 81ad3aa1ca06..4680cc3efb81 100644
--- a/drivers/video/fbdev/sa1100fb.c
+++ b/drivers/video/fbdev/sa1100fb.c
@@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info,
 	return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len);
 }
 
-static struct fb_ops sa1100fb_ops = {
+static const struct fb_ops sa1100fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= sa1100fb_check_var,
 	.fb_set_par	= sa1100fb_set_par,
diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c
index 512789f5f884..aab312a7d9da 100644
--- a/drivers/video/fbdev/savage/savagefb_driver.c
+++ b/drivers/video/fbdev/savage/savagefb_driver.c
@@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops savagefb_ops = {
+static const struct fb_ops savagefb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_open        = savagefb_open,
 	.fb_release     = savagefb_release,
diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
index ab8fe838c776..b8ec8d9bb4c8 100644
--- a/drivers/video/fbdev/sh7760fb.c
+++ b/drivers/video/fbdev/sh7760fb.c
@@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops sh7760fb_ops = {
+static const struct fb_ops sh7760fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_blank = sh7760fb_blank,
 	.fb_check_var = sh7760fb_check_var,
diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
index c249763dbf0b..25f119efebc0 100644
--- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
+++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
@@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma)
 				 ovl->dma_handle, ovl->fb_size);
 }
 
-static struct fb_ops sh_mobile_lcdc_overlay_ops = {
+static const struct fb_ops sh_mobile_lcdc_overlay_ops = {
 	.owner          = THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
@@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma)
 				 ch->dma_handle, ch->fb_size);
 }
 
-static struct fb_ops sh_mobile_lcdc_ops = {
+static const struct fb_ops sh_mobile_lcdc_ops = {
 	.owner          = THIS_MODULE,
 	.fb_setcolreg	= sh_mobile_lcdc_setcolreg,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index 7dc0105f700d..533a047d07a2 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops simplefb_ops = {
+static const struct fb_ops simplefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= simplefb_destroy,
 	.fb_setcolreg	= simplefb_setcolreg,
diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
index b443a8ed4600..ac140962b1bf 100644
--- a/drivers/video/fbdev/sis/sis_main.c
+++ b/drivers/video/fbdev/sis/sis_main.c
@@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
 
 /* ----------------  fb_ops structures ----------------- */
 
-static struct fb_ops sisfb_ops = {
+static const struct fb_ops sisfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= sisfb_open,
 	.fb_release	= sisfb_release,
diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c
index 812a36cb60c3..bcacfb6934fa 100644
--- a/drivers/video/fbdev/skeletonfb.c
+++ b/drivers/video/fbdev/skeletonfb.c
@@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info)
      *  Frame buffer operations
      */
 
-static struct fb_ops xxxfb_ops = {
+static const struct fb_ops xxxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= xxxfb_open,
 	.fb_read	= xxxfb_read,
diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c
index 207d0add684b..6a1b4a853d9e 100644
--- a/drivers/video/fbdev/sm712fb.c
+++ b/drivers/video/fbdev/sm712fb.c
@@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops smtcfb_ops = {
+static const struct fb_ops smtcfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_check_var = smtc_check_var,
 	.fb_set_par   = smtc_set_par,
diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
index e362d7da87fc..bfac3ee4a642 100644
--- a/drivers/video/fbdev/smscufx.c
+++ b/drivers/video/fbdev/smscufx.c
@@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ufx_ops = {
+static const struct fb_ops ufx_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = ufx_ops_write,
diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
index 78ca7ffc40c2..142535267fec 100644
--- a/drivers/video/fbdev/ssd1307fb.c
+++ b/drivers/video/fbdev/ssd1307fb.c
@@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima
 	ssd1307fb_update_display(par);
 }
 
-static struct fb_ops ssd1307fb_ops = {
+static const struct fb_ops ssd1307fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= fb_sys_read,
 	.fb_write	= ssd1307fb_write,
diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c
index 4e22ae383c87..82e707a48e4e 100644
--- a/drivers/video/fbdev/sstfb.c
+++ b/drivers/video/fbdev/sstfb.c
@@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options)
 }
 
 
-static struct fb_ops sstfb_ops = {
+static const struct fb_ops sstfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= sstfb_check_var,
 	.fb_set_par	= sstfb_set_par,
diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c
index 9e88e3f594c2..5400ab79fbbd 100644
--- a/drivers/video/fbdev/stifb.c
+++ b/drivers/video/fbdev/stifb.c
@@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb)
 
 /* ------------ Interfaces to hardware functions ------------ */
 
-static struct fb_ops stifb_ops = {
+static const struct fb_ops stifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= stifb_setcolreg,
 	.fb_blank	= stifb_blank,
diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c
index 784c9bd5d502..15b079505a00 100644
--- a/drivers/video/fbdev/sunxvr1000.c
+++ b/drivers/video/fbdev/sunxvr1000.c
@@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno,
 	return 0;
 }
 
-static struct fb_ops gfb_ops = {
+static const struct fb_ops gfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= gfb_setcolreg,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c
index 31683e5a8b79..1d3bacd9d5ac 100644
--- a/drivers/video/fbdev/sunxvr2500.c
+++ b/drivers/video/fbdev/sunxvr2500.c
@@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno,
 	return 0;
 }
 
-static struct fb_ops s3d_ops = {
+static const struct fb_ops s3d_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= s3d_setcolreg,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c
index d392976126a6..9daf17b11106 100644
--- a/drivers/video/fbdev/sunxvr500.c
+++ b/drivers/video/fbdev/sunxvr500.c
@@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area)
 	spin_unlock_irqrestore(&ep->lock, flags);
 }
 
-static struct fb_ops e3d_ops = {
+static const struct fb_ops e3d_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= e3d_setcolreg,
 	.fb_fillrect		= e3d_fillrect,
diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
index 7897f86fb23e..34b2e5b6e84a 100644
--- a/drivers/video/fbdev/tcx.c
+++ b/drivers/video/fbdev/tcx.c
@@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops tcx_ops = {
+static const struct fb_ops tcx_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= tcx_setcolreg,
 	.fb_blank		= tcx_blank,
diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c
index fdbb1ea66e6c..0349cf69652f 100644
--- a/drivers/video/fbdev/tdfxfb.c
+++ b/drivers/video/fbdev/tdfxfb.c
@@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-static struct fb_ops tdfxfb_ops = {
+static const struct fb_ops tdfxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= tdfxfb_check_var,
 	.fb_set_par	= tdfxfb_set_par,
diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c
index 286b2371c7dd..7cd262858241 100644
--- a/drivers/video/fbdev/tgafb.c
+++ b/drivers/video/fbdev/tgafb.c
@@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver;
  *  Frame buffer operations
  */
 
-static struct fb_ops tgafb_ops = {
+static const struct fb_ops tgafb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_check_var		= tgafb_check_var,
 	.fb_set_par		= tgafb_set_par,
diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c
index 4f2fcea10d2b..50111966c981 100644
--- a/drivers/video/fbdev/tmiofb.c
+++ b/drivers/video/fbdev/tmiofb.c
@@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops tmiofb_ops = {
+static const struct fb_ops tmiofb_ops = {
 	.owner		= THIS_MODULE,
 
 	.fb_ioctl	= tmiofb_ioctl,
diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c
index da74bf6c5996..715509917eaa 100644
--- a/drivers/video/fbdev/tridentfb.c
+++ b/drivers/video/fbdev/tridentfb.c
@@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info)
 	return (blank_mode = FB_BLANK_NORMAL) ? 1 : 0;
 }
 
-static struct fb_ops tridentfb_ops = {
+static const struct fb_ops tridentfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_setcolreg = tridentfb_setcolreg,
 	.fb_pan_display = tridentfb_pan_display,
diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
index e04fde9c1fcd..ca8d7343aaa1 100644
--- a/drivers/video/fbdev/valkyriefb.c
+++ b/drivers/video/fbdev/valkyriefb.c
@@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p);
 static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix);
 static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p);
 
-static struct fb_ops valkyriefb_ops = {
+static const struct fb_ops valkyriefb_ops = {
 	.owner =	THIS_MODULE,
 	.fb_check_var =	valkyriefb_check_var,
 	.fb_set_par =	valkyriefb_set_par,
diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
index 54127905bfe7..95d3c59867d0 100644
--- a/drivers/video/fbdev/vfb.c
+++ b/drivers/video/fbdev/vfb.c
@@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
 static int vfb_mmap(struct fb_info *info,
 		    struct vm_area_struct *vma);
 
-static struct fb_ops vfb_ops = {
+static const struct fb_ops vfb_ops = {
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
 	.fb_check_var	= vfb_check_var,
diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c
index 2c6a576ed84c..a20eeb8308ff 100644
--- a/drivers/video/fbdev/vga16fb.c
+++ b/drivers/video/fbdev/vga16fb.c
@@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info)
 	framebuffer_release(info);
 }
 
-static struct fb_ops vga16fb_ops = {
+static const struct fb_ops vga16fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open        = vga16fb_open,
 	.fb_release     = vga16fb_release,
diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c
index be8d9702cbb2..f744479dc7df 100644
--- a/drivers/video/fbdev/vt8500lcdfb.c
+++ b/drivers/video/fbdev/vt8500lcdfb.c
@@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vt8500lcd_ops = {
+static const struct fb_ops vt8500lcd_ops = {
 	.owner		= THIS_MODULE,
 	.fb_set_par	= vt8500lcd_set_par,
 	.fb_setcolreg	= vt8500lcd_setcolreg,
diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c
index c339a8fbad81..7b3eef1b893f 100644
--- a/drivers/video/fbdev/vt8623fb.c
+++ b/drivers/video/fbdev/vt8623fb.c
@@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i
 
 /* Frame buffer operations */
 
-static struct fb_ops vt8623fb_ops = {
+static const struct fb_ops vt8623fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= vt8623fb_open,
 	.fb_release	= vt8623fb_release,
diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
index 3be07807edcd..fe628ec20149 100644
--- a/drivers/video/fbdev/w100fb.c
+++ b/drivers/video/fbdev/w100fb.c
@@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info)
 /*
  *  Frame buffer operations
  */
-static struct fb_ops w100fb_ops = {
+static const struct fb_ops w100fb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_check_var = w100fb_check_var,
 	.fb_set_par   = w100fb_set_par,
diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c
index 17c780315ca5..b656eff58c23 100644
--- a/drivers/video/fbdev/wm8505fb.c
+++ b/drivers/video/fbdev/wm8505fb.c
@@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops wm8505fb_ops = {
+static const struct fb_ops wm8505fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_set_par	= wm8505fb_set_par,
 	.fb_setcolreg	= wm8505fb_setcolreg,
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index a3d6b6db221b..00307b8693bf 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops xenfb_fb_ops = {
+static const struct fb_ops xenfb_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= fb_sys_read,
 	.fb_write	= xenfb_write,
diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c
index 8628829b470d..ca4ff658cad0 100644
--- a/drivers/video/fbdev/xilinxfb.c
+++ b/drivers/video/fbdev/xilinxfb.c
@@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi)
 	return 0; /* success */
 }
 
-static struct fb_ops xilinxfb_ops = {
+static const struct fb_ops xilinxfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= xilinx_fb_setcolreg,
 	.fb_blank		= xilinx_fb_blank,
-- 
2.20.1

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

* [PATCH v3 08/12] video: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

This does not cover all drivers; some actually modify the fbops struct,
for example to adjust for different configurations, and others do more
involved things that I'd rather not touch in practically obsolete
drivers. Mostly this is the low hanging fruit where we can add "const"
and be done with it.

v3:
- un-constify atyfb, mb862xx, nvidia and uvesabf (0day)

v2:
- fix typo (Christophe de Dinechin)
- use "static const" instead of "const static" in mx3fb.c
- also constify smscufx.c

Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/68328fb.c                  | 2 +-
 drivers/video/fbdev/acornfb.c                  | 2 +-
 drivers/video/fbdev/amba-clcd.c                | 2 +-
 drivers/video/fbdev/amifb.c                    | 2 +-
 drivers/video/fbdev/arcfb.c                    | 2 +-
 drivers/video/fbdev/arkfb.c                    | 2 +-
 drivers/video/fbdev/asiliantfb.c               | 2 +-
 drivers/video/fbdev/atmel_lcdfb.c              | 2 +-
 drivers/video/fbdev/aty/aty128fb.c             | 2 +-
 drivers/video/fbdev/aty/radeon_base.c          | 2 +-
 drivers/video/fbdev/au1100fb.c                 | 2 +-
 drivers/video/fbdev/au1200fb.c                 | 2 +-
 drivers/video/fbdev/broadsheetfb.c             | 2 +-
 drivers/video/fbdev/bw2.c                      | 2 +-
 drivers/video/fbdev/carminefb.c                | 2 +-
 drivers/video/fbdev/cg14.c                     | 2 +-
 drivers/video/fbdev/cg3.c                      | 2 +-
 drivers/video/fbdev/cg6.c                      | 2 +-
 drivers/video/fbdev/chipsfb.c                  | 2 +-
 drivers/video/fbdev/cirrusfb.c                 | 2 +-
 drivers/video/fbdev/clps711x-fb.c              | 2 +-
 drivers/video/fbdev/cobalt_lcdfb.c             | 2 +-
 drivers/video/fbdev/controlfb.c                | 2 +-
 drivers/video/fbdev/cyber2000fb.c              | 2 +-
 drivers/video/fbdev/da8xx-fb.c                 | 2 +-
 drivers/video/fbdev/dnfb.c                     | 2 +-
 drivers/video/fbdev/efifb.c                    | 2 +-
 drivers/video/fbdev/ep93xx-fb.c                | 2 +-
 drivers/video/fbdev/fb-puv3.c                  | 2 +-
 drivers/video/fbdev/ffb.c                      | 2 +-
 drivers/video/fbdev/fm2fb.c                    | 2 +-
 drivers/video/fbdev/fsl-diu-fb.c               | 2 +-
 drivers/video/fbdev/g364fb.c                   | 2 +-
 drivers/video/fbdev/gbefb.c                    | 2 +-
 drivers/video/fbdev/geode/gx1fb_core.c         | 2 +-
 drivers/video/fbdev/geode/gxfb_core.c          | 2 +-
 drivers/video/fbdev/geode/lxfb_core.c          | 2 +-
 drivers/video/fbdev/goldfishfb.c               | 2 +-
 drivers/video/fbdev/grvga.c                    | 2 +-
 drivers/video/fbdev/gxt4500.c                  | 2 +-
 drivers/video/fbdev/hecubafb.c                 | 2 +-
 drivers/video/fbdev/hgafb.c                    | 2 +-
 drivers/video/fbdev/hitfb.c                    | 2 +-
 drivers/video/fbdev/hpfb.c                     | 2 +-
 drivers/video/fbdev/hyperv_fb.c                | 2 +-
 drivers/video/fbdev/i740fb.c                   | 2 +-
 drivers/video/fbdev/imsttfb.c                  | 2 +-
 drivers/video/fbdev/imxfb.c                    | 2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c       | 2 +-
 drivers/video/fbdev/kyro/fbdev.c               | 2 +-
 drivers/video/fbdev/leo.c                      | 2 +-
 drivers/video/fbdev/macfb.c                    | 2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c    | 2 +-
 drivers/video/fbdev/maxinefb.c                 | 2 +-
 drivers/video/fbdev/mbx/mbxfb.c                | 2 +-
 drivers/video/fbdev/metronomefb.c              | 2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c             | 2 +-
 drivers/video/fbdev/mx3fb.c                    | 5 +++--
 drivers/video/fbdev/neofb.c                    | 2 +-
 drivers/video/fbdev/ocfb.c                     | 2 +-
 drivers/video/fbdev/offb.c                     | 2 +-
 drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +-
 drivers/video/fbdev/p9100.c                    | 2 +-
 drivers/video/fbdev/platinumfb.c               | 2 +-
 drivers/video/fbdev/pm2fb.c                    | 2 +-
 drivers/video/fbdev/pm3fb.c                    | 2 +-
 drivers/video/fbdev/pmag-aa-fb.c               | 2 +-
 drivers/video/fbdev/pmag-ba-fb.c               | 2 +-
 drivers/video/fbdev/pmagb-b-fb.c               | 2 +-
 drivers/video/fbdev/ps3fb.c                    | 2 +-
 drivers/video/fbdev/pvr2fb.c                   | 2 +-
 drivers/video/fbdev/pxa168fb.c                 | 2 +-
 drivers/video/fbdev/pxafb.c                    | 4 ++--
 drivers/video/fbdev/q40fb.c                    | 2 +-
 drivers/video/fbdev/riva/fbdev.c               | 2 +-
 drivers/video/fbdev/s3c-fb.c                   | 2 +-
 drivers/video/fbdev/s3c2410fb.c                | 2 +-
 drivers/video/fbdev/s3fb.c                     | 2 +-
 drivers/video/fbdev/sa1100fb.c                 | 2 +-
 drivers/video/fbdev/savage/savagefb_driver.c   | 2 +-
 drivers/video/fbdev/sh7760fb.c                 | 2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c         | 4 ++--
 drivers/video/fbdev/simplefb.c                 | 2 +-
 drivers/video/fbdev/sis/sis_main.c             | 2 +-
 drivers/video/fbdev/skeletonfb.c               | 2 +-
 drivers/video/fbdev/sm712fb.c                  | 2 +-
 drivers/video/fbdev/smscufx.c                  | 2 +-
 drivers/video/fbdev/ssd1307fb.c                | 2 +-
 drivers/video/fbdev/sstfb.c                    | 2 +-
 drivers/video/fbdev/stifb.c                    | 2 +-
 drivers/video/fbdev/sunxvr1000.c               | 2 +-
 drivers/video/fbdev/sunxvr2500.c               | 2 +-
 drivers/video/fbdev/sunxvr500.c                | 2 +-
 drivers/video/fbdev/tcx.c                      | 2 +-
 drivers/video/fbdev/tdfxfb.c                   | 2 +-
 drivers/video/fbdev/tgafb.c                    | 2 +-
 drivers/video/fbdev/tmiofb.c                   | 2 +-
 drivers/video/fbdev/tridentfb.c                | 2 +-
 drivers/video/fbdev/valkyriefb.c               | 2 +-
 drivers/video/fbdev/vfb.c                      | 2 +-
 drivers/video/fbdev/vga16fb.c                  | 2 +-
 drivers/video/fbdev/vt8500lcdfb.c              | 2 +-
 drivers/video/fbdev/vt8623fb.c                 | 2 +-
 drivers/video/fbdev/w100fb.c                   | 2 +-
 drivers/video/fbdev/wm8505fb.c                 | 2 +-
 drivers/video/fbdev/xen-fbfront.c              | 2 +-
 drivers/video/fbdev/xilinxfb.c                 | 2 +-
 107 files changed, 111 insertions(+), 110 deletions(-)

diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c
index d48e96088f76..491fd5a82993 100644
--- a/drivers/video/fbdev/68328fb.c
+++ b/drivers/video/fbdev/68328fb.c
@@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var,
 			   struct fb_info *info);
 static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma);
 
-static struct fb_ops mc68x328fb_ops = {
+static const struct fb_ops mc68x328fb_ops = {
 	.fb_check_var	= mc68x328fb_check_var,
 	.fb_set_par	= mc68x328fb_set_par,
 	.fb_setcolreg	= mc68x328fb_setcolreg,
diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
index 7cacae5a8797..a3af49529173 100644
--- a/drivers/video/fbdev/acornfb.c
+++ b/drivers/video/fbdev/acornfb.c
@@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops acornfb_ops = {
+static const struct fb_ops acornfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= acornfb_check_var,
 	.fb_set_par	= acornfb_set_par,
diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index 7de43be6ef2c..c3d55fc6c4e0 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info,
 	return ret;
 }
 
-static struct fb_ops clcdfb_ops = {
+static const struct fb_ops clcdfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= clcdfb_check_var,
 	.fb_set_par	= clcdfb_set_par,
diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
index 91ddc9602014..20e03e00b66d 100644
--- a/drivers/video/fbdev/amifb.c
+++ b/drivers/video/fbdev/amifb.c
@@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id)
 }
 
 
-static struct fb_ops amifb_ops = {
+static const struct fb_ops amifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= amifb_check_var,
 	.fb_set_par	= amifb_set_par,
diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
index a48741aab240..314ab82e01c0 100644
--- a/drivers/video/fbdev/arcfb.c
+++ b/drivers/video/fbdev/arcfb.c
@@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
 	return err;
 }
 
-static struct fb_ops arcfb_ops = {
+static const struct fb_ops arcfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= arcfb_open,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
index f940e8b66b85..11ab9a153860 100644
--- a/drivers/video/fbdev/arkfb.c
+++ b/drivers/video/fbdev/arkfb.c
@@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
 
 /* Frame buffer operations */
 
-static struct fb_ops arkfb_ops = {
+static const struct fb_ops arkfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= arkfb_open,
 	.fb_release	= arkfb_release,
diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c
index ea31054a28ca..3e006da47752 100644
--- a/drivers/video/fbdev/asiliantfb.c
+++ b/drivers/video/fbdev/asiliantfb.c
@@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info);
 static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
 				u_int transp, struct fb_info *info);
 
-static struct fb_ops asiliantfb_ops = {
+static const struct fb_ops asiliantfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= asiliantfb_check_var,
 	.fb_set_par	= asiliantfb_set_par,
diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c
index 5ff8e0320d95..d567f5d56c13 100644
--- a/drivers/video/fbdev/atmel_lcdfb.c
+++ b/drivers/video/fbdev/atmel_lcdfb.c
@@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info)
 	return ((blank_mode == FB_BLANK_NORMAL) ? 1 : 0);
 }
 
-static struct fb_ops atmel_lcdfb_ops = {
+static const struct fb_ops atmel_lcdfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= atmel_lcdfb_check_var,
 	.fb_set_par	= atmel_lcdfb_set_par,
diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
index fc1e45d44719..d7e41c8dd533 100644
--- a/drivers/video/fbdev/aty/aty128fb.c
+++ b/drivers/video/fbdev/aty/aty128fb.c
@@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power);
 			  (readb(bios + (v) + 3) << 24))
 
 
-static struct fb_ops aty128fb_ops = {
+static const struct fb_ops aty128fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= aty128fb_check_var,
 	.fb_set_par	= aty128fb_set_par,
diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
index 4ca07866f2f6..3af00e3b965e 100644
--- a/drivers/video/fbdev/aty/radeon_base.c
+++ b/drivers/video/fbdev/aty/radeon_base.c
@@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info)
 }
 
 
-static struct fb_ops radeonfb_ops = {
+static const struct fb_ops radeonfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_check_var		= radeonfb_check_var,
 	.fb_set_par		= radeonfb_set_par,
diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
index 99941ae1f3a1..37a6512feda0 100644
--- a/drivers/video/fbdev/au1100fb.c
+++ b/drivers/video/fbdev/au1100fb.c
@@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
 			fbdev->fb_len);
 }
 
-static struct fb_ops au1100fb_ops =
+static const struct fb_ops au1100fb_ops =
 {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= au1100fb_fb_setcolreg,
diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c
index 265d3b45efd0..c00e01a17368 100644
--- a/drivers/video/fbdev/au1200fb.c
+++ b/drivers/video/fbdev/au1200fb.c
@@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd,
 }
 
 
-static struct fb_ops au1200fb_fb_ops = {
+static const struct fb_ops au1200fb_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= au1200fb_fb_check_var,
 	.fb_set_par	= au1200fb_fb_set_par,
diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
index d6ba348deb9f..fd66f4d4a621 100644
--- a/drivers/video/fbdev/broadsheetfb.c
+++ b/drivers/video/fbdev/broadsheetfb.c
@@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops broadsheetfb_ops = {
+static const struct fb_ops broadsheetfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write	= broadsheetfb_write,
diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c
index 436f10f3d375..0d9a6bb57a09 100644
--- a/drivers/video/fbdev/bw2.c
+++ b/drivers/video/fbdev/bw2.c
@@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops bw2_ops = {
+static const struct fb_ops bw2_ops = {
 	.owner			= THIS_MODULE,
 	.fb_blank		= bw2_blank,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
index 9f3be0258623..bf3f2a9598b1 100644
--- a/drivers/video/fbdev/carminefb.c
+++ b/drivers/video/fbdev/carminefb.c
@@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw)
 	return 0;
 }
 
-static struct fb_ops carminefb_ops = {
+static const struct fb_ops carminefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c
index d80d99db3a46..a620b51cf7d0 100644
--- a/drivers/video/fbdev/cg14.c
+++ b/drivers/video/fbdev/cg14.c
@@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg14_ops = {
+static const struct fb_ops cg14_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg14_setcolreg,
 	.fb_pan_display		= cg14_pan_display,
diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c
index 09f616dddfd7..77f6470ce665 100644
--- a/drivers/video/fbdev/cg3.c
+++ b/drivers/video/fbdev/cg3.c
@@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg3_ops = {
+static const struct fb_ops cg3_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg3_setcolreg,
 	.fb_blank		= cg3_blank,
diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c
index d5888aecc2fb..a1c68cd48d7e 100644
--- a/drivers/video/fbdev/cg6.c
+++ b/drivers/video/fbdev/cg6.c
@@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg6_ops = {
+static const struct fb_ops cg6_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg6_setcolreg,
 	.fb_blank		= cg6_blank,
diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c
index f4dc320dcafe..998067b701fa 100644
--- a/drivers/video/fbdev/chipsfb.c
+++ b/drivers/video/fbdev/chipsfb.c
@@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
 			     u_int transp, struct fb_info *info);
 static int chipsfb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops chipsfb_ops = {
+static const struct fb_ops chipsfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= chipsfb_check_var,
 	.fb_set_par	= chipsfb_set_par,
diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c
index e4ce5667b125..c3a3e344cee3 100644
--- a/drivers/video/fbdev/cirrusfb.c
+++ b/drivers/video/fbdev/cirrusfb.c
@@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info)
 #endif /* CONFIG_ZORRO */
 
 /* function table of the above functions */
-static struct fb_ops cirrusfb_ops = {
+static const struct fb_ops cirrusfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= cirrusfb_open,
 	.fb_release	= cirrusfb_release,
diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
index cabbc721f894..c5d15c6db287 100644
--- a/drivers/video/fbdev/clps711x-fb.c
+++ b/drivers/video/fbdev/clps711x-fb.c
@@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops clps711x_fb_ops = {
+static const struct fb_ops clps711x_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= clps711x_fb_setcolreg,
 	.fb_check_var	= clps711x_fb_check_var,
diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
index 544946901e8b..5f8b6324d2e8 100644
--- a/drivers/video/fbdev/cobalt_lcdfb.c
+++ b/drivers/video/fbdev/cobalt_lcdfb.c
@@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-static struct fb_ops cobalt_lcd_fbops = {
+static const struct fb_ops cobalt_lcd_fbops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= cobalt_lcdfb_read,
 	.fb_write	= cobalt_lcdfb_write,
diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
index 9a680ef3ffc3..38b61cdb5ca4 100644
--- a/drivers/video/fbdev/controlfb.c
+++ b/drivers/video/fbdev/controlfb.c
@@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM;
 static int default_cmode __initdata = CMODE_NVRAM;
 
 
-static struct fb_ops controlfb_ops = {
+static const struct fb_ops controlfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= controlfb_check_var,
 	.fb_set_par	= controlfb_set_par,
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 3a2d9ff0aa42..460826a7ad55 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops cyber2000fb_ops = {
+static const struct fb_ops cyber2000fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= cyber2000fb_check_var,
 	.fb_set_par	= cyber2000fb_set_par,
diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c
index 2d3dcc52fcf3..73c3c4c8cc12 100644
--- a/drivers/video/fbdev/da8xx-fb.c
+++ b/drivers/video/fbdev/da8xx-fb.c
@@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops da8xx_fb_ops = {
+static const struct fb_ops da8xx_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = fb_check_var,
 	.fb_set_par = da8xxfb_set_par,
diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c
index 8da517eaa4a3..3688f9165848 100644
--- a/drivers/video/fbdev/dnfb.c
+++ b/drivers/video/fbdev/dnfb.c
@@ -108,7 +108,7 @@
 static int dnfb_blank(int blank, struct fb_info *info);
 static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
 
-static struct fb_ops dn_fb_ops = {
+static const struct fb_ops dn_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= dnfb_blank,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index 51d97ec4f58f..f03f9fb60c26 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info)
 	fb_dealloc_cmap(&info->cmap);
 }
 
-static struct fb_ops efifb_ops = {
+static const struct fb_ops efifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= efifb_destroy,
 	.fb_setcolreg	= efifb_setcolreg,
diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c
index d04a047094fc..cda2ef337423 100644
--- a/drivers/video/fbdev/ep93xx-fb.c
+++ b/drivers/video/fbdev/ep93xx-fb.c
@@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops ep93xxfb_ops = {
+static const struct fb_ops ep93xxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= ep93xxfb_check_var,
 	.fb_set_par	= ep93xxfb_set_par,
diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c
index fa62c4dff7d1..75df6aabac21 100644
--- a/drivers/video/fbdev/fb-puv3.c
+++ b/drivers/video/fbdev/fb-puv3.c
@@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info,
 	return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len);
 }
 
-static struct fb_ops unifb_ops = {
+static const struct fb_ops unifb_ops = {
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
 	.fb_check_var	= unifb_check_var,
diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c
index cd2d1db239a2..948b73184433 100644
--- a/drivers/video/fbdev/ffb.c
+++ b/drivers/video/fbdev/ffb.c
@@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops ffb_ops = {
+static const struct fb_ops ffb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= ffb_setcolreg,
 	.fb_blank		= ffb_blank,
diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c
index ac7a4ebfd390..3b727d528fde 100644
--- a/drivers/video/fbdev/fm2fb.c
+++ b/drivers/video/fbdev/fm2fb.c
@@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                            u_int transp, struct fb_info *info);
 static int fm2fb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops fm2fb_ops = {
+static const struct fb_ops fm2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= fm2fb_setcolreg,
 	.fb_blank	= fm2fb_blank,
diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
index d19f58263b4e..7cacabdd5f12 100644
--- a/drivers/video/fbdev/fsl-diu-fb.c
+++ b/drivers/video/fbdev/fsl-diu-fb.c
@@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user)
 	return res;
 }
 
-static struct fb_ops fsl_diu_ops = {
+static const struct fb_ops fsl_diu_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = fsl_diu_check_var,
 	.fb_set_par = fsl_diu_set_par,
diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
index 223896cc5f7d..845b79da2a7c 100644
--- a/drivers/video/fbdev/g364fb.c
+++ b/drivers/video/fbdev/g364fb.c
@@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
 static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
 static int g364fb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops g364fb_ops = {
+static const struct fb_ops g364fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= g364fb_setcolreg,
 	.fb_pan_display	= g364fb_pan_display,
diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c
index b9f6a82a0495..31270a8986e8 100644
--- a/drivers/video/fbdev/gbefb.c
+++ b/drivers/video/fbdev/gbefb.c
@@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info,
 	return 0;
 }
 
-static struct fb_ops gbefb_ops = {
+static const struct fb_ops gbefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gbefb_check_var,
 	.fb_set_par	= gbefb_set_par,
diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c
index 737e472fac14..5d34d89fb665 100644
--- a/drivers/video/fbdev/geode/gx1fb_core.c
+++ b/drivers/video/fbdev/geode/gx1fb_core.c
@@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops gx1fb_ops = {
+static const struct fb_ops gx1fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gx1fb_check_var,
 	.fb_set_par	= gx1fb_set_par,
diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
index 435ce2aa4240..d38a148d4746 100644
--- a/drivers/video/fbdev/geode/gxfb_core.c
+++ b/drivers/video/fbdev/geode/gxfb_core.c
@@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
 	return 0;
 }
 
-static struct fb_ops gxfb_ops = {
+static const struct fb_ops gxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gxfb_check_var,
 	.fb_set_par	= gxfb_set_par,
diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c
index b0f07d676eb3..adc2d9c2395e 100644
--- a/drivers/video/fbdev/geode/lxfb_core.c
+++ b/drivers/video/fbdev/geode/lxfb_core.c
@@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
 	return 0;
 }
 
-static struct fb_ops lxfb_ops = {
+static const struct fb_ops lxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= lxfb_check_var,
 	.fb_set_par	= lxfb_set_par,
diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
index f60ac276703d..9c83ec3f8e1f 100644
--- a/drivers/video/fbdev/goldfishfb.c
+++ b/drivers/video/fbdev/goldfishfb.c
@@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops goldfish_fb_ops = {
+static const struct fb_ops goldfish_fb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_check_var   = goldfish_fb_check_var,
 	.fb_set_par     = goldfish_fb_set_par,
diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c
index d22e8b0c906d..07dda03e0957 100644
--- a/drivers/video/fbdev/grvga.c
+++ b/drivers/video/fbdev/grvga.c
@@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var,
 	return 0;
 }
 
-static struct fb_ops grvga_ops = {
+static const struct fb_ops grvga_ops = {
 	.owner          = THIS_MODULE,
 	.fb_check_var   = grvga_check_var,
 	.fb_set_par	= grvga_set_par,
diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c
index c7502fd8f447..13ded3a10708 100644
--- a/drivers/video/fbdev/gxt4500.c
+++ b/drivers/video/fbdev/gxt4500.c
@@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = {
 	.mmio_len = 0x20000,
 };
 
-static struct fb_ops gxt4500_ops = {
+static const struct fb_ops gxt4500_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = gxt4500_check_var,
 	.fb_set_par = gxt4500_set_par,
diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c
index 8577195cb533..00d77105161a 100644
--- a/drivers/video/fbdev/hecubafb.c
+++ b/drivers/video/fbdev/hecubafb.c
@@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops hecubafb_ops = {
+static const struct fb_ops hecubafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write	= hecubafb_write,
diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c
index 59e1cae57948..a45fcff1461f 100644
--- a/drivers/video/fbdev/hgafb.c
+++ b/drivers/video/fbdev/hgafb.c
@@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
 	}
 }
 
-static struct fb_ops hgafb_ops = {
+static const struct fb_ops hgafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= hgafb_open,
 	.fb_release	= hgafb_release,
diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c
index abe3e54d4506..009e5d2aa100 100644
--- a/drivers/video/fbdev/hitfb.c
+++ b/drivers/video/fbdev/hitfb.c
@@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops hitfb_ops = {
+static const struct fb_ops hitfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= hitfb_check_var,
 	.fb_set_par		= hitfb_set_par,
diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
index a79af8f069d1..f02be0db335e 100644
--- a/drivers/video/fbdev/hpfb.c
+++ b/drivers/video/fbdev/hpfb.c
@@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops hpfb_ops = {
+static const struct fb_ops hpfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= hpfb_setcolreg,
 	.fb_blank	= hpfb_blank,
diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
index 2dcb7c58b31e..fcd546e5c031 100644
--- a/drivers/video/fbdev/hyperv_fb.c
+++ b/drivers/video/fbdev/hyperv_fb.c
@@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p,
 		synthvid_update(p);
 }
 
-static struct fb_ops hvfb_ops = {
+static const struct fb_ops hvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = hvfb_check_var,
 	.fb_set_par = hvfb_set_par,
diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c
index 347cf8babc3e..c65ec7386e87 100644
--- a/drivers/video/fbdev/i740fb.c
+++ b/drivers/video/fbdev/i740fb.c
@@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info)
 	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
 }
 
-static struct fb_ops i740fb_ops = {
+static const struct fb_ops i740fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= i740fb_open,
 	.fb_release	= i740fb_release,
diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
index 58b01c7d9056..3ac053b88495 100644
--- a/drivers/video/fbdev/imsttfb.c
+++ b/drivers/video/fbdev/imsttfb.c
@@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = {
 	.remove =	imsttfb_remove,
 };
 
-static struct fb_ops imsttfb_ops = {
+static const struct fb_ops imsttfb_ops = {
 	.owner 		= THIS_MODULE,
 	.fb_check_var	= imsttfb_check_var,
 	.fb_set_par 	= imsttfb_set_par,
diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
index b3286d1fa543..08a17eb2a5c7 100644
--- a/drivers/video/fbdev/imxfb.c
+++ b/drivers/video/fbdev/imxfb.c
@@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops imxfb_ops = {
+static const struct fb_ops imxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= imxfb_check_var,
 	.fb_set_par	= imxfb_set_par,
diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c
index a76c61512c60..c744891781a5 100644
--- a/drivers/video/fbdev/intelfb/intelfbdrv.c
+++ b/drivers/video/fbdev/intelfb/intelfbdrv.c
@@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = {
 static int num_registered = 0;
 
 /* fb ops */
-static struct fb_ops intel_fb_ops = {
+static const struct fb_ops intel_fb_ops = {
 	.owner =		THIS_MODULE,
 	.fb_open =              intelfb_open,
 	.fb_release =           intelfb_release,
diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c
index a7bd9f25911b..72dff2e42e3a 100644
--- a/drivers/video/fbdev/kyro/fbdev.c
+++ b/drivers/video/fbdev/kyro/fbdev.c
@@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = {
 	.remove		= kyrofb_remove,
 };
 
-static struct fb_ops kyrofb_ops = {
+static const struct fb_ops kyrofb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= kyrofb_check_var,
 	.fb_set_par	= kyrofb_set_par,
diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c
index 5b1141ac182b..40b11cce0ad6 100644
--- a/drivers/video/fbdev/leo.c
+++ b/drivers/video/fbdev/leo.c
@@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops leo_ops = {
+static const struct fb_ops leo_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= leo_setcolreg,
 	.fb_blank		= leo_blank,
diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c
index 9a6feee96133..e05a97662ca8 100644
--- a/drivers/video/fbdev/macfb.c
+++ b/drivers/video/fbdev/macfb.c
@@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green,
 	return 0;
 }
 
-static struct fb_ops macfb_ops = {
+static const struct fb_ops macfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= macfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
index d2a81a2c3ac0..7655afa3fd50 100644
--- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
+++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
@@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) {
 #undef m2info
 }
 
-static struct fb_ops matroxfb_dh_ops = {
+static const struct fb_ops matroxfb_dh_ops = {
 	.owner =	THIS_MODULE,
 	.fb_open =	matroxfb_dh_open,
 	.fb_release =	matroxfb_dh_release,
diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c
index 5bb1b5c308a7..ae1a42bcb0ea 100644
--- a/drivers/video/fbdev/maxinefb.c
+++ b/drivers/video/fbdev/maxinefb.c
@@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green,
 	return 0;
 }
 
-static struct fb_ops maxinefb_ops = {
+static const struct fb_ops maxinefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= maxinefb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c
index 50935252b50b..25dad4507d77 100644
--- a/drivers/video/fbdev/mbx/mbxfb.c
+++ b/drivers/video/fbdev/mbx/mbxfb.c
@@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd,
 	return -EINVAL;
 }
 
-static struct fb_ops mbxfb_ops = {
+static const struct fb_ops mbxfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = mbxfb_check_var,
 	.fb_set_par = mbxfb_set_par,
diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c
index bb4fee52e501..a42e2eceee48 100644
--- a/drivers/video/fbdev/metronomefb.c
+++ b/drivers/video/fbdev/metronomefb.c
@@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops metronomefb_ops = {
+static const struct fb_ops metronomefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_write	= metronomefb_write,
 	.fb_fillrect	= metronomefb_fillrect,
diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 47bc7c59bbd8..33db0850086f 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops mmpfb_ops = {
+static const struct fb_ops mmpfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= mmpfb_blank,
 	.fb_check_var	= mmpfb_check_var,
diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
index bafd5f5fac5a..4af28e4421e5 100644
--- a/drivers/video/fbdev/mx3fb.c
+++ b/drivers/video/fbdev/mx3fb.c
@@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
  * invoked by the core framebuffer driver to perform operations like
  * blitting, rectangle filling, copy regions and cursor definition.
  */
-static struct fb_ops mx3fb_ops = {
+static const struct fb_ops mx3fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_set_par = mx3fb_set_par,
 	.fb_check_var = mx3fb_check_var,
@@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi)
  * mx3fb_init_fbinfo() - initialize framebuffer information object.
  * @return:	initialized framebuffer structure.
  */
-static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
+static struct fb_info *mx3fb_init_fbinfo(struct device *dev,
+					 const struct fb_ops *ops)
 {
 	struct fb_info *fbi;
 	struct mx3fb_info *mx3fbi;
diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
index b770946a0920..e6ea853c1723 100644
--- a/drivers/video/fbdev/neofb.c
+++ b/drivers/video/fbdev/neofb.c
@@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 }
 */
 
-static struct fb_ops neofb_ops = {
+static const struct fb_ops neofb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= neofb_open,
 	.fb_release	= neofb_release,
diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c
index a970edc2a6f8..c8cee2d890dc 100644
--- a/drivers/video/fbdev/ocfb.c
+++ b/drivers/video/fbdev/ocfb.c
@@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev)
 	return 0;
 }
 
-static struct fb_ops ocfb_ops = {
+static const struct fb_ops ocfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= ocfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
index fbc6eafb63c7..5cd0f5f6a4ae 100644
--- a/drivers/video/fbdev/offb.c
+++ b/drivers/video/fbdev/offb.c
@@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info)
 	framebuffer_release(info);
 }
 
-static struct fb_ops offb_ops = {
+static const struct fb_ops offb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= offb_destroy,
 	.fb_setcolreg	= offb_setcolreg,
diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
index 858c2c011d19..8dfa9158ba78 100644
--- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
@@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf,
 }
 #endif
 
-static struct fb_ops omapfb_ops = {
+static const struct fb_ops omapfb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_open        = omapfb_open,
 	.fb_release     = omapfb_release,
diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c
index 8c18cc51aae2..6da672e92643 100644
--- a/drivers/video/fbdev/p9100.c
+++ b/drivers/video/fbdev/p9100.c
@@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops p9100_ops = {
+static const struct fb_ops p9100_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= p9100_setcolreg,
 	.fb_blank		= p9100_blank,
diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c
index 632b246ca35f..ce413a9df06e 100644
--- a/drivers/video/fbdev/platinumfb.c
+++ b/drivers/video/fbdev/platinumfb.c
@@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var,
  * Interface used by the world
  */
 
-static struct fb_ops platinumfb_ops = {
+static const struct fb_ops platinumfb_ops = {
 	.owner =	THIS_MODULE,
 	.fb_check_var	= platinumfb_check_var,
 	.fb_set_par	= platinumfb_set_par,
diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c
index 1dcf02e12af4..8f933bad461c 100644
--- a/drivers/video/fbdev/pm2fb.c
+++ b/drivers/video/fbdev/pm2fb.c
@@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
  *  Frame buffer operations
  */
 
-static struct fb_ops pm2fb_ops = {
+static const struct fb_ops pm2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pm2fb_check_var,
 	.fb_set_par	= pm2fb_set_par,
diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c
index 6130aa56a1e9..15a2b495235b 100644
--- a/drivers/video/fbdev/pm3fb.c
+++ b/drivers/video/fbdev/pm3fb.c
@@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info)
 	 *  Frame buffer operations
 	 */
 
-static struct fb_ops pm3fb_ops = {
+static const struct fb_ops pm3fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pm3fb_check_var,
 	.fb_set_par	= pm3fb_set_par,
diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c
index d1e78ce3a9c2..7b33b52b2526 100644
--- a/drivers/video/fbdev/pmag-aa-fb.c
+++ b/drivers/video/fbdev/pmag-aa-fb.c
@@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops aafb_ops = {
+static const struct fb_ops aafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= aafb_blank,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c
index 56b912bb28de..a60e56d8980b 100644
--- a/drivers/video/fbdev/pmag-ba-fb.c
+++ b/drivers/video/fbdev/pmag-ba-fb.c
@@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops pmagbafb_ops = {
+static const struct fb_ops pmagbafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pmagbafb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c
index 2822b2225924..f02080f21077 100644
--- a/drivers/video/fbdev/pmagb-b-fb.c
+++ b/drivers/video/fbdev/pmagb-b-fb.c
@@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops pmagbbfb_ops = {
+static const struct fb_ops pmagbbfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pmagbbfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c
index 5ed2db39d823..834f63edf700 100644
--- a/drivers/video/fbdev/ps3fb.c
+++ b/drivers/video/fbdev/ps3fb.c
@@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr)
 }
 
 
-static struct fb_ops ps3fb_ops = {
+static const struct fb_ops ps3fb_ops = {
 	.fb_open	= ps3fb_open,
 	.fb_release	= ps3fb_release,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
index 0a3b2b7c7891..fcb16eabbb0d 100644
--- a/drivers/video/fbdev/pvr2fb.c
+++ b/drivers/video/fbdev/pvr2fb.c
@@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
 }
 #endif /* CONFIG_PVR2_DMA */
 
-static struct fb_ops pvr2fb_ops = {
+static const struct fb_ops pvr2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pvr2fb_setcolreg,
 	.fb_blank	= pvr2fb_blank,
diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c
index 1410f476e135..c672c3354a2c 100644
--- a/drivers/video/fbdev/pxa168fb.c
+++ b/drivers/video/fbdev/pxa168fb.c
@@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id)
 	return IRQ_NONE;
 }
 
-static struct fb_ops pxa168fb_ops = {
+static const struct fb_ops pxa168fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pxa168fb_check_var,
 	.fb_set_par	= pxa168fb_set_par,
diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
index f70c9f79622e..6f7e9fb63190 100644
--- a/drivers/video/fbdev/pxafb.c
+++ b/drivers/video/fbdev/pxafb.c
@@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops pxafb_ops = {
+static const struct fb_ops pxafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pxafb_check_var,
 	.fb_set_par	= pxafb_set_par,
@@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops overlay_fb_ops = {
+static const struct fb_ops overlay_fb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_open		= overlayfb_open,
 	.fb_release		= overlayfb_release,
diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c
index 0b93aa964d43..79ff14a35c85 100644
--- a/drivers/video/fbdev/q40fb.c
+++ b/drivers/video/fbdev/q40fb.c
@@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green,
     return 0;
 }
 
-static struct fb_ops q40fb_ops = {
+static const struct fb_ops q40fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= q40fb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
index ca593a3e41d7..764ec3285e62 100644
--- a/drivers/video/fbdev/riva/fbdev.c
+++ b/drivers/video/fbdev/riva/fbdev.c
@@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info)
  * ------------------------------------------------------------------------- */
 
 /* kernel interface */
-static struct fb_ops riva_fb_ops = {
+static const struct fb_ops riva_fb_ops = {
 	.owner 		= THIS_MODULE,
 	.fb_open	= rivafb_open,
 	.fb_release	= rivafb_release,
diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c
index ba04d7a67829..f4871c430f8d 100644
--- a/drivers/video/fbdev/s3c-fb.c
+++ b/drivers/video/fbdev/s3c-fb.c
@@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd,
 	return ret;
 }
 
-static struct fb_ops s3c_fb_ops = {
+static const struct fb_ops s3c_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= s3c_fb_check_var,
 	.fb_set_par	= s3c_fb_set_par,
diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
index a702da89910b..2fb15a540167 100644
--- a/drivers/video/fbdev/s3c2410fb.c
+++ b/drivers/video/fbdev/s3c2410fb.c
@@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev,
 
 static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store);
 
-static struct fb_ops s3c2410fb_ops = {
+static const struct fb_ops s3c2410fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= s3c2410fb_check_var,
 	.fb_set_par	= s3c2410fb_set_par,
diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c
index be16c349c10f..60c424fae988 100644
--- a/drivers/video/fbdev/s3fb.c
+++ b/drivers/video/fbdev/s3fb.c
@@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 
 /* Frame buffer operations */
 
-static struct fb_ops s3fb_ops = {
+static const struct fb_ops s3fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= s3fb_open,
 	.fb_release	= s3fb_release,
diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
index 81ad3aa1ca06..4680cc3efb81 100644
--- a/drivers/video/fbdev/sa1100fb.c
+++ b/drivers/video/fbdev/sa1100fb.c
@@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info,
 	return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len);
 }
 
-static struct fb_ops sa1100fb_ops = {
+static const struct fb_ops sa1100fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= sa1100fb_check_var,
 	.fb_set_par	= sa1100fb_set_par,
diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c
index 512789f5f884..aab312a7d9da 100644
--- a/drivers/video/fbdev/savage/savagefb_driver.c
+++ b/drivers/video/fbdev/savage/savagefb_driver.c
@@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops savagefb_ops = {
+static const struct fb_ops savagefb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_open        = savagefb_open,
 	.fb_release     = savagefb_release,
diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
index ab8fe838c776..b8ec8d9bb4c8 100644
--- a/drivers/video/fbdev/sh7760fb.c
+++ b/drivers/video/fbdev/sh7760fb.c
@@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops sh7760fb_ops = {
+static const struct fb_ops sh7760fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_blank = sh7760fb_blank,
 	.fb_check_var = sh7760fb_check_var,
diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
index c249763dbf0b..25f119efebc0 100644
--- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
+++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
@@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma)
 				 ovl->dma_handle, ovl->fb_size);
 }
 
-static struct fb_ops sh_mobile_lcdc_overlay_ops = {
+static const struct fb_ops sh_mobile_lcdc_overlay_ops = {
 	.owner          = THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
@@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma)
 				 ch->dma_handle, ch->fb_size);
 }
 
-static struct fb_ops sh_mobile_lcdc_ops = {
+static const struct fb_ops sh_mobile_lcdc_ops = {
 	.owner          = THIS_MODULE,
 	.fb_setcolreg	= sh_mobile_lcdc_setcolreg,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index 7dc0105f700d..533a047d07a2 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops simplefb_ops = {
+static const struct fb_ops simplefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= simplefb_destroy,
 	.fb_setcolreg	= simplefb_setcolreg,
diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
index b443a8ed4600..ac140962b1bf 100644
--- a/drivers/video/fbdev/sis/sis_main.c
+++ b/drivers/video/fbdev/sis/sis_main.c
@@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
 
 /* ----------------  fb_ops structures ----------------- */
 
-static struct fb_ops sisfb_ops = {
+static const struct fb_ops sisfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= sisfb_open,
 	.fb_release	= sisfb_release,
diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c
index 812a36cb60c3..bcacfb6934fa 100644
--- a/drivers/video/fbdev/skeletonfb.c
+++ b/drivers/video/fbdev/skeletonfb.c
@@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info)
      *  Frame buffer operations
      */
 
-static struct fb_ops xxxfb_ops = {
+static const struct fb_ops xxxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= xxxfb_open,
 	.fb_read	= xxxfb_read,
diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c
index 207d0add684b..6a1b4a853d9e 100644
--- a/drivers/video/fbdev/sm712fb.c
+++ b/drivers/video/fbdev/sm712fb.c
@@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops smtcfb_ops = {
+static const struct fb_ops smtcfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_check_var = smtc_check_var,
 	.fb_set_par   = smtc_set_par,
diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
index e362d7da87fc..bfac3ee4a642 100644
--- a/drivers/video/fbdev/smscufx.c
+++ b/drivers/video/fbdev/smscufx.c
@@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ufx_ops = {
+static const struct fb_ops ufx_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = ufx_ops_write,
diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
index 78ca7ffc40c2..142535267fec 100644
--- a/drivers/video/fbdev/ssd1307fb.c
+++ b/drivers/video/fbdev/ssd1307fb.c
@@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima
 	ssd1307fb_update_display(par);
 }
 
-static struct fb_ops ssd1307fb_ops = {
+static const struct fb_ops ssd1307fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= fb_sys_read,
 	.fb_write	= ssd1307fb_write,
diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c
index 4e22ae383c87..82e707a48e4e 100644
--- a/drivers/video/fbdev/sstfb.c
+++ b/drivers/video/fbdev/sstfb.c
@@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options)
 }
 
 
-static struct fb_ops sstfb_ops = {
+static const struct fb_ops sstfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= sstfb_check_var,
 	.fb_set_par	= sstfb_set_par,
diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c
index 9e88e3f594c2..5400ab79fbbd 100644
--- a/drivers/video/fbdev/stifb.c
+++ b/drivers/video/fbdev/stifb.c
@@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb)
 
 /* ------------ Interfaces to hardware functions ------------ */
 
-static struct fb_ops stifb_ops = {
+static const struct fb_ops stifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= stifb_setcolreg,
 	.fb_blank	= stifb_blank,
diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c
index 784c9bd5d502..15b079505a00 100644
--- a/drivers/video/fbdev/sunxvr1000.c
+++ b/drivers/video/fbdev/sunxvr1000.c
@@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno,
 	return 0;
 }
 
-static struct fb_ops gfb_ops = {
+static const struct fb_ops gfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= gfb_setcolreg,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c
index 31683e5a8b79..1d3bacd9d5ac 100644
--- a/drivers/video/fbdev/sunxvr2500.c
+++ b/drivers/video/fbdev/sunxvr2500.c
@@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno,
 	return 0;
 }
 
-static struct fb_ops s3d_ops = {
+static const struct fb_ops s3d_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= s3d_setcolreg,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c
index d392976126a6..9daf17b11106 100644
--- a/drivers/video/fbdev/sunxvr500.c
+++ b/drivers/video/fbdev/sunxvr500.c
@@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area)
 	spin_unlock_irqrestore(&ep->lock, flags);
 }
 
-static struct fb_ops e3d_ops = {
+static const struct fb_ops e3d_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= e3d_setcolreg,
 	.fb_fillrect		= e3d_fillrect,
diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
index 7897f86fb23e..34b2e5b6e84a 100644
--- a/drivers/video/fbdev/tcx.c
+++ b/drivers/video/fbdev/tcx.c
@@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops tcx_ops = {
+static const struct fb_ops tcx_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= tcx_setcolreg,
 	.fb_blank		= tcx_blank,
diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c
index fdbb1ea66e6c..0349cf69652f 100644
--- a/drivers/video/fbdev/tdfxfb.c
+++ b/drivers/video/fbdev/tdfxfb.c
@@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-static struct fb_ops tdfxfb_ops = {
+static const struct fb_ops tdfxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= tdfxfb_check_var,
 	.fb_set_par	= tdfxfb_set_par,
diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c
index 286b2371c7dd..7cd262858241 100644
--- a/drivers/video/fbdev/tgafb.c
+++ b/drivers/video/fbdev/tgafb.c
@@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver;
  *  Frame buffer operations
  */
 
-static struct fb_ops tgafb_ops = {
+static const struct fb_ops tgafb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_check_var		= tgafb_check_var,
 	.fb_set_par		= tgafb_set_par,
diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c
index 4f2fcea10d2b..50111966c981 100644
--- a/drivers/video/fbdev/tmiofb.c
+++ b/drivers/video/fbdev/tmiofb.c
@@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops tmiofb_ops = {
+static const struct fb_ops tmiofb_ops = {
 	.owner		= THIS_MODULE,
 
 	.fb_ioctl	= tmiofb_ioctl,
diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c
index da74bf6c5996..715509917eaa 100644
--- a/drivers/video/fbdev/tridentfb.c
+++ b/drivers/video/fbdev/tridentfb.c
@@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info)
 	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
 }
 
-static struct fb_ops tridentfb_ops = {
+static const struct fb_ops tridentfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_setcolreg = tridentfb_setcolreg,
 	.fb_pan_display = tridentfb_pan_display,
diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
index e04fde9c1fcd..ca8d7343aaa1 100644
--- a/drivers/video/fbdev/valkyriefb.c
+++ b/drivers/video/fbdev/valkyriefb.c
@@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p);
 static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix);
 static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p);
 
-static struct fb_ops valkyriefb_ops = {
+static const struct fb_ops valkyriefb_ops = {
 	.owner =	THIS_MODULE,
 	.fb_check_var =	valkyriefb_check_var,
 	.fb_set_par =	valkyriefb_set_par,
diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
index 54127905bfe7..95d3c59867d0 100644
--- a/drivers/video/fbdev/vfb.c
+++ b/drivers/video/fbdev/vfb.c
@@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
 static int vfb_mmap(struct fb_info *info,
 		    struct vm_area_struct *vma);
 
-static struct fb_ops vfb_ops = {
+static const struct fb_ops vfb_ops = {
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
 	.fb_check_var	= vfb_check_var,
diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c
index 2c6a576ed84c..a20eeb8308ff 100644
--- a/drivers/video/fbdev/vga16fb.c
+++ b/drivers/video/fbdev/vga16fb.c
@@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info)
 	framebuffer_release(info);
 }
 
-static struct fb_ops vga16fb_ops = {
+static const struct fb_ops vga16fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open        = vga16fb_open,
 	.fb_release     = vga16fb_release,
diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c
index be8d9702cbb2..f744479dc7df 100644
--- a/drivers/video/fbdev/vt8500lcdfb.c
+++ b/drivers/video/fbdev/vt8500lcdfb.c
@@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vt8500lcd_ops = {
+static const struct fb_ops vt8500lcd_ops = {
 	.owner		= THIS_MODULE,
 	.fb_set_par	= vt8500lcd_set_par,
 	.fb_setcolreg	= vt8500lcd_setcolreg,
diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c
index c339a8fbad81..7b3eef1b893f 100644
--- a/drivers/video/fbdev/vt8623fb.c
+++ b/drivers/video/fbdev/vt8623fb.c
@@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i
 
 /* Frame buffer operations */
 
-static struct fb_ops vt8623fb_ops = {
+static const struct fb_ops vt8623fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= vt8623fb_open,
 	.fb_release	= vt8623fb_release,
diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
index 3be07807edcd..fe628ec20149 100644
--- a/drivers/video/fbdev/w100fb.c
+++ b/drivers/video/fbdev/w100fb.c
@@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info)
 /*
  *  Frame buffer operations
  */
-static struct fb_ops w100fb_ops = {
+static const struct fb_ops w100fb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_check_var = w100fb_check_var,
 	.fb_set_par   = w100fb_set_par,
diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c
index 17c780315ca5..b656eff58c23 100644
--- a/drivers/video/fbdev/wm8505fb.c
+++ b/drivers/video/fbdev/wm8505fb.c
@@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops wm8505fb_ops = {
+static const struct fb_ops wm8505fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_set_par	= wm8505fb_set_par,
 	.fb_setcolreg	= wm8505fb_setcolreg,
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index a3d6b6db221b..00307b8693bf 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops xenfb_fb_ops = {
+static const struct fb_ops xenfb_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= fb_sys_read,
 	.fb_write	= xenfb_write,
diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c
index 8628829b470d..ca4ff658cad0 100644
--- a/drivers/video/fbdev/xilinxfb.c
+++ b/drivers/video/fbdev/xilinxfb.c
@@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi)
 	return 0; /* success */
 }
 
-static struct fb_ops xilinxfb_ops = {
+static const struct fb_ops xilinxfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= xilinx_fb_setcolreg,
 	.fb_blank		= xilinx_fb_blank,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 08/12] video: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: jani.nikula, Daniel Vetter, intel-gfx

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

This does not cover all drivers; some actually modify the fbops struct,
for example to adjust for different configurations, and others do more
involved things that I'd rather not touch in practically obsolete
drivers. Mostly this is the low hanging fruit where we can add "const"
and be done with it.

v3:
- un-constify atyfb, mb862xx, nvidia and uvesabf (0day)

v2:
- fix typo (Christophe de Dinechin)
- use "static const" instead of "const static" in mx3fb.c
- also constify smscufx.c

Cc: linux-fbdev@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/video/fbdev/68328fb.c                  | 2 +-
 drivers/video/fbdev/acornfb.c                  | 2 +-
 drivers/video/fbdev/amba-clcd.c                | 2 +-
 drivers/video/fbdev/amifb.c                    | 2 +-
 drivers/video/fbdev/arcfb.c                    | 2 +-
 drivers/video/fbdev/arkfb.c                    | 2 +-
 drivers/video/fbdev/asiliantfb.c               | 2 +-
 drivers/video/fbdev/atmel_lcdfb.c              | 2 +-
 drivers/video/fbdev/aty/aty128fb.c             | 2 +-
 drivers/video/fbdev/aty/radeon_base.c          | 2 +-
 drivers/video/fbdev/au1100fb.c                 | 2 +-
 drivers/video/fbdev/au1200fb.c                 | 2 +-
 drivers/video/fbdev/broadsheetfb.c             | 2 +-
 drivers/video/fbdev/bw2.c                      | 2 +-
 drivers/video/fbdev/carminefb.c                | 2 +-
 drivers/video/fbdev/cg14.c                     | 2 +-
 drivers/video/fbdev/cg3.c                      | 2 +-
 drivers/video/fbdev/cg6.c                      | 2 +-
 drivers/video/fbdev/chipsfb.c                  | 2 +-
 drivers/video/fbdev/cirrusfb.c                 | 2 +-
 drivers/video/fbdev/clps711x-fb.c              | 2 +-
 drivers/video/fbdev/cobalt_lcdfb.c             | 2 +-
 drivers/video/fbdev/controlfb.c                | 2 +-
 drivers/video/fbdev/cyber2000fb.c              | 2 +-
 drivers/video/fbdev/da8xx-fb.c                 | 2 +-
 drivers/video/fbdev/dnfb.c                     | 2 +-
 drivers/video/fbdev/efifb.c                    | 2 +-
 drivers/video/fbdev/ep93xx-fb.c                | 2 +-
 drivers/video/fbdev/fb-puv3.c                  | 2 +-
 drivers/video/fbdev/ffb.c                      | 2 +-
 drivers/video/fbdev/fm2fb.c                    | 2 +-
 drivers/video/fbdev/fsl-diu-fb.c               | 2 +-
 drivers/video/fbdev/g364fb.c                   | 2 +-
 drivers/video/fbdev/gbefb.c                    | 2 +-
 drivers/video/fbdev/geode/gx1fb_core.c         | 2 +-
 drivers/video/fbdev/geode/gxfb_core.c          | 2 +-
 drivers/video/fbdev/geode/lxfb_core.c          | 2 +-
 drivers/video/fbdev/goldfishfb.c               | 2 +-
 drivers/video/fbdev/grvga.c                    | 2 +-
 drivers/video/fbdev/gxt4500.c                  | 2 +-
 drivers/video/fbdev/hecubafb.c                 | 2 +-
 drivers/video/fbdev/hgafb.c                    | 2 +-
 drivers/video/fbdev/hitfb.c                    | 2 +-
 drivers/video/fbdev/hpfb.c                     | 2 +-
 drivers/video/fbdev/hyperv_fb.c                | 2 +-
 drivers/video/fbdev/i740fb.c                   | 2 +-
 drivers/video/fbdev/imsttfb.c                  | 2 +-
 drivers/video/fbdev/imxfb.c                    | 2 +-
 drivers/video/fbdev/intelfb/intelfbdrv.c       | 2 +-
 drivers/video/fbdev/kyro/fbdev.c               | 2 +-
 drivers/video/fbdev/leo.c                      | 2 +-
 drivers/video/fbdev/macfb.c                    | 2 +-
 drivers/video/fbdev/matrox/matroxfb_crtc2.c    | 2 +-
 drivers/video/fbdev/maxinefb.c                 | 2 +-
 drivers/video/fbdev/mbx/mbxfb.c                | 2 +-
 drivers/video/fbdev/metronomefb.c              | 2 +-
 drivers/video/fbdev/mmp/fb/mmpfb.c             | 2 +-
 drivers/video/fbdev/mx3fb.c                    | 5 +++--
 drivers/video/fbdev/neofb.c                    | 2 +-
 drivers/video/fbdev/ocfb.c                     | 2 +-
 drivers/video/fbdev/offb.c                     | 2 +-
 drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +-
 drivers/video/fbdev/p9100.c                    | 2 +-
 drivers/video/fbdev/platinumfb.c               | 2 +-
 drivers/video/fbdev/pm2fb.c                    | 2 +-
 drivers/video/fbdev/pm3fb.c                    | 2 +-
 drivers/video/fbdev/pmag-aa-fb.c               | 2 +-
 drivers/video/fbdev/pmag-ba-fb.c               | 2 +-
 drivers/video/fbdev/pmagb-b-fb.c               | 2 +-
 drivers/video/fbdev/ps3fb.c                    | 2 +-
 drivers/video/fbdev/pvr2fb.c                   | 2 +-
 drivers/video/fbdev/pxa168fb.c                 | 2 +-
 drivers/video/fbdev/pxafb.c                    | 4 ++--
 drivers/video/fbdev/q40fb.c                    | 2 +-
 drivers/video/fbdev/riva/fbdev.c               | 2 +-
 drivers/video/fbdev/s3c-fb.c                   | 2 +-
 drivers/video/fbdev/s3c2410fb.c                | 2 +-
 drivers/video/fbdev/s3fb.c                     | 2 +-
 drivers/video/fbdev/sa1100fb.c                 | 2 +-
 drivers/video/fbdev/savage/savagefb_driver.c   | 2 +-
 drivers/video/fbdev/sh7760fb.c                 | 2 +-
 drivers/video/fbdev/sh_mobile_lcdcfb.c         | 4 ++--
 drivers/video/fbdev/simplefb.c                 | 2 +-
 drivers/video/fbdev/sis/sis_main.c             | 2 +-
 drivers/video/fbdev/skeletonfb.c               | 2 +-
 drivers/video/fbdev/sm712fb.c                  | 2 +-
 drivers/video/fbdev/smscufx.c                  | 2 +-
 drivers/video/fbdev/ssd1307fb.c                | 2 +-
 drivers/video/fbdev/sstfb.c                    | 2 +-
 drivers/video/fbdev/stifb.c                    | 2 +-
 drivers/video/fbdev/sunxvr1000.c               | 2 +-
 drivers/video/fbdev/sunxvr2500.c               | 2 +-
 drivers/video/fbdev/sunxvr500.c                | 2 +-
 drivers/video/fbdev/tcx.c                      | 2 +-
 drivers/video/fbdev/tdfxfb.c                   | 2 +-
 drivers/video/fbdev/tgafb.c                    | 2 +-
 drivers/video/fbdev/tmiofb.c                   | 2 +-
 drivers/video/fbdev/tridentfb.c                | 2 +-
 drivers/video/fbdev/valkyriefb.c               | 2 +-
 drivers/video/fbdev/vfb.c                      | 2 +-
 drivers/video/fbdev/vga16fb.c                  | 2 +-
 drivers/video/fbdev/vt8500lcdfb.c              | 2 +-
 drivers/video/fbdev/vt8623fb.c                 | 2 +-
 drivers/video/fbdev/w100fb.c                   | 2 +-
 drivers/video/fbdev/wm8505fb.c                 | 2 +-
 drivers/video/fbdev/xen-fbfront.c              | 2 +-
 drivers/video/fbdev/xilinxfb.c                 | 2 +-
 107 files changed, 111 insertions(+), 110 deletions(-)

diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c
index d48e96088f76..491fd5a82993 100644
--- a/drivers/video/fbdev/68328fb.c
+++ b/drivers/video/fbdev/68328fb.c
@@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var,
 			   struct fb_info *info);
 static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma);
 
-static struct fb_ops mc68x328fb_ops = {
+static const struct fb_ops mc68x328fb_ops = {
 	.fb_check_var	= mc68x328fb_check_var,
 	.fb_set_par	= mc68x328fb_set_par,
 	.fb_setcolreg	= mc68x328fb_setcolreg,
diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
index 7cacae5a8797..a3af49529173 100644
--- a/drivers/video/fbdev/acornfb.c
+++ b/drivers/video/fbdev/acornfb.c
@@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops acornfb_ops = {
+static const struct fb_ops acornfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= acornfb_check_var,
 	.fb_set_par	= acornfb_set_par,
diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
index 7de43be6ef2c..c3d55fc6c4e0 100644
--- a/drivers/video/fbdev/amba-clcd.c
+++ b/drivers/video/fbdev/amba-clcd.c
@@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info,
 	return ret;
 }
 
-static struct fb_ops clcdfb_ops = {
+static const struct fb_ops clcdfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= clcdfb_check_var,
 	.fb_set_par	= clcdfb_set_par,
diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
index 91ddc9602014..20e03e00b66d 100644
--- a/drivers/video/fbdev/amifb.c
+++ b/drivers/video/fbdev/amifb.c
@@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id)
 }
 
 
-static struct fb_ops amifb_ops = {
+static const struct fb_ops amifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= amifb_check_var,
 	.fb_set_par	= amifb_set_par,
diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
index a48741aab240..314ab82e01c0 100644
--- a/drivers/video/fbdev/arcfb.c
+++ b/drivers/video/fbdev/arcfb.c
@@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
 	return err;
 }
 
-static struct fb_ops arcfb_ops = {
+static const struct fb_ops arcfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= arcfb_open,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
index f940e8b66b85..11ab9a153860 100644
--- a/drivers/video/fbdev/arkfb.c
+++ b/drivers/video/fbdev/arkfb.c
@@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
 
 /* Frame buffer operations */
 
-static struct fb_ops arkfb_ops = {
+static const struct fb_ops arkfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= arkfb_open,
 	.fb_release	= arkfb_release,
diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c
index ea31054a28ca..3e006da47752 100644
--- a/drivers/video/fbdev/asiliantfb.c
+++ b/drivers/video/fbdev/asiliantfb.c
@@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info);
 static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
 				u_int transp, struct fb_info *info);
 
-static struct fb_ops asiliantfb_ops = {
+static const struct fb_ops asiliantfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= asiliantfb_check_var,
 	.fb_set_par	= asiliantfb_set_par,
diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c
index 5ff8e0320d95..d567f5d56c13 100644
--- a/drivers/video/fbdev/atmel_lcdfb.c
+++ b/drivers/video/fbdev/atmel_lcdfb.c
@@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info)
 	return ((blank_mode == FB_BLANK_NORMAL) ? 1 : 0);
 }
 
-static struct fb_ops atmel_lcdfb_ops = {
+static const struct fb_ops atmel_lcdfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= atmel_lcdfb_check_var,
 	.fb_set_par	= atmel_lcdfb_set_par,
diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
index fc1e45d44719..d7e41c8dd533 100644
--- a/drivers/video/fbdev/aty/aty128fb.c
+++ b/drivers/video/fbdev/aty/aty128fb.c
@@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power);
 			  (readb(bios + (v) + 3) << 24))
 
 
-static struct fb_ops aty128fb_ops = {
+static const struct fb_ops aty128fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= aty128fb_check_var,
 	.fb_set_par	= aty128fb_set_par,
diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
index 4ca07866f2f6..3af00e3b965e 100644
--- a/drivers/video/fbdev/aty/radeon_base.c
+++ b/drivers/video/fbdev/aty/radeon_base.c
@@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info)
 }
 
 
-static struct fb_ops radeonfb_ops = {
+static const struct fb_ops radeonfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_check_var		= radeonfb_check_var,
 	.fb_set_par		= radeonfb_set_par,
diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
index 99941ae1f3a1..37a6512feda0 100644
--- a/drivers/video/fbdev/au1100fb.c
+++ b/drivers/video/fbdev/au1100fb.c
@@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
 			fbdev->fb_len);
 }
 
-static struct fb_ops au1100fb_ops =
+static const struct fb_ops au1100fb_ops =
 {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= au1100fb_fb_setcolreg,
diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c
index 265d3b45efd0..c00e01a17368 100644
--- a/drivers/video/fbdev/au1200fb.c
+++ b/drivers/video/fbdev/au1200fb.c
@@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd,
 }
 
 
-static struct fb_ops au1200fb_fb_ops = {
+static const struct fb_ops au1200fb_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= au1200fb_fb_check_var,
 	.fb_set_par	= au1200fb_fb_set_par,
diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
index d6ba348deb9f..fd66f4d4a621 100644
--- a/drivers/video/fbdev/broadsheetfb.c
+++ b/drivers/video/fbdev/broadsheetfb.c
@@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops broadsheetfb_ops = {
+static const struct fb_ops broadsheetfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write	= broadsheetfb_write,
diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c
index 436f10f3d375..0d9a6bb57a09 100644
--- a/drivers/video/fbdev/bw2.c
+++ b/drivers/video/fbdev/bw2.c
@@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops bw2_ops = {
+static const struct fb_ops bw2_ops = {
 	.owner			= THIS_MODULE,
 	.fb_blank		= bw2_blank,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
index 9f3be0258623..bf3f2a9598b1 100644
--- a/drivers/video/fbdev/carminefb.c
+++ b/drivers/video/fbdev/carminefb.c
@@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw)
 	return 0;
 }
 
-static struct fb_ops carminefb_ops = {
+static const struct fb_ops carminefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_fillrect	= cfb_fillrect,
 	.fb_copyarea	= cfb_copyarea,
diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c
index d80d99db3a46..a620b51cf7d0 100644
--- a/drivers/video/fbdev/cg14.c
+++ b/drivers/video/fbdev/cg14.c
@@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg14_ops = {
+static const struct fb_ops cg14_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg14_setcolreg,
 	.fb_pan_display		= cg14_pan_display,
diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c
index 09f616dddfd7..77f6470ce665 100644
--- a/drivers/video/fbdev/cg3.c
+++ b/drivers/video/fbdev/cg3.c
@@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg3_ops = {
+static const struct fb_ops cg3_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg3_setcolreg,
 	.fb_blank		= cg3_blank,
diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c
index d5888aecc2fb..a1c68cd48d7e 100644
--- a/drivers/video/fbdev/cg6.c
+++ b/drivers/video/fbdev/cg6.c
@@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops cg6_ops = {
+static const struct fb_ops cg6_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= cg6_setcolreg,
 	.fb_blank		= cg6_blank,
diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c
index f4dc320dcafe..998067b701fa 100644
--- a/drivers/video/fbdev/chipsfb.c
+++ b/drivers/video/fbdev/chipsfb.c
@@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
 			     u_int transp, struct fb_info *info);
 static int chipsfb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops chipsfb_ops = {
+static const struct fb_ops chipsfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= chipsfb_check_var,
 	.fb_set_par	= chipsfb_set_par,
diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c
index e4ce5667b125..c3a3e344cee3 100644
--- a/drivers/video/fbdev/cirrusfb.c
+++ b/drivers/video/fbdev/cirrusfb.c
@@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info)
 #endif /* CONFIG_ZORRO */
 
 /* function table of the above functions */
-static struct fb_ops cirrusfb_ops = {
+static const struct fb_ops cirrusfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= cirrusfb_open,
 	.fb_release	= cirrusfb_release,
diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
index cabbc721f894..c5d15c6db287 100644
--- a/drivers/video/fbdev/clps711x-fb.c
+++ b/drivers/video/fbdev/clps711x-fb.c
@@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops clps711x_fb_ops = {
+static const struct fb_ops clps711x_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= clps711x_fb_setcolreg,
 	.fb_check_var	= clps711x_fb_check_var,
diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
index 544946901e8b..5f8b6324d2e8 100644
--- a/drivers/video/fbdev/cobalt_lcdfb.c
+++ b/drivers/video/fbdev/cobalt_lcdfb.c
@@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-static struct fb_ops cobalt_lcd_fbops = {
+static const struct fb_ops cobalt_lcd_fbops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= cobalt_lcdfb_read,
 	.fb_write	= cobalt_lcdfb_write,
diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
index 9a680ef3ffc3..38b61cdb5ca4 100644
--- a/drivers/video/fbdev/controlfb.c
+++ b/drivers/video/fbdev/controlfb.c
@@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM;
 static int default_cmode __initdata = CMODE_NVRAM;
 
 
-static struct fb_ops controlfb_ops = {
+static const struct fb_ops controlfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= controlfb_check_var,
 	.fb_set_par	= controlfb_set_par,
diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
index 3a2d9ff0aa42..460826a7ad55 100644
--- a/drivers/video/fbdev/cyber2000fb.c
+++ b/drivers/video/fbdev/cyber2000fb.c
@@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops cyber2000fb_ops = {
+static const struct fb_ops cyber2000fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= cyber2000fb_check_var,
 	.fb_set_par	= cyber2000fb_set_par,
diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c
index 2d3dcc52fcf3..73c3c4c8cc12 100644
--- a/drivers/video/fbdev/da8xx-fb.c
+++ b/drivers/video/fbdev/da8xx-fb.c
@@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops da8xx_fb_ops = {
+static const struct fb_ops da8xx_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = fb_check_var,
 	.fb_set_par = da8xxfb_set_par,
diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c
index 8da517eaa4a3..3688f9165848 100644
--- a/drivers/video/fbdev/dnfb.c
+++ b/drivers/video/fbdev/dnfb.c
@@ -108,7 +108,7 @@
 static int dnfb_blank(int blank, struct fb_info *info);
 static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
 
-static struct fb_ops dn_fb_ops = {
+static const struct fb_ops dn_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= dnfb_blank,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
index 51d97ec4f58f..f03f9fb60c26 100644
--- a/drivers/video/fbdev/efifb.c
+++ b/drivers/video/fbdev/efifb.c
@@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info)
 	fb_dealloc_cmap(&info->cmap);
 }
 
-static struct fb_ops efifb_ops = {
+static const struct fb_ops efifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= efifb_destroy,
 	.fb_setcolreg	= efifb_setcolreg,
diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c
index d04a047094fc..cda2ef337423 100644
--- a/drivers/video/fbdev/ep93xx-fb.c
+++ b/drivers/video/fbdev/ep93xx-fb.c
@@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops ep93xxfb_ops = {
+static const struct fb_ops ep93xxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= ep93xxfb_check_var,
 	.fb_set_par	= ep93xxfb_set_par,
diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c
index fa62c4dff7d1..75df6aabac21 100644
--- a/drivers/video/fbdev/fb-puv3.c
+++ b/drivers/video/fbdev/fb-puv3.c
@@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info,
 	return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len);
 }
 
-static struct fb_ops unifb_ops = {
+static const struct fb_ops unifb_ops = {
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
 	.fb_check_var	= unifb_check_var,
diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c
index cd2d1db239a2..948b73184433 100644
--- a/drivers/video/fbdev/ffb.c
+++ b/drivers/video/fbdev/ffb.c
@@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops ffb_ops = {
+static const struct fb_ops ffb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= ffb_setcolreg,
 	.fb_blank		= ffb_blank,
diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c
index ac7a4ebfd390..3b727d528fde 100644
--- a/drivers/video/fbdev/fm2fb.c
+++ b/drivers/video/fbdev/fm2fb.c
@@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
                            u_int transp, struct fb_info *info);
 static int fm2fb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops fm2fb_ops = {
+static const struct fb_ops fm2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= fm2fb_setcolreg,
 	.fb_blank	= fm2fb_blank,
diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
index d19f58263b4e..7cacabdd5f12 100644
--- a/drivers/video/fbdev/fsl-diu-fb.c
+++ b/drivers/video/fbdev/fsl-diu-fb.c
@@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user)
 	return res;
 }
 
-static struct fb_ops fsl_diu_ops = {
+static const struct fb_ops fsl_diu_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = fsl_diu_check_var,
 	.fb_set_par = fsl_diu_set_par,
diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
index 223896cc5f7d..845b79da2a7c 100644
--- a/drivers/video/fbdev/g364fb.c
+++ b/drivers/video/fbdev/g364fb.c
@@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
 static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
 static int g364fb_blank(int blank, struct fb_info *info);
 
-static struct fb_ops g364fb_ops = {
+static const struct fb_ops g364fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= g364fb_setcolreg,
 	.fb_pan_display	= g364fb_pan_display,
diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c
index b9f6a82a0495..31270a8986e8 100644
--- a/drivers/video/fbdev/gbefb.c
+++ b/drivers/video/fbdev/gbefb.c
@@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info,
 	return 0;
 }
 
-static struct fb_ops gbefb_ops = {
+static const struct fb_ops gbefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gbefb_check_var,
 	.fb_set_par	= gbefb_set_par,
diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c
index 737e472fac14..5d34d89fb665 100644
--- a/drivers/video/fbdev/geode/gx1fb_core.c
+++ b/drivers/video/fbdev/geode/gx1fb_core.c
@@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops gx1fb_ops = {
+static const struct fb_ops gx1fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gx1fb_check_var,
 	.fb_set_par	= gx1fb_set_par,
diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
index 435ce2aa4240..d38a148d4746 100644
--- a/drivers/video/fbdev/geode/gxfb_core.c
+++ b/drivers/video/fbdev/geode/gxfb_core.c
@@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
 	return 0;
 }
 
-static struct fb_ops gxfb_ops = {
+static const struct fb_ops gxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= gxfb_check_var,
 	.fb_set_par	= gxfb_set_par,
diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c
index b0f07d676eb3..adc2d9c2395e 100644
--- a/drivers/video/fbdev/geode/lxfb_core.c
+++ b/drivers/video/fbdev/geode/lxfb_core.c
@@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
 	return 0;
 }
 
-static struct fb_ops lxfb_ops = {
+static const struct fb_ops lxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= lxfb_check_var,
 	.fb_set_par	= lxfb_set_par,
diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
index f60ac276703d..9c83ec3f8e1f 100644
--- a/drivers/video/fbdev/goldfishfb.c
+++ b/drivers/video/fbdev/goldfishfb.c
@@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops goldfish_fb_ops = {
+static const struct fb_ops goldfish_fb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_check_var   = goldfish_fb_check_var,
 	.fb_set_par     = goldfish_fb_set_par,
diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c
index d22e8b0c906d..07dda03e0957 100644
--- a/drivers/video/fbdev/grvga.c
+++ b/drivers/video/fbdev/grvga.c
@@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var,
 	return 0;
 }
 
-static struct fb_ops grvga_ops = {
+static const struct fb_ops grvga_ops = {
 	.owner          = THIS_MODULE,
 	.fb_check_var   = grvga_check_var,
 	.fb_set_par	= grvga_set_par,
diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c
index c7502fd8f447..13ded3a10708 100644
--- a/drivers/video/fbdev/gxt4500.c
+++ b/drivers/video/fbdev/gxt4500.c
@@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = {
 	.mmio_len = 0x20000,
 };
 
-static struct fb_ops gxt4500_ops = {
+static const struct fb_ops gxt4500_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = gxt4500_check_var,
 	.fb_set_par = gxt4500_set_par,
diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c
index 8577195cb533..00d77105161a 100644
--- a/drivers/video/fbdev/hecubafb.c
+++ b/drivers/video/fbdev/hecubafb.c
@@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops hecubafb_ops = {
+static const struct fb_ops hecubafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write	= hecubafb_write,
diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c
index 59e1cae57948..a45fcff1461f 100644
--- a/drivers/video/fbdev/hgafb.c
+++ b/drivers/video/fbdev/hgafb.c
@@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
 	}
 }
 
-static struct fb_ops hgafb_ops = {
+static const struct fb_ops hgafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= hgafb_open,
 	.fb_release	= hgafb_release,
diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c
index abe3e54d4506..009e5d2aa100 100644
--- a/drivers/video/fbdev/hitfb.c
+++ b/drivers/video/fbdev/hitfb.c
@@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops hitfb_ops = {
+static const struct fb_ops hitfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= hitfb_check_var,
 	.fb_set_par		= hitfb_set_par,
diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
index a79af8f069d1..f02be0db335e 100644
--- a/drivers/video/fbdev/hpfb.c
+++ b/drivers/video/fbdev/hpfb.c
@@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops hpfb_ops = {
+static const struct fb_ops hpfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= hpfb_setcolreg,
 	.fb_blank	= hpfb_blank,
diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
index 2dcb7c58b31e..fcd546e5c031 100644
--- a/drivers/video/fbdev/hyperv_fb.c
+++ b/drivers/video/fbdev/hyperv_fb.c
@@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p,
 		synthvid_update(p);
 }
 
-static struct fb_ops hvfb_ops = {
+static const struct fb_ops hvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = hvfb_check_var,
 	.fb_set_par = hvfb_set_par,
diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c
index 347cf8babc3e..c65ec7386e87 100644
--- a/drivers/video/fbdev/i740fb.c
+++ b/drivers/video/fbdev/i740fb.c
@@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info)
 	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
 }
 
-static struct fb_ops i740fb_ops = {
+static const struct fb_ops i740fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= i740fb_open,
 	.fb_release	= i740fb_release,
diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
index 58b01c7d9056..3ac053b88495 100644
--- a/drivers/video/fbdev/imsttfb.c
+++ b/drivers/video/fbdev/imsttfb.c
@@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = {
 	.remove =	imsttfb_remove,
 };
 
-static struct fb_ops imsttfb_ops = {
+static const struct fb_ops imsttfb_ops = {
 	.owner 		= THIS_MODULE,
 	.fb_check_var	= imsttfb_check_var,
 	.fb_set_par 	= imsttfb_set_par,
diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
index b3286d1fa543..08a17eb2a5c7 100644
--- a/drivers/video/fbdev/imxfb.c
+++ b/drivers/video/fbdev/imxfb.c
@@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops imxfb_ops = {
+static const struct fb_ops imxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= imxfb_check_var,
 	.fb_set_par	= imxfb_set_par,
diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c
index a76c61512c60..c744891781a5 100644
--- a/drivers/video/fbdev/intelfb/intelfbdrv.c
+++ b/drivers/video/fbdev/intelfb/intelfbdrv.c
@@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = {
 static int num_registered = 0;
 
 /* fb ops */
-static struct fb_ops intel_fb_ops = {
+static const struct fb_ops intel_fb_ops = {
 	.owner =		THIS_MODULE,
 	.fb_open =              intelfb_open,
 	.fb_release =           intelfb_release,
diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c
index a7bd9f25911b..72dff2e42e3a 100644
--- a/drivers/video/fbdev/kyro/fbdev.c
+++ b/drivers/video/fbdev/kyro/fbdev.c
@@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = {
 	.remove		= kyrofb_remove,
 };
 
-static struct fb_ops kyrofb_ops = {
+static const struct fb_ops kyrofb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= kyrofb_check_var,
 	.fb_set_par	= kyrofb_set_par,
diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c
index 5b1141ac182b..40b11cce0ad6 100644
--- a/drivers/video/fbdev/leo.c
+++ b/drivers/video/fbdev/leo.c
@@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops leo_ops = {
+static const struct fb_ops leo_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= leo_setcolreg,
 	.fb_blank		= leo_blank,
diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c
index 9a6feee96133..e05a97662ca8 100644
--- a/drivers/video/fbdev/macfb.c
+++ b/drivers/video/fbdev/macfb.c
@@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green,
 	return 0;
 }
 
-static struct fb_ops macfb_ops = {
+static const struct fb_ops macfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= macfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
index d2a81a2c3ac0..7655afa3fd50 100644
--- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
+++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
@@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) {
 #undef m2info
 }
 
-static struct fb_ops matroxfb_dh_ops = {
+static const struct fb_ops matroxfb_dh_ops = {
 	.owner =	THIS_MODULE,
 	.fb_open =	matroxfb_dh_open,
 	.fb_release =	matroxfb_dh_release,
diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c
index 5bb1b5c308a7..ae1a42bcb0ea 100644
--- a/drivers/video/fbdev/maxinefb.c
+++ b/drivers/video/fbdev/maxinefb.c
@@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green,
 	return 0;
 }
 
-static struct fb_ops maxinefb_ops = {
+static const struct fb_ops maxinefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= maxinefb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c
index 50935252b50b..25dad4507d77 100644
--- a/drivers/video/fbdev/mbx/mbxfb.c
+++ b/drivers/video/fbdev/mbx/mbxfb.c
@@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd,
 	return -EINVAL;
 }
 
-static struct fb_ops mbxfb_ops = {
+static const struct fb_ops mbxfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var = mbxfb_check_var,
 	.fb_set_par = mbxfb_set_par,
diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c
index bb4fee52e501..a42e2eceee48 100644
--- a/drivers/video/fbdev/metronomefb.c
+++ b/drivers/video/fbdev/metronomefb.c
@@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
 	return (err) ? err : count;
 }
 
-static struct fb_ops metronomefb_ops = {
+static const struct fb_ops metronomefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_write	= metronomefb_write,
 	.fb_fillrect	= metronomefb_fillrect,
diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
index 47bc7c59bbd8..33db0850086f 100644
--- a/drivers/video/fbdev/mmp/fb/mmpfb.c
+++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
@@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops mmpfb_ops = {
+static const struct fb_ops mmpfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= mmpfb_blank,
 	.fb_check_var	= mmpfb_check_var,
diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
index bafd5f5fac5a..4af28e4421e5 100644
--- a/drivers/video/fbdev/mx3fb.c
+++ b/drivers/video/fbdev/mx3fb.c
@@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
  * invoked by the core framebuffer driver to perform operations like
  * blitting, rectangle filling, copy regions and cursor definition.
  */
-static struct fb_ops mx3fb_ops = {
+static const struct fb_ops mx3fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_set_par = mx3fb_set_par,
 	.fb_check_var = mx3fb_check_var,
@@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi)
  * mx3fb_init_fbinfo() - initialize framebuffer information object.
  * @return:	initialized framebuffer structure.
  */
-static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
+static struct fb_info *mx3fb_init_fbinfo(struct device *dev,
+					 const struct fb_ops *ops)
 {
 	struct fb_info *fbi;
 	struct mx3fb_info *mx3fbi;
diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
index b770946a0920..e6ea853c1723 100644
--- a/drivers/video/fbdev/neofb.c
+++ b/drivers/video/fbdev/neofb.c
@@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 }
 */
 
-static struct fb_ops neofb_ops = {
+static const struct fb_ops neofb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= neofb_open,
 	.fb_release	= neofb_release,
diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c
index a970edc2a6f8..c8cee2d890dc 100644
--- a/drivers/video/fbdev/ocfb.c
+++ b/drivers/video/fbdev/ocfb.c
@@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev)
 	return 0;
 }
 
-static struct fb_ops ocfb_ops = {
+static const struct fb_ops ocfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= ocfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
index fbc6eafb63c7..5cd0f5f6a4ae 100644
--- a/drivers/video/fbdev/offb.c
+++ b/drivers/video/fbdev/offb.c
@@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info)
 	framebuffer_release(info);
 }
 
-static struct fb_ops offb_ops = {
+static const struct fb_ops offb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= offb_destroy,
 	.fb_setcolreg	= offb_setcolreg,
diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
index 858c2c011d19..8dfa9158ba78 100644
--- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
+++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
@@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf,
 }
 #endif
 
-static struct fb_ops omapfb_ops = {
+static const struct fb_ops omapfb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_open        = omapfb_open,
 	.fb_release     = omapfb_release,
diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c
index 8c18cc51aae2..6da672e92643 100644
--- a/drivers/video/fbdev/p9100.c
+++ b/drivers/video/fbdev/p9100.c
@@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
  *  Frame buffer operations
  */
 
-static struct fb_ops p9100_ops = {
+static const struct fb_ops p9100_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= p9100_setcolreg,
 	.fb_blank		= p9100_blank,
diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c
index 632b246ca35f..ce413a9df06e 100644
--- a/drivers/video/fbdev/platinumfb.c
+++ b/drivers/video/fbdev/platinumfb.c
@@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var,
  * Interface used by the world
  */
 
-static struct fb_ops platinumfb_ops = {
+static const struct fb_ops platinumfb_ops = {
 	.owner =	THIS_MODULE,
 	.fb_check_var	= platinumfb_check_var,
 	.fb_set_par	= platinumfb_set_par,
diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c
index 1dcf02e12af4..8f933bad461c 100644
--- a/drivers/video/fbdev/pm2fb.c
+++ b/drivers/video/fbdev/pm2fb.c
@@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
  *  Frame buffer operations
  */
 
-static struct fb_ops pm2fb_ops = {
+static const struct fb_ops pm2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pm2fb_check_var,
 	.fb_set_par	= pm2fb_set_par,
diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c
index 6130aa56a1e9..15a2b495235b 100644
--- a/drivers/video/fbdev/pm3fb.c
+++ b/drivers/video/fbdev/pm3fb.c
@@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info)
 	 *  Frame buffer operations
 	 */
 
-static struct fb_ops pm3fb_ops = {
+static const struct fb_ops pm3fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pm3fb_check_var,
 	.fb_set_par	= pm3fb_set_par,
diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c
index d1e78ce3a9c2..7b33b52b2526 100644
--- a/drivers/video/fbdev/pmag-aa-fb.c
+++ b/drivers/video/fbdev/pmag-aa-fb.c
@@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops aafb_ops = {
+static const struct fb_ops aafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_blank	= aafb_blank,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c
index 56b912bb28de..a60e56d8980b 100644
--- a/drivers/video/fbdev/pmag-ba-fb.c
+++ b/drivers/video/fbdev/pmag-ba-fb.c
@@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops pmagbafb_ops = {
+static const struct fb_ops pmagbafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pmagbafb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c
index 2822b2225924..f02080f21077 100644
--- a/drivers/video/fbdev/pmagb-b-fb.c
+++ b/drivers/video/fbdev/pmagb-b-fb.c
@@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red,
 	return 0;
 }
 
-static struct fb_ops pmagbbfb_ops = {
+static const struct fb_ops pmagbbfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pmagbbfb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c
index 5ed2db39d823..834f63edf700 100644
--- a/drivers/video/fbdev/ps3fb.c
+++ b/drivers/video/fbdev/ps3fb.c
@@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr)
 }
 
 
-static struct fb_ops ps3fb_ops = {
+static const struct fb_ops ps3fb_ops = {
 	.fb_open	= ps3fb_open,
 	.fb_release	= ps3fb_release,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
index 0a3b2b7c7891..fcb16eabbb0d 100644
--- a/drivers/video/fbdev/pvr2fb.c
+++ b/drivers/video/fbdev/pvr2fb.c
@@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
 }
 #endif /* CONFIG_PVR2_DMA */
 
-static struct fb_ops pvr2fb_ops = {
+static const struct fb_ops pvr2fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= pvr2fb_setcolreg,
 	.fb_blank	= pvr2fb_blank,
diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c
index 1410f476e135..c672c3354a2c 100644
--- a/drivers/video/fbdev/pxa168fb.c
+++ b/drivers/video/fbdev/pxa168fb.c
@@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id)
 	return IRQ_NONE;
 }
 
-static struct fb_ops pxa168fb_ops = {
+static const struct fb_ops pxa168fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pxa168fb_check_var,
 	.fb_set_par	= pxa168fb_set_par,
diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
index f70c9f79622e..6f7e9fb63190 100644
--- a/drivers/video/fbdev/pxafb.c
+++ b/drivers/video/fbdev/pxafb.c
@@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops pxafb_ops = {
+static const struct fb_ops pxafb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= pxafb_check_var,
 	.fb_set_par	= pxafb_set_par,
@@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops overlay_fb_ops = {
+static const struct fb_ops overlay_fb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_open		= overlayfb_open,
 	.fb_release		= overlayfb_release,
diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c
index 0b93aa964d43..79ff14a35c85 100644
--- a/drivers/video/fbdev/q40fb.c
+++ b/drivers/video/fbdev/q40fb.c
@@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green,
     return 0;
 }
 
-static struct fb_ops q40fb_ops = {
+static const struct fb_ops q40fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= q40fb_setcolreg,
 	.fb_fillrect	= cfb_fillrect,
diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
index ca593a3e41d7..764ec3285e62 100644
--- a/drivers/video/fbdev/riva/fbdev.c
+++ b/drivers/video/fbdev/riva/fbdev.c
@@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info)
  * ------------------------------------------------------------------------- */
 
 /* kernel interface */
-static struct fb_ops riva_fb_ops = {
+static const struct fb_ops riva_fb_ops = {
 	.owner 		= THIS_MODULE,
 	.fb_open	= rivafb_open,
 	.fb_release	= rivafb_release,
diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c
index ba04d7a67829..f4871c430f8d 100644
--- a/drivers/video/fbdev/s3c-fb.c
+++ b/drivers/video/fbdev/s3c-fb.c
@@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd,
 	return ret;
 }
 
-static struct fb_ops s3c_fb_ops = {
+static const struct fb_ops s3c_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= s3c_fb_check_var,
 	.fb_set_par	= s3c_fb_set_par,
diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
index a702da89910b..2fb15a540167 100644
--- a/drivers/video/fbdev/s3c2410fb.c
+++ b/drivers/video/fbdev/s3c2410fb.c
@@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev,
 
 static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store);
 
-static struct fb_ops s3c2410fb_ops = {
+static const struct fb_ops s3c2410fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= s3c2410fb_check_var,
 	.fb_set_par	= s3c2410fb_set_par,
diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c
index be16c349c10f..60c424fae988 100644
--- a/drivers/video/fbdev/s3fb.c
+++ b/drivers/video/fbdev/s3fb.c
@@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
 
 /* Frame buffer operations */
 
-static struct fb_ops s3fb_ops = {
+static const struct fb_ops s3fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= s3fb_open,
 	.fb_release	= s3fb_release,
diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
index 81ad3aa1ca06..4680cc3efb81 100644
--- a/drivers/video/fbdev/sa1100fb.c
+++ b/drivers/video/fbdev/sa1100fb.c
@@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info,
 	return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len);
 }
 
-static struct fb_ops sa1100fb_ops = {
+static const struct fb_ops sa1100fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= sa1100fb_check_var,
 	.fb_set_par	= sa1100fb_set_par,
diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c
index 512789f5f884..aab312a7d9da 100644
--- a/drivers/video/fbdev/savage/savagefb_driver.c
+++ b/drivers/video/fbdev/savage/savagefb_driver.c
@@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user)
 	return 0;
 }
 
-static struct fb_ops savagefb_ops = {
+static const struct fb_ops savagefb_ops = {
 	.owner          = THIS_MODULE,
 	.fb_open        = savagefb_open,
 	.fb_release     = savagefb_release,
diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
index ab8fe838c776..b8ec8d9bb4c8 100644
--- a/drivers/video/fbdev/sh7760fb.c
+++ b/drivers/video/fbdev/sh7760fb.c
@@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops sh7760fb_ops = {
+static const struct fb_ops sh7760fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_blank = sh7760fb_blank,
 	.fb_check_var = sh7760fb_check_var,
diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
index c249763dbf0b..25f119efebc0 100644
--- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
+++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
@@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma)
 				 ovl->dma_handle, ovl->fb_size);
 }
 
-static struct fb_ops sh_mobile_lcdc_overlay_ops = {
+static const struct fb_ops sh_mobile_lcdc_overlay_ops = {
 	.owner          = THIS_MODULE,
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
@@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma)
 				 ch->dma_handle, ch->fb_size);
 }
 
-static struct fb_ops sh_mobile_lcdc_ops = {
+static const struct fb_ops sh_mobile_lcdc_ops = {
 	.owner          = THIS_MODULE,
 	.fb_setcolreg	= sh_mobile_lcdc_setcolreg,
 	.fb_read        = fb_sys_read,
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index 7dc0105f700d..533a047d07a2 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops simplefb_ops = {
+static const struct fb_ops simplefb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= simplefb_destroy,
 	.fb_setcolreg	= simplefb_setcolreg,
diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
index b443a8ed4600..ac140962b1bf 100644
--- a/drivers/video/fbdev/sis/sis_main.c
+++ b/drivers/video/fbdev/sis/sis_main.c
@@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
 
 /* ----------------  fb_ops structures ----------------- */
 
-static struct fb_ops sisfb_ops = {
+static const struct fb_ops sisfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= sisfb_open,
 	.fb_release	= sisfb_release,
diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c
index 812a36cb60c3..bcacfb6934fa 100644
--- a/drivers/video/fbdev/skeletonfb.c
+++ b/drivers/video/fbdev/skeletonfb.c
@@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info)
      *  Frame buffer operations
      */
 
-static struct fb_ops xxxfb_ops = {
+static const struct fb_ops xxxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= xxxfb_open,
 	.fb_read	= xxxfb_read,
diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c
index 207d0add684b..6a1b4a853d9e 100644
--- a/drivers/video/fbdev/sm712fb.c
+++ b/drivers/video/fbdev/sm712fb.c
@@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops smtcfb_ops = {
+static const struct fb_ops smtcfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_check_var = smtc_check_var,
 	.fb_set_par   = smtc_set_par,
diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
index e362d7da87fc..bfac3ee4a642 100644
--- a/drivers/video/fbdev/smscufx.c
+++ b/drivers/video/fbdev/smscufx.c
@@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ufx_ops = {
+static const struct fb_ops ufx_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = ufx_ops_write,
diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
index 78ca7ffc40c2..142535267fec 100644
--- a/drivers/video/fbdev/ssd1307fb.c
+++ b/drivers/video/fbdev/ssd1307fb.c
@@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima
 	ssd1307fb_update_display(par);
 }
 
-static struct fb_ops ssd1307fb_ops = {
+static const struct fb_ops ssd1307fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= fb_sys_read,
 	.fb_write	= ssd1307fb_write,
diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c
index 4e22ae383c87..82e707a48e4e 100644
--- a/drivers/video/fbdev/sstfb.c
+++ b/drivers/video/fbdev/sstfb.c
@@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options)
 }
 
 
-static struct fb_ops sstfb_ops = {
+static const struct fb_ops sstfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= sstfb_check_var,
 	.fb_set_par	= sstfb_set_par,
diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c
index 9e88e3f594c2..5400ab79fbbd 100644
--- a/drivers/video/fbdev/stifb.c
+++ b/drivers/video/fbdev/stifb.c
@@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb)
 
 /* ------------ Interfaces to hardware functions ------------ */
 
-static struct fb_ops stifb_ops = {
+static const struct fb_ops stifb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_setcolreg	= stifb_setcolreg,
 	.fb_blank	= stifb_blank,
diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c
index 784c9bd5d502..15b079505a00 100644
--- a/drivers/video/fbdev/sunxvr1000.c
+++ b/drivers/video/fbdev/sunxvr1000.c
@@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno,
 	return 0;
 }
 
-static struct fb_ops gfb_ops = {
+static const struct fb_ops gfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= gfb_setcolreg,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c
index 31683e5a8b79..1d3bacd9d5ac 100644
--- a/drivers/video/fbdev/sunxvr2500.c
+++ b/drivers/video/fbdev/sunxvr2500.c
@@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno,
 	return 0;
 }
 
-static struct fb_ops s3d_ops = {
+static const struct fb_ops s3d_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= s3d_setcolreg,
 	.fb_fillrect		= cfb_fillrect,
diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c
index d392976126a6..9daf17b11106 100644
--- a/drivers/video/fbdev/sunxvr500.c
+++ b/drivers/video/fbdev/sunxvr500.c
@@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area)
 	spin_unlock_irqrestore(&ep->lock, flags);
 }
 
-static struct fb_ops e3d_ops = {
+static const struct fb_ops e3d_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= e3d_setcolreg,
 	.fb_fillrect		= e3d_fillrect,
diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
index 7897f86fb23e..34b2e5b6e84a 100644
--- a/drivers/video/fbdev/tcx.c
+++ b/drivers/video/fbdev/tcx.c
@@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
  *  Frame buffer operations
  */
 
-static struct fb_ops tcx_ops = {
+static const struct fb_ops tcx_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= tcx_setcolreg,
 	.fb_blank		= tcx_blank,
diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c
index fdbb1ea66e6c..0349cf69652f 100644
--- a/drivers/video/fbdev/tdfxfb.c
+++ b/drivers/video/fbdev/tdfxfb.c
@@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	return 0;
 }
 
-static struct fb_ops tdfxfb_ops = {
+static const struct fb_ops tdfxfb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_check_var	= tdfxfb_check_var,
 	.fb_set_par	= tdfxfb_set_par,
diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c
index 286b2371c7dd..7cd262858241 100644
--- a/drivers/video/fbdev/tgafb.c
+++ b/drivers/video/fbdev/tgafb.c
@@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver;
  *  Frame buffer operations
  */
 
-static struct fb_ops tgafb_ops = {
+static const struct fb_ops tgafb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_check_var		= tgafb_check_var,
 	.fb_set_par		= tgafb_set_par,
diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c
index 4f2fcea10d2b..50111966c981 100644
--- a/drivers/video/fbdev/tmiofb.c
+++ b/drivers/video/fbdev/tmiofb.c
@@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops tmiofb_ops = {
+static const struct fb_ops tmiofb_ops = {
 	.owner		= THIS_MODULE,
 
 	.fb_ioctl	= tmiofb_ioctl,
diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c
index da74bf6c5996..715509917eaa 100644
--- a/drivers/video/fbdev/tridentfb.c
+++ b/drivers/video/fbdev/tridentfb.c
@@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info)
 	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
 }
 
-static struct fb_ops tridentfb_ops = {
+static const struct fb_ops tridentfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_setcolreg = tridentfb_setcolreg,
 	.fb_pan_display = tridentfb_pan_display,
diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
index e04fde9c1fcd..ca8d7343aaa1 100644
--- a/drivers/video/fbdev/valkyriefb.c
+++ b/drivers/video/fbdev/valkyriefb.c
@@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p);
 static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix);
 static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p);
 
-static struct fb_ops valkyriefb_ops = {
+static const struct fb_ops valkyriefb_ops = {
 	.owner =	THIS_MODULE,
 	.fb_check_var =	valkyriefb_check_var,
 	.fb_set_par =	valkyriefb_set_par,
diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
index 54127905bfe7..95d3c59867d0 100644
--- a/drivers/video/fbdev/vfb.c
+++ b/drivers/video/fbdev/vfb.c
@@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
 static int vfb_mmap(struct fb_info *info,
 		    struct vm_area_struct *vma);
 
-static struct fb_ops vfb_ops = {
+static const struct fb_ops vfb_ops = {
 	.fb_read        = fb_sys_read,
 	.fb_write       = fb_sys_write,
 	.fb_check_var	= vfb_check_var,
diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c
index 2c6a576ed84c..a20eeb8308ff 100644
--- a/drivers/video/fbdev/vga16fb.c
+++ b/drivers/video/fbdev/vga16fb.c
@@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info)
 	framebuffer_release(info);
 }
 
-static struct fb_ops vga16fb_ops = {
+static const struct fb_ops vga16fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open        = vga16fb_open,
 	.fb_release     = vga16fb_release,
diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c
index be8d9702cbb2..f744479dc7df 100644
--- a/drivers/video/fbdev/vt8500lcdfb.c
+++ b/drivers/video/fbdev/vt8500lcdfb.c
@@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vt8500lcd_ops = {
+static const struct fb_ops vt8500lcd_ops = {
 	.owner		= THIS_MODULE,
 	.fb_set_par	= vt8500lcd_set_par,
 	.fb_setcolreg	= vt8500lcd_setcolreg,
diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c
index c339a8fbad81..7b3eef1b893f 100644
--- a/drivers/video/fbdev/vt8623fb.c
+++ b/drivers/video/fbdev/vt8623fb.c
@@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i
 
 /* Frame buffer operations */
 
-static struct fb_ops vt8623fb_ops = {
+static const struct fb_ops vt8623fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_open	= vt8623fb_open,
 	.fb_release	= vt8623fb_release,
diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
index 3be07807edcd..fe628ec20149 100644
--- a/drivers/video/fbdev/w100fb.c
+++ b/drivers/video/fbdev/w100fb.c
@@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info)
 /*
  *  Frame buffer operations
  */
-static struct fb_ops w100fb_ops = {
+static const struct fb_ops w100fb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_check_var = w100fb_check_var,
 	.fb_set_par   = w100fb_set_par,
diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c
index 17c780315ca5..b656eff58c23 100644
--- a/drivers/video/fbdev/wm8505fb.c
+++ b/drivers/video/fbdev/wm8505fb.c
@@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops wm8505fb_ops = {
+static const struct fb_ops wm8505fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_set_par	= wm8505fb_set_par,
 	.fb_setcolreg	= wm8505fb_setcolreg,
diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
index a3d6b6db221b..00307b8693bf 100644
--- a/drivers/video/fbdev/xen-fbfront.c
+++ b/drivers/video/fbdev/xen-fbfront.c
@@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops xenfb_fb_ops = {
+static const struct fb_ops xenfb_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_read	= fb_sys_read,
 	.fb_write	= xenfb_write,
diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c
index 8628829b470d..ca4ff658cad0 100644
--- a/drivers/video/fbdev/xilinxfb.c
+++ b/drivers/video/fbdev/xilinxfb.c
@@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi)
 	return 0; /* success */
 }
 
-static struct fb_ops xilinxfb_ops = {
+static const struct fb_ops xilinxfb_ops = {
 	.owner			= THIS_MODULE,
 	.fb_setcolreg		= xilinx_fb_setcolreg,
 	.fb_blank		= xilinx_fb_blank,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 09/12] HID: picoLCD: constify fb ops
  2019-12-03 16:38 ` Jani Nikula
  (?)
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: intel-gfx, jani.nikula, Bruno Prémont, linux-input, Daniel Vetter

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: linux-input@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/hid/hid-picolcd_fb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
index e162a668fb7e..a549c42e8c90 100644
--- a/drivers/hid/hid-picolcd_fb.c
+++ b/drivers/hid/hid-picolcd_fb.c
@@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
 	return 0;
 }
 
-/* Note this can't be const because of struct fb_info definition */
-static struct fb_ops picolcdfb_ops = {
+static const struct fb_ops picolcdfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_destroy   = picolcd_fb_destroy,
 	.fb_read      = fb_sys_read,
-- 
2.20.1


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

* [PATCH v3 09/12] HID: picoLCD: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Daniel Vetter, intel-gfx, Bruno Prémont, linux-input

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: linux-input@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/hid/hid-picolcd_fb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
index e162a668fb7e..a549c42e8c90 100644
--- a/drivers/hid/hid-picolcd_fb.c
+++ b/drivers/hid/hid-picolcd_fb.c
@@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
 	return 0;
 }
 
-/* Note this can't be const because of struct fb_info definition */
-static struct fb_ops picolcdfb_ops = {
+static const struct fb_ops picolcdfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_destroy   = picolcd_fb_destroy,
 	.fb_read      = fb_sys_read,
-- 
2.20.1

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

* [PATCH v3 09/12] HID: picoLCD: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Daniel Vetter, intel-gfx, Bruno Prémont, linux-input

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: linux-input@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/hid/hid-picolcd_fb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
index e162a668fb7e..a549c42e8c90 100644
--- a/drivers/hid/hid-picolcd_fb.c
+++ b/drivers/hid/hid-picolcd_fb.c
@@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
 	return 0;
 }
 
-/* Note this can't be const because of struct fb_info definition */
-static struct fb_ops picolcdfb_ops = {
+static const struct fb_ops picolcdfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_destroy   = picolcd_fb_destroy,
 	.fb_read      = fb_sys_read,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 09/12] HID: picoLCD: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Daniel Vetter, intel-gfx, Bruno Prémont, linux-input

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Bruno Prémont <bonbons@linux-vserver.org>
Cc: linux-input@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/hid/hid-picolcd_fb.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
index e162a668fb7e..a549c42e8c90 100644
--- a/drivers/hid/hid-picolcd_fb.c
+++ b/drivers/hid/hid-picolcd_fb.c
@@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
 	return 0;
 }
 
-/* Note this can't be const because of struct fb_info definition */
-static struct fb_ops picolcdfb_ops = {
+static const struct fb_ops picolcdfb_ops = {
 	.owner        = THIS_MODULE,
 	.fb_destroy   = picolcd_fb_destroy,
 	.fb_read      = fb_sys_read,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 10/12] media: constify fb ops across all drivers
  2019-12-03 16:38 ` Jani Nikula
  (?)
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: intel-gfx, jani.nikula, Hans Verkuil, Andy Walls, linux-media,
	ivtv-devel, Daniel Vetter

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Remove the redundant fbops assignments while at it.

v2:
- actually add const in vivid
- fix typo (Christophe de Dinechin)

Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: linux-media@vger.kernel.org
Cc: ivtv-devel@ivtvdriver.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
 drivers/media/platform/vivid/vivid-osd.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 95a56cce9b65..f2922b554b09 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ivtvfb_ops = {
+static const struct fb_ops ivtvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_write       = ivtvfb_write,
 	.fb_check_var   = ivtvfb_check_var,
@@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
 
 	oi->ivtvfb_info.node = -1;
 	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
-	oi->ivtvfb_info.fbops = &ivtvfb_ops;
 	oi->ivtvfb_info.par = itv;
 	oi->ivtvfb_info.var = oi->ivtvfb_defined;
 	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
index f2e789bdf4a6..fbaec8acc161 100644
--- a/drivers/media/platform/vivid/vivid-osd.c
+++ b/drivers/media/platform/vivid/vivid-osd.c
@@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vivid_fb_ops = {
+static const struct fb_ops vivid_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var   = vivid_fb_check_var,
 	.fb_set_par     = vivid_fb_set_par,
@@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
 
 	dev->fb_info.node = -1;
 	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
-	dev->fb_info.fbops = &vivid_fb_ops;
 	dev->fb_info.par = dev;
 	dev->fb_info.var = dev->fb_defined;
 	dev->fb_info.fix = dev->fb_fix;
-- 
2.20.1


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

* [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Andy Walls, jani.nikula, Daniel Vetter, intel-gfx, ivtv-devel,
	Hans Verkuil, linux-media

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Remove the redundant fbops assignments while at it.

v2:
- actually add const in vivid
- fix typo (Christophe de Dinechin)

Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: linux-media@vger.kernel.org
Cc: ivtv-devel@ivtvdriver.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
 drivers/media/platform/vivid/vivid-osd.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 95a56cce9b65..f2922b554b09 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ivtvfb_ops = {
+static const struct fb_ops ivtvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_write       = ivtvfb_write,
 	.fb_check_var   = ivtvfb_check_var,
@@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
 
 	oi->ivtvfb_info.node = -1;
 	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
-	oi->ivtvfb_info.fbops = &ivtvfb_ops;
 	oi->ivtvfb_info.par = itv;
 	oi->ivtvfb_info.var = oi->ivtvfb_defined;
 	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
index f2e789bdf4a6..fbaec8acc161 100644
--- a/drivers/media/platform/vivid/vivid-osd.c
+++ b/drivers/media/platform/vivid/vivid-osd.c
@@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vivid_fb_ops = {
+static const struct fb_ops vivid_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var   = vivid_fb_check_var,
 	.fb_set_par     = vivid_fb_set_par,
@@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
 
 	dev->fb_info.node = -1;
 	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
-	dev->fb_info.fbops = &vivid_fb_ops;
 	dev->fb_info.par = dev;
 	dev->fb_info.var = dev->fb_defined;
 	dev->fb_info.fix = dev->fb_fix;
-- 
2.20.1

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

* [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Andy Walls, jani.nikula, Daniel Vetter, intel-gfx, ivtv-devel,
	Hans Verkuil, linux-media

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Remove the redundant fbops assignments while at it.

v2:
- actually add const in vivid
- fix typo (Christophe de Dinechin)

Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: linux-media@vger.kernel.org
Cc: ivtv-devel@ivtvdriver.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
 drivers/media/platform/vivid/vivid-osd.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 95a56cce9b65..f2922b554b09 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ivtvfb_ops = {
+static const struct fb_ops ivtvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_write       = ivtvfb_write,
 	.fb_check_var   = ivtvfb_check_var,
@@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
 
 	oi->ivtvfb_info.node = -1;
 	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
-	oi->ivtvfb_info.fbops = &ivtvfb_ops;
 	oi->ivtvfb_info.par = itv;
 	oi->ivtvfb_info.var = oi->ivtvfb_defined;
 	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
index f2e789bdf4a6..fbaec8acc161 100644
--- a/drivers/media/platform/vivid/vivid-osd.c
+++ b/drivers/media/platform/vivid/vivid-osd.c
@@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vivid_fb_ops = {
+static const struct fb_ops vivid_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var   = vivid_fb_check_var,
 	.fb_set_par     = vivid_fb_set_par,
@@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
 
 	dev->fb_info.node = -1;
 	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
-	dev->fb_info.fbops = &vivid_fb_ops;
 	dev->fb_info.par = dev;
 	dev->fb_info.var = dev->fb_defined;
 	dev->fb_info.fix = dev->fb_fix;
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Andy Walls, jani.nikula, Daniel Vetter, intel-gfx, ivtv-devel,
	Hans Verkuil, linux-media

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Remove the redundant fbops assignments while at it.

v2:
- actually add const in vivid
- fix typo (Christophe de Dinechin)

Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Andy Walls <awalls@md.metrocast.net>
Cc: linux-media@vger.kernel.org
Cc: ivtv-devel@ivtvdriver.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
 drivers/media/platform/vivid/vivid-osd.c | 3 +--
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
index 95a56cce9b65..f2922b554b09 100644
--- a/drivers/media/pci/ivtv/ivtvfb.c
+++ b/drivers/media/pci/ivtv/ivtvfb.c
@@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops ivtvfb_ops = {
+static const struct fb_ops ivtvfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_write       = ivtvfb_write,
 	.fb_check_var   = ivtvfb_check_var,
@@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
 
 	oi->ivtvfb_info.node = -1;
 	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
-	oi->ivtvfb_info.fbops = &ivtvfb_ops;
 	oi->ivtvfb_info.par = itv;
 	oi->ivtvfb_info.var = oi->ivtvfb_defined;
 	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
index f2e789bdf4a6..fbaec8acc161 100644
--- a/drivers/media/platform/vivid/vivid-osd.c
+++ b/drivers/media/platform/vivid/vivid-osd.c
@@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
 	return 0;
 }
 
-static struct fb_ops vivid_fb_ops = {
+static const struct fb_ops vivid_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_check_var   = vivid_fb_check_var,
 	.fb_set_par     = vivid_fb_set_par,
@@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
 
 	dev->fb_info.node = -1;
 	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
-	dev->fb_info.fbops = &vivid_fb_ops;
 	dev->fb_info.par = dev;
 	dev->fb_info.var = dev->fb_defined;
 	dev->fb_info.fix = dev->fb_fix;
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
  2019-12-03 16:38 ` Jani Nikula
  (?)
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: kvm@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 samples/vfio-mdev/mdpy-fb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
index 2719bb259653..21dbf63d6e41 100644
--- a/samples/vfio-mdev/mdpy-fb.c
+++ b/samples/vfio-mdev/mdpy-fb.c
@@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops mdpy_fb_ops = {
+static const struct fb_ops mdpy_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= mdpy_fb_destroy,
 	.fb_setcolreg	= mdpy_fb_setcolreg,
-- 
2.20.1

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

* [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: intel-gfx, jani.nikula, Kirti Wankhede, kvm, Daniel Vetter

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: kvm@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 samples/vfio-mdev/mdpy-fb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
index 2719bb259653..21dbf63d6e41 100644
--- a/samples/vfio-mdev/mdpy-fb.c
+++ b/samples/vfio-mdev/mdpy-fb.c
@@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops mdpy_fb_ops = {
+static const struct fb_ops mdpy_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= mdpy_fb_destroy,
 	.fb_setcolreg	= mdpy_fb_setcolreg,
-- 
2.20.1


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

* [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: kvm@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 samples/vfio-mdev/mdpy-fb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
index 2719bb259653..21dbf63d6e41 100644
--- a/samples/vfio-mdev/mdpy-fb.c
+++ b/samples/vfio-mdev/mdpy-fb.c
@@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops mdpy_fb_ops = {
+static const struct fb_ops mdpy_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= mdpy_fb_destroy,
 	.fb_setcolreg	= mdpy_fb_setcolreg,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

v2: fix	typo (Christophe de Dinechin)

Cc: Kirti Wankhede <kwankhede@nvidia.com>
Cc: kvm@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 samples/vfio-mdev/mdpy-fb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
index 2719bb259653..21dbf63d6e41 100644
--- a/samples/vfio-mdev/mdpy-fb.c
+++ b/samples/vfio-mdev/mdpy-fb.c
@@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
 		iounmap(info->screen_base);
 }
 
-static struct fb_ops mdpy_fb_ops = {
+static const struct fb_ops mdpy_fb_ops = {
 	.owner		= THIS_MODULE,
 	.fb_destroy	= mdpy_fb_destroy,
 	.fb_setcolreg	= mdpy_fb_setcolreg,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH v3 12/12] auxdisplay: constify fb ops
  2019-12-03 16:38 ` Jani Nikula
  (?)
@ 2019-12-03 16:38   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Miguel Ojeda Sandonis, intel-gfx, Daniel Vetter,
	Robin van der Gracht

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Robin van der Gracht <robin@protonic.nl>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Acked-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/auxdisplay/cfag12864bfb.c | 2 +-
 drivers/auxdisplay/ht16k33.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
index 4074886b7bc8..2002291ab338 100644
--- a/drivers/auxdisplay/cfag12864bfb.c
+++ b/drivers/auxdisplay/cfag12864bfb.c
@@ -57,7 +57,7 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return vm_map_pages_zero(vma, &pages, 1);
 }
 
-static struct fb_ops cfag12864bfb_ops = {
+static const struct fb_ops cfag12864bfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
index a2fcde582e2a..d951d54b26f5 100644
--- a/drivers/auxdisplay/ht16k33.c
+++ b/drivers/auxdisplay/ht16k33.c
@@ -228,7 +228,7 @@ static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return vm_map_pages_zero(vma, &pages, 1);
 }
 
-static struct fb_ops ht16k33_fb_ops = {
+static const struct fb_ops ht16k33_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
-- 
2.20.1

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

* [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Miguel Ojeda Sandonis, intel-gfx, Daniel Vetter,
	Robin van der Gracht

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Robin van der Gracht <robin@protonic.nl>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Acked-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/auxdisplay/cfag12864bfb.c | 2 +-
 drivers/auxdisplay/ht16k33.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
index 4074886b7bc8..2002291ab338 100644
--- a/drivers/auxdisplay/cfag12864bfb.c
+++ b/drivers/auxdisplay/cfag12864bfb.c
@@ -57,7 +57,7 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return vm_map_pages_zero(vma, &pages, 1);
 }
 
-static struct fb_ops cfag12864bfb_ops = {
+static const struct fb_ops cfag12864bfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
index a2fcde582e2a..d951d54b26f5 100644
--- a/drivers/auxdisplay/ht16k33.c
+++ b/drivers/auxdisplay/ht16k33.c
@@ -228,7 +228,7 @@ static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return vm_map_pages_zero(vma, &pages, 1);
 }
 
-static struct fb_ops ht16k33_fb_ops = {
+static const struct fb_ops ht16k33_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
-- 
2.20.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* [Intel-gfx] [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-03 16:38   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:38 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: jani.nikula, Miguel Ojeda Sandonis, intel-gfx, Daniel Vetter,
	Robin van der Gracht

Now that the fbops member of struct fb_info is const, we can start
making the ops const as well.

Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Robin van der Gracht <robin@protonic.nl>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Acked-by: Robin van der Gracht <robin@protonic.nl>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
---
 drivers/auxdisplay/cfag12864bfb.c | 2 +-
 drivers/auxdisplay/ht16k33.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
index 4074886b7bc8..2002291ab338 100644
--- a/drivers/auxdisplay/cfag12864bfb.c
+++ b/drivers/auxdisplay/cfag12864bfb.c
@@ -57,7 +57,7 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return vm_map_pages_zero(vma, &pages, 1);
 }
 
-static struct fb_ops cfag12864bfb_ops = {
+static const struct fb_ops cfag12864bfb_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
index a2fcde582e2a..d951d54b26f5 100644
--- a/drivers/auxdisplay/ht16k33.c
+++ b/drivers/auxdisplay/ht16k33.c
@@ -228,7 +228,7 @@ static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
 	return vm_map_pages_zero(vma, &pages, 1);
 }
 
-static struct fb_ops ht16k33_fb_ops = {
+static const struct fb_ops ht16k33_fb_ops = {
 	.owner = THIS_MODULE,
 	.fb_read = fb_sys_read,
 	.fb_write = fb_sys_write,
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
  2019-12-03 16:38 ` Jani Nikula
                     ` (2 preceding siblings ...)
  (?)
@ 2019-12-03 16:42   ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:42 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, linux-omap,
	Robin van der Gracht, intel-gfx, Bernie Thompson, Kirti Wankhede,
	Hans Verkuil, Miguel Ojeda Sandonis, Bruno Prémont,
	Noralf Trønnes, ivtv-devel, linux-input, linux-media,
	Jaya Kumar

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> This is v3 of https://patchwork.freedesktop.org/series/70198/.
>
> 0day reported some build failures, and I needed to add patches 1-5 and 7

Should be, patches 1-4 and 7.

> to address them. Patch 8 was amended accordingly (dropped some consts),
> but the other patches remain the same from v2, except the ones I merged
> already.
>
> BR,
> Jani.
>
>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: Bernie Thompson <bernie@plugable.com>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Jaya Kumar <jayalk@intworks.biz>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Noralf Trønnes <noralf@tronnes.org>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Cc: Steve Glendinning <steve.glendinning@shawell.net>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: ivtv-devel@ivtvdriver.org
> Cc: kvm@vger.kernel.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: linux-omap@vger.kernel.org
>
> Jani Nikula (12):
>   video: fbdev: atyfb: modify the static fb_ops directly
>   video: fbdev: mb862xx: modify the static fb_ops directly
>   video: fbdev: nvidia: modify the static fb_ops directly
>   video: fbdev: uvesafb: modify the static fb_ops directly
>   video: fbdev: make fbops member of struct fb_info a const pointer
>   drm: constify fb ops across all drivers
>   video: fbdev: intelfb: use const pointer for fb_ops
>   video: constify fb ops across all drivers
>   HID: picoLCD: constify fb ops
>   media: constify fb ops across all drivers
>   samples: vfio-mdev: constify fb ops
>   auxdisplay: constify fb ops
>
>  drivers/auxdisplay/cfag12864bfb.c             |  2 +-
>  drivers/auxdisplay/ht16k33.c                  |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
>  drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
>  drivers/gpu/drm/drm_fb_helper.c               |  2 +-
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
>  .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
>  drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
>  drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
>  drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/tegra/fb.c                    |  2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
>  drivers/hid/hid-picolcd_fb.c                  |  3 +--
>  drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
>  drivers/media/platform/vivid/vivid-osd.c      |  3 +--
>  drivers/video/fbdev/68328fb.c                 |  2 +-
>  drivers/video/fbdev/acornfb.c                 |  2 +-
>  drivers/video/fbdev/amba-clcd.c               |  2 +-
>  drivers/video/fbdev/amifb.c                   |  2 +-
>  drivers/video/fbdev/arcfb.c                   |  2 +-
>  drivers/video/fbdev/arkfb.c                   |  2 +-
>  drivers/video/fbdev/asiliantfb.c              |  2 +-
>  drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
>  drivers/video/fbdev/aty/aty128fb.c            |  2 +-
>  drivers/video/fbdev/aty/atyfb.h               |  2 +-
>  drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
>  drivers/video/fbdev/aty/radeon_base.c         |  2 +-
>  drivers/video/fbdev/au1100fb.c                |  2 +-
>  drivers/video/fbdev/au1200fb.c                |  2 +-
>  drivers/video/fbdev/broadsheetfb.c            |  2 +-
>  drivers/video/fbdev/bw2.c                     |  2 +-
>  drivers/video/fbdev/carminefb.c               |  2 +-
>  drivers/video/fbdev/cg14.c                    |  2 +-
>  drivers/video/fbdev/cg3.c                     |  2 +-
>  drivers/video/fbdev/cg6.c                     |  2 +-
>  drivers/video/fbdev/chipsfb.c                 |  2 +-
>  drivers/video/fbdev/cirrusfb.c                |  2 +-
>  drivers/video/fbdev/clps711x-fb.c             |  2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
>  drivers/video/fbdev/controlfb.c               |  2 +-
>  drivers/video/fbdev/cyber2000fb.c             |  2 +-
>  drivers/video/fbdev/da8xx-fb.c                |  2 +-
>  drivers/video/fbdev/dnfb.c                    |  2 +-
>  drivers/video/fbdev/efifb.c                   |  2 +-
>  drivers/video/fbdev/ep93xx-fb.c               |  2 +-
>  drivers/video/fbdev/fb-puv3.c                 |  2 +-
>  drivers/video/fbdev/ffb.c                     |  2 +-
>  drivers/video/fbdev/fm2fb.c                   |  2 +-
>  drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
>  drivers/video/fbdev/g364fb.c                  |  2 +-
>  drivers/video/fbdev/gbefb.c                   |  2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
>  drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
>  drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
>  drivers/video/fbdev/goldfishfb.c              |  2 +-
>  drivers/video/fbdev/grvga.c                   |  2 +-
>  drivers/video/fbdev/gxt4500.c                 |  2 +-
>  drivers/video/fbdev/hecubafb.c                |  2 +-
>  drivers/video/fbdev/hgafb.c                   |  2 +-
>  drivers/video/fbdev/hitfb.c                   |  2 +-
>  drivers/video/fbdev/hpfb.c                    |  2 +-
>  drivers/video/fbdev/hyperv_fb.c               |  2 +-
>  drivers/video/fbdev/i740fb.c                  |  2 +-
>  drivers/video/fbdev/imsttfb.c                 |  2 +-
>  drivers/video/fbdev/imxfb.c                   |  2 +-
>  drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
>  drivers/video/fbdev/kyro/fbdev.c              |  2 +-
>  drivers/video/fbdev/leo.c                     |  2 +-
>  drivers/video/fbdev/macfb.c                   |  2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
>  drivers/video/fbdev/maxinefb.c                |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
>  drivers/video/fbdev/metronomefb.c             |  2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
>  drivers/video/fbdev/mx3fb.c                   |  5 +++--
>  drivers/video/fbdev/neofb.c                   |  2 +-
>  drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
>  drivers/video/fbdev/ocfb.c                    |  2 +-
>  drivers/video/fbdev/offb.c                    |  2 +-
>  .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
>  drivers/video/fbdev/p9100.c                   |  2 +-
>  drivers/video/fbdev/platinumfb.c              |  2 +-
>  drivers/video/fbdev/pm2fb.c                   |  2 +-
>  drivers/video/fbdev/pm3fb.c                   |  2 +-
>  drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
>  drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
>  drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
>  drivers/video/fbdev/ps3fb.c                   |  2 +-
>  drivers/video/fbdev/pvr2fb.c                  |  2 +-
>  drivers/video/fbdev/pxa168fb.c                |  2 +-
>  drivers/video/fbdev/pxafb.c                   |  4 ++--
>  drivers/video/fbdev/q40fb.c                   |  2 +-
>  drivers/video/fbdev/riva/fbdev.c              |  2 +-
>  drivers/video/fbdev/s3c-fb.c                  |  2 +-
>  drivers/video/fbdev/s3c2410fb.c               |  2 +-
>  drivers/video/fbdev/s3fb.c                    |  2 +-
>  drivers/video/fbdev/sa1100fb.c                |  2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
>  drivers/video/fbdev/sh7760fb.c                |  2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
>  drivers/video/fbdev/simplefb.c                |  2 +-
>  drivers/video/fbdev/sis/sis_main.c            |  2 +-
>  drivers/video/fbdev/skeletonfb.c              |  2 +-
>  drivers/video/fbdev/sm712fb.c                 |  2 +-
>  drivers/video/fbdev/smscufx.c                 |  2 +-
>  drivers/video/fbdev/ssd1307fb.c               |  2 +-
>  drivers/video/fbdev/sstfb.c                   |  2 +-
>  drivers/video/fbdev/stifb.c                   |  2 +-
>  drivers/video/fbdev/sunxvr1000.c              |  2 +-
>  drivers/video/fbdev/sunxvr2500.c              |  2 +-
>  drivers/video/fbdev/sunxvr500.c               |  2 +-
>  drivers/video/fbdev/tcx.c                     |  2 +-
>  drivers/video/fbdev/tdfxfb.c                  |  2 +-
>  drivers/video/fbdev/tgafb.c                   |  2 +-
>  drivers/video/fbdev/tmiofb.c                  |  2 +-
>  drivers/video/fbdev/tridentfb.c               |  2 +-
>  drivers/video/fbdev/uvesafb.c                 |  4 ++--
>  drivers/video/fbdev/valkyriefb.c              |  2 +-
>  drivers/video/fbdev/vfb.c                     |  2 +-
>  drivers/video/fbdev/vga16fb.c                 |  2 +-
>  drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
>  drivers/video/fbdev/vt8623fb.c                |  2 +-
>  drivers/video/fbdev/w100fb.c                  |  2 +-
>  drivers/video/fbdev/wm8505fb.c                |  2 +-
>  drivers/video/fbdev/xen-fbfront.c             |  2 +-
>  drivers/video/fbdev/xilinxfb.c                |  2 +-
>  include/linux/fb.h                            |  2 +-
>  samples/vfio-mdev/mdpy-fb.c                   |  2 +-
>  136 files changed, 163 insertions(+), 162 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:42   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:42 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, Robin van der Gracht,
	intel-gfx, Bernie Thompson, ivtv-devel, Hans Verkuil,
	Miguel Ojeda Sandonis, Kirti Wankhede, linux-input, linux-omap,
	Jaya Kumar, Bruno Prémont, linux-media

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> This is v3 of https://patchwork.freedesktop.org/series/70198/.
>
> 0day reported some build failures, and I needed to add patches 1-5 and 7

Should be, patches 1-4 and 7.

> to address them. Patch 8 was amended accordingly (dropped some consts),
> but the other patches remain the same from v2, except the ones I merged
> already.
>
> BR,
> Jani.
>
>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: Bernie Thompson <bernie@plugable.com>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Jaya Kumar <jayalk@intworks.biz>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Noralf Trønnes <noralf@tronnes.org>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Cc: Steve Glendinning <steve.glendinning@shawell.net>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: ivtv-devel@ivtvdriver.org
> Cc: kvm@vger.kernel.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: linux-omap@vger.kernel.org
>
> Jani Nikula (12):
>   video: fbdev: atyfb: modify the static fb_ops directly
>   video: fbdev: mb862xx: modify the static fb_ops directly
>   video: fbdev: nvidia: modify the static fb_ops directly
>   video: fbdev: uvesafb: modify the static fb_ops directly
>   video: fbdev: make fbops member of struct fb_info a const pointer
>   drm: constify fb ops across all drivers
>   video: fbdev: intelfb: use const pointer for fb_ops
>   video: constify fb ops across all drivers
>   HID: picoLCD: constify fb ops
>   media: constify fb ops across all drivers
>   samples: vfio-mdev: constify fb ops
>   auxdisplay: constify fb ops
>
>  drivers/auxdisplay/cfag12864bfb.c             |  2 +-
>  drivers/auxdisplay/ht16k33.c                  |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
>  drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
>  drivers/gpu/drm/drm_fb_helper.c               |  2 +-
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
>  .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
>  drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
>  drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
>  drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/tegra/fb.c                    |  2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
>  drivers/hid/hid-picolcd_fb.c                  |  3 +--
>  drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
>  drivers/media/platform/vivid/vivid-osd.c      |  3 +--
>  drivers/video/fbdev/68328fb.c                 |  2 +-
>  drivers/video/fbdev/acornfb.c                 |  2 +-
>  drivers/video/fbdev/amba-clcd.c               |  2 +-
>  drivers/video/fbdev/amifb.c                   |  2 +-
>  drivers/video/fbdev/arcfb.c                   |  2 +-
>  drivers/video/fbdev/arkfb.c                   |  2 +-
>  drivers/video/fbdev/asiliantfb.c              |  2 +-
>  drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
>  drivers/video/fbdev/aty/aty128fb.c            |  2 +-
>  drivers/video/fbdev/aty/atyfb.h               |  2 +-
>  drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
>  drivers/video/fbdev/aty/radeon_base.c         |  2 +-
>  drivers/video/fbdev/au1100fb.c                |  2 +-
>  drivers/video/fbdev/au1200fb.c                |  2 +-
>  drivers/video/fbdev/broadsheetfb.c            |  2 +-
>  drivers/video/fbdev/bw2.c                     |  2 +-
>  drivers/video/fbdev/carminefb.c               |  2 +-
>  drivers/video/fbdev/cg14.c                    |  2 +-
>  drivers/video/fbdev/cg3.c                     |  2 +-
>  drivers/video/fbdev/cg6.c                     |  2 +-
>  drivers/video/fbdev/chipsfb.c                 |  2 +-
>  drivers/video/fbdev/cirrusfb.c                |  2 +-
>  drivers/video/fbdev/clps711x-fb.c             |  2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
>  drivers/video/fbdev/controlfb.c               |  2 +-
>  drivers/video/fbdev/cyber2000fb.c             |  2 +-
>  drivers/video/fbdev/da8xx-fb.c                |  2 +-
>  drivers/video/fbdev/dnfb.c                    |  2 +-
>  drivers/video/fbdev/efifb.c                   |  2 +-
>  drivers/video/fbdev/ep93xx-fb.c               |  2 +-
>  drivers/video/fbdev/fb-puv3.c                 |  2 +-
>  drivers/video/fbdev/ffb.c                     |  2 +-
>  drivers/video/fbdev/fm2fb.c                   |  2 +-
>  drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
>  drivers/video/fbdev/g364fb.c                  |  2 +-
>  drivers/video/fbdev/gbefb.c                   |  2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
>  drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
>  drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
>  drivers/video/fbdev/goldfishfb.c              |  2 +-
>  drivers/video/fbdev/grvga.c                   |  2 +-
>  drivers/video/fbdev/gxt4500.c                 |  2 +-
>  drivers/video/fbdev/hecubafb.c                |  2 +-
>  drivers/video/fbdev/hgafb.c                   |  2 +-
>  drivers/video/fbdev/hitfb.c                   |  2 +-
>  drivers/video/fbdev/hpfb.c                    |  2 +-
>  drivers/video/fbdev/hyperv_fb.c               |  2 +-
>  drivers/video/fbdev/i740fb.c                  |  2 +-
>  drivers/video/fbdev/imsttfb.c                 |  2 +-
>  drivers/video/fbdev/imxfb.c                   |  2 +-
>  drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
>  drivers/video/fbdev/kyro/fbdev.c              |  2 +-
>  drivers/video/fbdev/leo.c                     |  2 +-
>  drivers/video/fbdev/macfb.c                   |  2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
>  drivers/video/fbdev/maxinefb.c                |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
>  drivers/video/fbdev/metronomefb.c             |  2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
>  drivers/video/fbdev/mx3fb.c                   |  5 +++--
>  drivers/video/fbdev/neofb.c                   |  2 +-
>  drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
>  drivers/video/fbdev/ocfb.c                    |  2 +-
>  drivers/video/fbdev/offb.c                    |  2 +-
>  .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
>  drivers/video/fbdev/p9100.c                   |  2 +-
>  drivers/video/fbdev/platinumfb.c              |  2 +-
>  drivers/video/fbdev/pm2fb.c                   |  2 +-
>  drivers/video/fbdev/pm3fb.c                   |  2 +-
>  drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
>  drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
>  drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
>  drivers/video/fbdev/ps3fb.c                   |  2 +-
>  drivers/video/fbdev/pvr2fb.c                  |  2 +-
>  drivers/video/fbdev/pxa168fb.c                |  2 +-
>  drivers/video/fbdev/pxafb.c                   |  4 ++--
>  drivers/video/fbdev/q40fb.c                   |  2 +-
>  drivers/video/fbdev/riva/fbdev.c              |  2 +-
>  drivers/video/fbdev/s3c-fb.c                  |  2 +-
>  drivers/video/fbdev/s3c2410fb.c               |  2 +-
>  drivers/video/fbdev/s3fb.c                    |  2 +-
>  drivers/video/fbdev/sa1100fb.c                |  2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
>  drivers/video/fbdev/sh7760fb.c                |  2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
>  drivers/video/fbdev/simplefb.c                |  2 +-
>  drivers/video/fbdev/sis/sis_main.c            |  2 +-
>  drivers/video/fbdev/skeletonfb.c              |  2 +-
>  drivers/video/fbdev/sm712fb.c                 |  2 +-
>  drivers/video/fbdev/smscufx.c                 |  2 +-
>  drivers/video/fbdev/ssd1307fb.c               |  2 +-
>  drivers/video/fbdev/sstfb.c                   |  2 +-
>  drivers/video/fbdev/stifb.c                   |  2 +-
>  drivers/video/fbdev/sunxvr1000.c              |  2 +-
>  drivers/video/fbdev/sunxvr2500.c              |  2 +-
>  drivers/video/fbdev/sunxvr500.c               |  2 +-
>  drivers/video/fbdev/tcx.c                     |  2 +-
>  drivers/video/fbdev/tdfxfb.c                  |  2 +-
>  drivers/video/fbdev/tgafb.c                   |  2 +-
>  drivers/video/fbdev/tmiofb.c                  |  2 +-
>  drivers/video/fbdev/tridentfb.c               |  2 +-
>  drivers/video/fbdev/uvesafb.c                 |  4 ++--
>  drivers/video/fbdev/valkyriefb.c              |  2 +-
>  drivers/video/fbdev/vfb.c                     |  2 +-
>  drivers/video/fbdev/vga16fb.c                 |  2 +-
>  drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
>  drivers/video/fbdev/vt8623fb.c                |  2 +-
>  drivers/video/fbdev/w100fb.c                  |  2 +-
>  drivers/video/fbdev/wm8505fb.c                |  2 +-
>  drivers/video/fbdev/xen-fbfront.c             |  2 +-
>  drivers/video/fbdev/xilinxfb.c                |  2 +-
>  include/linux/fb.h                            |  2 +-
>  samples/vfio-mdev/mdpy-fb.c                   |  2 +-
>  136 files changed, 163 insertions(+), 162 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:42   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:42 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, Robin van der Gracht,
	intel-gfx, Bernie Thompson, ivtv-devel, Hans Verkuil,
	Miguel Ojeda Sandonis, Kirti Wankhede, Noralf Trønnes,
	linux-input, linux-omap, Jaya Kumar, Bruno Prémont,
	linux-media

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> This is v3 of https://patchwork.freedesktop.org/series/70198/.
>
> 0day reported some build failures, and I needed to add patches 1-5 and 7

Should be, patches 1-4 and 7.

> to address them. Patch 8 was amended accordingly (dropped some consts),
> but the other patches remain the same from v2, except the ones I merged
> already.
>
> BR,
> Jani.
>
>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: Bernie Thompson <bernie@plugable.com>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Jaya Kumar <jayalk@intworks.biz>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Noralf Trønnes <noralf@tronnes.org>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Cc: Steve Glendinning <steve.glendinning@shawell.net>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: ivtv-devel@ivtvdriver.org
> Cc: kvm@vger.kernel.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: linux-omap@vger.kernel.org
>
> Jani Nikula (12):
>   video: fbdev: atyfb: modify the static fb_ops directly
>   video: fbdev: mb862xx: modify the static fb_ops directly
>   video: fbdev: nvidia: modify the static fb_ops directly
>   video: fbdev: uvesafb: modify the static fb_ops directly
>   video: fbdev: make fbops member of struct fb_info a const pointer
>   drm: constify fb ops across all drivers
>   video: fbdev: intelfb: use const pointer for fb_ops
>   video: constify fb ops across all drivers
>   HID: picoLCD: constify fb ops
>   media: constify fb ops across all drivers
>   samples: vfio-mdev: constify fb ops
>   auxdisplay: constify fb ops
>
>  drivers/auxdisplay/cfag12864bfb.c             |  2 +-
>  drivers/auxdisplay/ht16k33.c                  |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
>  drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
>  drivers/gpu/drm/drm_fb_helper.c               |  2 +-
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
>  .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
>  drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
>  drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
>  drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/tegra/fb.c                    |  2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
>  drivers/hid/hid-picolcd_fb.c                  |  3 +--
>  drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
>  drivers/media/platform/vivid/vivid-osd.c      |  3 +--
>  drivers/video/fbdev/68328fb.c                 |  2 +-
>  drivers/video/fbdev/acornfb.c                 |  2 +-
>  drivers/video/fbdev/amba-clcd.c               |  2 +-
>  drivers/video/fbdev/amifb.c                   |  2 +-
>  drivers/video/fbdev/arcfb.c                   |  2 +-
>  drivers/video/fbdev/arkfb.c                   |  2 +-
>  drivers/video/fbdev/asiliantfb.c              |  2 +-
>  drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
>  drivers/video/fbdev/aty/aty128fb.c            |  2 +-
>  drivers/video/fbdev/aty/atyfb.h               |  2 +-
>  drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
>  drivers/video/fbdev/aty/radeon_base.c         |  2 +-
>  drivers/video/fbdev/au1100fb.c                |  2 +-
>  drivers/video/fbdev/au1200fb.c                |  2 +-
>  drivers/video/fbdev/broadsheetfb.c            |  2 +-
>  drivers/video/fbdev/bw2.c                     |  2 +-
>  drivers/video/fbdev/carminefb.c               |  2 +-
>  drivers/video/fbdev/cg14.c                    |  2 +-
>  drivers/video/fbdev/cg3.c                     |  2 +-
>  drivers/video/fbdev/cg6.c                     |  2 +-
>  drivers/video/fbdev/chipsfb.c                 |  2 +-
>  drivers/video/fbdev/cirrusfb.c                |  2 +-
>  drivers/video/fbdev/clps711x-fb.c             |  2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
>  drivers/video/fbdev/controlfb.c               |  2 +-
>  drivers/video/fbdev/cyber2000fb.c             |  2 +-
>  drivers/video/fbdev/da8xx-fb.c                |  2 +-
>  drivers/video/fbdev/dnfb.c                    |  2 +-
>  drivers/video/fbdev/efifb.c                   |  2 +-
>  drivers/video/fbdev/ep93xx-fb.c               |  2 +-
>  drivers/video/fbdev/fb-puv3.c                 |  2 +-
>  drivers/video/fbdev/ffb.c                     |  2 +-
>  drivers/video/fbdev/fm2fb.c                   |  2 +-
>  drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
>  drivers/video/fbdev/g364fb.c                  |  2 +-
>  drivers/video/fbdev/gbefb.c                   |  2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
>  drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
>  drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
>  drivers/video/fbdev/goldfishfb.c              |  2 +-
>  drivers/video/fbdev/grvga.c                   |  2 +-
>  drivers/video/fbdev/gxt4500.c                 |  2 +-
>  drivers/video/fbdev/hecubafb.c                |  2 +-
>  drivers/video/fbdev/hgafb.c                   |  2 +-
>  drivers/video/fbdev/hitfb.c                   |  2 +-
>  drivers/video/fbdev/hpfb.c                    |  2 +-
>  drivers/video/fbdev/hyperv_fb.c               |  2 +-
>  drivers/video/fbdev/i740fb.c                  |  2 +-
>  drivers/video/fbdev/imsttfb.c                 |  2 +-
>  drivers/video/fbdev/imxfb.c                   |  2 +-
>  drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
>  drivers/video/fbdev/kyro/fbdev.c              |  2 +-
>  drivers/video/fbdev/leo.c                     |  2 +-
>  drivers/video/fbdev/macfb.c                   |  2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
>  drivers/video/fbdev/maxinefb.c                |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
>  drivers/video/fbdev/metronomefb.c             |  2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
>  drivers/video/fbdev/mx3fb.c                   |  5 +++--
>  drivers/video/fbdev/neofb.c                   |  2 +-
>  drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
>  drivers/video/fbdev/ocfb.c                    |  2 +-
>  drivers/video/fbdev/offb.c                    |  2 +-
>  .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
>  drivers/video/fbdev/p9100.c                   |  2 +-
>  drivers/video/fbdev/platinumfb.c              |  2 +-
>  drivers/video/fbdev/pm2fb.c                   |  2 +-
>  drivers/video/fbdev/pm3fb.c                   |  2 +-
>  drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
>  drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
>  drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
>  drivers/video/fbdev/ps3fb.c                   |  2 +-
>  drivers/video/fbdev/pvr2fb.c                  |  2 +-
>  drivers/video/fbdev/pxa168fb.c                |  2 +-
>  drivers/video/fbdev/pxafb.c                   |  4 ++--
>  drivers/video/fbdev/q40fb.c                   |  2 +-
>  drivers/video/fbdev/riva/fbdev.c              |  2 +-
>  drivers/video/fbdev/s3c-fb.c                  |  2 +-
>  drivers/video/fbdev/s3c2410fb.c               |  2 +-
>  drivers/video/fbdev/s3fb.c                    |  2 +-
>  drivers/video/fbdev/sa1100fb.c                |  2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
>  drivers/video/fbdev/sh7760fb.c                |  2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
>  drivers/video/fbdev/simplefb.c                |  2 +-
>  drivers/video/fbdev/sis/sis_main.c            |  2 +-
>  drivers/video/fbdev/skeletonfb.c              |  2 +-
>  drivers/video/fbdev/sm712fb.c                 |  2 +-
>  drivers/video/fbdev/smscufx.c                 |  2 +-
>  drivers/video/fbdev/ssd1307fb.c               |  2 +-
>  drivers/video/fbdev/sstfb.c                   |  2 +-
>  drivers/video/fbdev/stifb.c                   |  2 +-
>  drivers/video/fbdev/sunxvr1000.c              |  2 +-
>  drivers/video/fbdev/sunxvr2500.c              |  2 +-
>  drivers/video/fbdev/sunxvr500.c               |  2 +-
>  drivers/video/fbdev/tcx.c                     |  2 +-
>  drivers/video/fbdev/tdfxfb.c                  |  2 +-
>  drivers/video/fbdev/tgafb.c                   |  2 +-
>  drivers/video/fbdev/tmiofb.c                  |  2 +-
>  drivers/video/fbdev/tridentfb.c               |  2 +-
>  drivers/video/fbdev/uvesafb.c                 |  4 ++--
>  drivers/video/fbdev/valkyriefb.c              |  2 +-
>  drivers/video/fbdev/vfb.c                     |  2 +-
>  drivers/video/fbdev/vga16fb.c                 |  2 +-
>  drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
>  drivers/video/fbdev/vt8623fb.c                |  2 +-
>  drivers/video/fbdev/w100fb.c                  |  2 +-
>  drivers/video/fbdev/wm8505fb.c                |  2 +-
>  drivers/video/fbdev/xen-fbfront.c             |  2 +-
>  drivers/video/fbdev/xilinxfb.c                |  2 +-
>  include/linux/fb.h                            |  2 +-
>  samples/vfio-mdev/mdpy-fb.c                   |  2 +-
>  136 files changed, 163 insertions(+), 162 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:42   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:42 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, Robin van der Gracht,
	intel-gfx, Bernie Thompson, ivtv-devel, Hans Verkuil,
	Miguel Ojeda Sandonis, Kirti Wankhede, linux-input, linux-omap,
	Jaya Kumar, Bruno Prémont, linux-media

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> This is v3 of https://patchwork.freedesktop.org/series/70198/.
>
> 0day reported some build failures, and I needed to add patches 1-5 and 7

Should be, patches 1-4 and 7.

> to address them. Patch 8 was amended accordingly (dropped some consts),
> but the other patches remain the same from v2, except the ones I merged
> already.
>
> BR,
> Jani.
>
>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: Bernie Thompson <bernie@plugable.com>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Jaya Kumar <jayalk@intworks.biz>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Noralf Trønnes <noralf@tronnes.org>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Cc: Steve Glendinning <steve.glendinning@shawell.net>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: ivtv-devel@ivtvdriver.org
> Cc: kvm@vger.kernel.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: linux-omap@vger.kernel.org
>
> Jani Nikula (12):
>   video: fbdev: atyfb: modify the static fb_ops directly
>   video: fbdev: mb862xx: modify the static fb_ops directly
>   video: fbdev: nvidia: modify the static fb_ops directly
>   video: fbdev: uvesafb: modify the static fb_ops directly
>   video: fbdev: make fbops member of struct fb_info a const pointer
>   drm: constify fb ops across all drivers
>   video: fbdev: intelfb: use const pointer for fb_ops
>   video: constify fb ops across all drivers
>   HID: picoLCD: constify fb ops
>   media: constify fb ops across all drivers
>   samples: vfio-mdev: constify fb ops
>   auxdisplay: constify fb ops
>
>  drivers/auxdisplay/cfag12864bfb.c             |  2 +-
>  drivers/auxdisplay/ht16k33.c                  |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
>  drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
>  drivers/gpu/drm/drm_fb_helper.c               |  2 +-
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
>  .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
>  drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
>  drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
>  drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/tegra/fb.c                    |  2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
>  drivers/hid/hid-picolcd_fb.c                  |  3 +--
>  drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
>  drivers/media/platform/vivid/vivid-osd.c      |  3 +--
>  drivers/video/fbdev/68328fb.c                 |  2 +-
>  drivers/video/fbdev/acornfb.c                 |  2 +-
>  drivers/video/fbdev/amba-clcd.c               |  2 +-
>  drivers/video/fbdev/amifb.c                   |  2 +-
>  drivers/video/fbdev/arcfb.c                   |  2 +-
>  drivers/video/fbdev/arkfb.c                   |  2 +-
>  drivers/video/fbdev/asiliantfb.c              |  2 +-
>  drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
>  drivers/video/fbdev/aty/aty128fb.c            |  2 +-
>  drivers/video/fbdev/aty/atyfb.h               |  2 +-
>  drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
>  drivers/video/fbdev/aty/radeon_base.c         |  2 +-
>  drivers/video/fbdev/au1100fb.c                |  2 +-
>  drivers/video/fbdev/au1200fb.c                |  2 +-
>  drivers/video/fbdev/broadsheetfb.c            |  2 +-
>  drivers/video/fbdev/bw2.c                     |  2 +-
>  drivers/video/fbdev/carminefb.c               |  2 +-
>  drivers/video/fbdev/cg14.c                    |  2 +-
>  drivers/video/fbdev/cg3.c                     |  2 +-
>  drivers/video/fbdev/cg6.c                     |  2 +-
>  drivers/video/fbdev/chipsfb.c                 |  2 +-
>  drivers/video/fbdev/cirrusfb.c                |  2 +-
>  drivers/video/fbdev/clps711x-fb.c             |  2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
>  drivers/video/fbdev/controlfb.c               |  2 +-
>  drivers/video/fbdev/cyber2000fb.c             |  2 +-
>  drivers/video/fbdev/da8xx-fb.c                |  2 +-
>  drivers/video/fbdev/dnfb.c                    |  2 +-
>  drivers/video/fbdev/efifb.c                   |  2 +-
>  drivers/video/fbdev/ep93xx-fb.c               |  2 +-
>  drivers/video/fbdev/fb-puv3.c                 |  2 +-
>  drivers/video/fbdev/ffb.c                     |  2 +-
>  drivers/video/fbdev/fm2fb.c                   |  2 +-
>  drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
>  drivers/video/fbdev/g364fb.c                  |  2 +-
>  drivers/video/fbdev/gbefb.c                   |  2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
>  drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
>  drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
>  drivers/video/fbdev/goldfishfb.c              |  2 +-
>  drivers/video/fbdev/grvga.c                   |  2 +-
>  drivers/video/fbdev/gxt4500.c                 |  2 +-
>  drivers/video/fbdev/hecubafb.c                |  2 +-
>  drivers/video/fbdev/hgafb.c                   |  2 +-
>  drivers/video/fbdev/hitfb.c                   |  2 +-
>  drivers/video/fbdev/hpfb.c                    |  2 +-
>  drivers/video/fbdev/hyperv_fb.c               |  2 +-
>  drivers/video/fbdev/i740fb.c                  |  2 +-
>  drivers/video/fbdev/imsttfb.c                 |  2 +-
>  drivers/video/fbdev/imxfb.c                   |  2 +-
>  drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
>  drivers/video/fbdev/kyro/fbdev.c              |  2 +-
>  drivers/video/fbdev/leo.c                     |  2 +-
>  drivers/video/fbdev/macfb.c                   |  2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
>  drivers/video/fbdev/maxinefb.c                |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
>  drivers/video/fbdev/metronomefb.c             |  2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
>  drivers/video/fbdev/mx3fb.c                   |  5 +++--
>  drivers/video/fbdev/neofb.c                   |  2 +-
>  drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
>  drivers/video/fbdev/ocfb.c                    |  2 +-
>  drivers/video/fbdev/offb.c                    |  2 +-
>  .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
>  drivers/video/fbdev/p9100.c                   |  2 +-
>  drivers/video/fbdev/platinumfb.c              |  2 +-
>  drivers/video/fbdev/pm2fb.c                   |  2 +-
>  drivers/video/fbdev/pm3fb.c                   |  2 +-
>  drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
>  drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
>  drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
>  drivers/video/fbdev/ps3fb.c                   |  2 +-
>  drivers/video/fbdev/pvr2fb.c                  |  2 +-
>  drivers/video/fbdev/pxa168fb.c                |  2 +-
>  drivers/video/fbdev/pxafb.c                   |  4 ++--
>  drivers/video/fbdev/q40fb.c                   |  2 +-
>  drivers/video/fbdev/riva/fbdev.c              |  2 +-
>  drivers/video/fbdev/s3c-fb.c                  |  2 +-
>  drivers/video/fbdev/s3c2410fb.c               |  2 +-
>  drivers/video/fbdev/s3fb.c                    |  2 +-
>  drivers/video/fbdev/sa1100fb.c                |  2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
>  drivers/video/fbdev/sh7760fb.c                |  2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
>  drivers/video/fbdev/simplefb.c                |  2 +-
>  drivers/video/fbdev/sis/sis_main.c            |  2 +-
>  drivers/video/fbdev/skeletonfb.c              |  2 +-
>  drivers/video/fbdev/sm712fb.c                 |  2 +-
>  drivers/video/fbdev/smscufx.c                 |  2 +-
>  drivers/video/fbdev/ssd1307fb.c               |  2 +-
>  drivers/video/fbdev/sstfb.c                   |  2 +-
>  drivers/video/fbdev/stifb.c                   |  2 +-
>  drivers/video/fbdev/sunxvr1000.c              |  2 +-
>  drivers/video/fbdev/sunxvr2500.c              |  2 +-
>  drivers/video/fbdev/sunxvr500.c               |  2 +-
>  drivers/video/fbdev/tcx.c                     |  2 +-
>  drivers/video/fbdev/tdfxfb.c                  |  2 +-
>  drivers/video/fbdev/tgafb.c                   |  2 +-
>  drivers/video/fbdev/tmiofb.c                  |  2 +-
>  drivers/video/fbdev/tridentfb.c               |  2 +-
>  drivers/video/fbdev/uvesafb.c                 |  4 ++--
>  drivers/video/fbdev/valkyriefb.c              |  2 +-
>  drivers/video/fbdev/vfb.c                     |  2 +-
>  drivers/video/fbdev/vga16fb.c                 |  2 +-
>  drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
>  drivers/video/fbdev/vt8623fb.c                |  2 +-
>  drivers/video/fbdev/w100fb.c                  |  2 +-
>  drivers/video/fbdev/wm8505fb.c                |  2 +-
>  drivers/video/fbdev/xen-fbfront.c             |  2 +-
>  drivers/video/fbdev/xilinxfb.c                |  2 +-
>  include/linux/fb.h                            |  2 +-
>  samples/vfio-mdev/mdpy-fb.c                   |  2 +-
>  136 files changed, 163 insertions(+), 162 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info
@ 2019-12-03 16:42   ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-03 16:42 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Steve Glendinning, Andy Walls, kvm, Robin van der Gracht,
	intel-gfx, Bernie Thompson, ivtv-devel, Hans Verkuil,
	Miguel Ojeda Sandonis, Kirti Wankhede, Noralf Trønnes,
	linux-input, linux-omap, Jaya Kumar, Bruno Prémont,
	linux-media

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> This is v3 of https://patchwork.freedesktop.org/series/70198/.
>
> 0day reported some build failures, and I needed to add patches 1-5 and 7

Should be, patches 1-4 and 7.

> to address them. Patch 8 was amended accordingly (dropped some consts),
> but the other patches remain the same from v2, except the ones I merged
> already.
>
> BR,
> Jani.
>
>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: Bernie Thompson <bernie@plugable.com>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: Daniel Vetter <daniel@ffwll.ch>
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Jaya Kumar <jayalk@intworks.biz>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Noralf Trønnes <noralf@tronnes.org>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Cc: Steve Glendinning <steve.glendinning@shawell.net>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: dri-devel@lists.freedesktop.org
> Cc: ivtv-devel@ivtvdriver.org
> Cc: kvm@vger.kernel.org
> Cc: linux-fbdev@vger.kernel.org
> Cc: linux-input@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: linux-omap@vger.kernel.org
>
> Jani Nikula (12):
>   video: fbdev: atyfb: modify the static fb_ops directly
>   video: fbdev: mb862xx: modify the static fb_ops directly
>   video: fbdev: nvidia: modify the static fb_ops directly
>   video: fbdev: uvesafb: modify the static fb_ops directly
>   video: fbdev: make fbops member of struct fb_info a const pointer
>   drm: constify fb ops across all drivers
>   video: fbdev: intelfb: use const pointer for fb_ops
>   video: constify fb ops across all drivers
>   HID: picoLCD: constify fb ops
>   media: constify fb ops across all drivers
>   samples: vfio-mdev: constify fb ops
>   auxdisplay: constify fb ops
>
>  drivers/auxdisplay/cfag12864bfb.c             |  2 +-
>  drivers/auxdisplay/ht16k33.c                  |  2 +-
>  drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c        |  2 +-
>  drivers/gpu/drm/armada/armada_fbdev.c         |  2 +-
>  drivers/gpu/drm/drm_fb_helper.c               |  2 +-
>  drivers/gpu/drm/exynos/exynos_drm_fbdev.c     |  2 +-
>  .../gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/i915/display/intel_fbdev.c    |  2 +-
>  drivers/gpu/drm/msm/msm_fbdev.c               |  2 +-
>  drivers/gpu/drm/nouveau/nouveau_fbcon.c       |  4 ++--
>  drivers/gpu/drm/omapdrm/omap_fbdev.c          |  2 +-
>  drivers/gpu/drm/radeon/radeon_fb.c            |  2 +-
>  drivers/gpu/drm/rockchip/rockchip_drm_fbdev.c |  2 +-
>  drivers/gpu/drm/tegra/fb.c                    |  2 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_fb.c            |  2 +-
>  drivers/hid/hid-picolcd_fb.c                  |  3 +--
>  drivers/media/pci/ivtv/ivtvfb.c               |  3 +--
>  drivers/media/platform/vivid/vivid-osd.c      |  3 +--
>  drivers/video/fbdev/68328fb.c                 |  2 +-
>  drivers/video/fbdev/acornfb.c                 |  2 +-
>  drivers/video/fbdev/amba-clcd.c               |  2 +-
>  drivers/video/fbdev/amifb.c                   |  2 +-
>  drivers/video/fbdev/arcfb.c                   |  2 +-
>  drivers/video/fbdev/arkfb.c                   |  2 +-
>  drivers/video/fbdev/asiliantfb.c              |  2 +-
>  drivers/video/fbdev/atmel_lcdfb.c             |  2 +-
>  drivers/video/fbdev/aty/aty128fb.c            |  2 +-
>  drivers/video/fbdev/aty/atyfb.h               |  2 +-
>  drivers/video/fbdev/aty/atyfb_base.c          |  6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c       |  4 ++--
>  drivers/video/fbdev/aty/radeon_base.c         |  2 +-
>  drivers/video/fbdev/au1100fb.c                |  2 +-
>  drivers/video/fbdev/au1200fb.c                |  2 +-
>  drivers/video/fbdev/broadsheetfb.c            |  2 +-
>  drivers/video/fbdev/bw2.c                     |  2 +-
>  drivers/video/fbdev/carminefb.c               |  2 +-
>  drivers/video/fbdev/cg14.c                    |  2 +-
>  drivers/video/fbdev/cg3.c                     |  2 +-
>  drivers/video/fbdev/cg6.c                     |  2 +-
>  drivers/video/fbdev/chipsfb.c                 |  2 +-
>  drivers/video/fbdev/cirrusfb.c                |  2 +-
>  drivers/video/fbdev/clps711x-fb.c             |  2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c            |  2 +-
>  drivers/video/fbdev/controlfb.c               |  2 +-
>  drivers/video/fbdev/cyber2000fb.c             |  2 +-
>  drivers/video/fbdev/da8xx-fb.c                |  2 +-
>  drivers/video/fbdev/dnfb.c                    |  2 +-
>  drivers/video/fbdev/efifb.c                   |  2 +-
>  drivers/video/fbdev/ep93xx-fb.c               |  2 +-
>  drivers/video/fbdev/fb-puv3.c                 |  2 +-
>  drivers/video/fbdev/ffb.c                     |  2 +-
>  drivers/video/fbdev/fm2fb.c                   |  2 +-
>  drivers/video/fbdev/fsl-diu-fb.c              |  2 +-
>  drivers/video/fbdev/g364fb.c                  |  2 +-
>  drivers/video/fbdev/gbefb.c                   |  2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c        |  2 +-
>  drivers/video/fbdev/geode/gxfb_core.c         |  2 +-
>  drivers/video/fbdev/geode/lxfb_core.c         |  2 +-
>  drivers/video/fbdev/goldfishfb.c              |  2 +-
>  drivers/video/fbdev/grvga.c                   |  2 +-
>  drivers/video/fbdev/gxt4500.c                 |  2 +-
>  drivers/video/fbdev/hecubafb.c                |  2 +-
>  drivers/video/fbdev/hgafb.c                   |  2 +-
>  drivers/video/fbdev/hitfb.c                   |  2 +-
>  drivers/video/fbdev/hpfb.c                    |  2 +-
>  drivers/video/fbdev/hyperv_fb.c               |  2 +-
>  drivers/video/fbdev/i740fb.c                  |  2 +-
>  drivers/video/fbdev/imsttfb.c                 |  2 +-
>  drivers/video/fbdev/imxfb.c                   |  2 +-
>  drivers/video/fbdev/intelfb/intelfb.h         |  2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c      |  2 +-
>  drivers/video/fbdev/kyro/fbdev.c              |  2 +-
>  drivers/video/fbdev/leo.c                     |  2 +-
>  drivers/video/fbdev/macfb.c                   |  2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c   |  2 +-
>  drivers/video/fbdev/maxinefb.c                |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++-------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  drivers/video/fbdev/mbx/mbxfb.c               |  2 +-
>  drivers/video/fbdev/metronomefb.c             |  2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c            |  2 +-
>  drivers/video/fbdev/mx3fb.c                   |  5 +++--
>  drivers/video/fbdev/neofb.c                   |  2 +-
>  drivers/video/fbdev/nvidia/nvidia.c           | 20 ++++++++++---------
>  drivers/video/fbdev/ocfb.c                    |  2 +-
>  drivers/video/fbdev/offb.c                    |  2 +-
>  .../video/fbdev/omap2/omapfb/omapfb-main.c    |  2 +-
>  drivers/video/fbdev/p9100.c                   |  2 +-
>  drivers/video/fbdev/platinumfb.c              |  2 +-
>  drivers/video/fbdev/pm2fb.c                   |  2 +-
>  drivers/video/fbdev/pm3fb.c                   |  2 +-
>  drivers/video/fbdev/pmag-aa-fb.c              |  2 +-
>  drivers/video/fbdev/pmag-ba-fb.c              |  2 +-
>  drivers/video/fbdev/pmagb-b-fb.c              |  2 +-
>  drivers/video/fbdev/ps3fb.c                   |  2 +-
>  drivers/video/fbdev/pvr2fb.c                  |  2 +-
>  drivers/video/fbdev/pxa168fb.c                |  2 +-
>  drivers/video/fbdev/pxafb.c                   |  4 ++--
>  drivers/video/fbdev/q40fb.c                   |  2 +-
>  drivers/video/fbdev/riva/fbdev.c              |  2 +-
>  drivers/video/fbdev/s3c-fb.c                  |  2 +-
>  drivers/video/fbdev/s3c2410fb.c               |  2 +-
>  drivers/video/fbdev/s3fb.c                    |  2 +-
>  drivers/video/fbdev/sa1100fb.c                |  2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c  |  2 +-
>  drivers/video/fbdev/sh7760fb.c                |  2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c        |  4 ++--
>  drivers/video/fbdev/simplefb.c                |  2 +-
>  drivers/video/fbdev/sis/sis_main.c            |  2 +-
>  drivers/video/fbdev/skeletonfb.c              |  2 +-
>  drivers/video/fbdev/sm712fb.c                 |  2 +-
>  drivers/video/fbdev/smscufx.c                 |  2 +-
>  drivers/video/fbdev/ssd1307fb.c               |  2 +-
>  drivers/video/fbdev/sstfb.c                   |  2 +-
>  drivers/video/fbdev/stifb.c                   |  2 +-
>  drivers/video/fbdev/sunxvr1000.c              |  2 +-
>  drivers/video/fbdev/sunxvr2500.c              |  2 +-
>  drivers/video/fbdev/sunxvr500.c               |  2 +-
>  drivers/video/fbdev/tcx.c                     |  2 +-
>  drivers/video/fbdev/tdfxfb.c                  |  2 +-
>  drivers/video/fbdev/tgafb.c                   |  2 +-
>  drivers/video/fbdev/tmiofb.c                  |  2 +-
>  drivers/video/fbdev/tridentfb.c               |  2 +-
>  drivers/video/fbdev/uvesafb.c                 |  4 ++--
>  drivers/video/fbdev/valkyriefb.c              |  2 +-
>  drivers/video/fbdev/vfb.c                     |  2 +-
>  drivers/video/fbdev/vga16fb.c                 |  2 +-
>  drivers/video/fbdev/vt8500lcdfb.c             |  2 +-
>  drivers/video/fbdev/vt8623fb.c                |  2 +-
>  drivers/video/fbdev/w100fb.c                  |  2 +-
>  drivers/video/fbdev/wm8505fb.c                |  2 +-
>  drivers/video/fbdev/xen-fbfront.c             |  2 +-
>  drivers/video/fbdev/xilinxfb.c                |  2 +-
>  include/linux/fb.h                            |  2 +-
>  samples/vfio-mdev/mdpy-fb.c                   |  2 +-
>  136 files changed, 163 insertions(+), 162 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-03 16:46     ` Daniel Vetter
  -1 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:46 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:43PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/aty/atyfb.h         | 2 +-
>  drivers/video/fbdev/aty/atyfb_base.c    | 6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/video/fbdev/aty/atyfb.h b/drivers/video/fbdev/aty/atyfb.h
> index e5a347c58180..a7833bc98225 100644
> --- a/drivers/video/fbdev/aty/atyfb.h
> +++ b/drivers/video/fbdev/aty/atyfb.h
> @@ -341,7 +341,7 @@ extern const u8 aty_postdividers[8];
>       *  Hardware cursor support
>       */
>  
> -extern int aty_init_cursor(struct fb_info *info);
> +extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);
>  
>      /*
>       *  Hardware acceleration
> diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
> index 6dda5d885a03..bebc08505d94 100644
> --- a/drivers/video/fbdev/aty/atyfb_base.c
> +++ b/drivers/video/fbdev/aty/atyfb_base.c
> @@ -1316,10 +1316,10 @@ static int atyfb_set_par(struct fb_info *info)
>  	par->accel_flags = var->accel_flags; /* hack */
>  
>  	if (var->accel_flags) {
> -		info->fbops->fb_sync = atyfb_sync;
> +		atyfb_ops.fb_sync = atyfb_sync;
>  		info->flags &= ~FBINFO_HWACCEL_DISABLED;
>  	} else {
> -		info->fbops->fb_sync = NULL;
> +		atyfb_ops.fb_sync = NULL;
>  		info->flags |= FBINFO_HWACCEL_DISABLED;
>  	}
>  
> @@ -2702,7 +2702,7 @@ static int aty_init(struct fb_info *info)
>  
>  #ifdef CONFIG_FB_ATY_CT
>  	if (!noaccel && M64_HAS(INTEGRATED))
> -		aty_init_cursor(info);
> +		aty_init_cursor(info, &atyfb_ops);

Uh ... can I bikeshed this to duplicating an atyfb_cursor_ops and then
just reassigning the info->fbops pointer?

This here seems a bit too wild.
-Daniel

>  #endif /* CONFIG_FB_ATY_CT */
>  	info->var = var;
>  
> diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
> index 4cde25eab8e8..b06fa6e42e6e 100644
> --- a/drivers/video/fbdev/aty/mach64_cursor.c
> +++ b/drivers/video/fbdev/aty/mach64_cursor.c
> @@ -194,7 +194,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -int aty_init_cursor(struct fb_info *info)
> +int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops)
>  {
>  	unsigned long addr;
>  
> @@ -219,7 +219,7 @@ int aty_init_cursor(struct fb_info *info)
>  	info->sprite.buf_align = 16; 	/* and 64 lines tall. */
>  	info->sprite.flags = FB_PIXMAP_IO;
>  
> -	info->fbops->fb_cursor = atyfb_cursor;
> +	atyfb_ops->fb_cursor = atyfb_cursor;
>  
>  	return 0;
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

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

* Re: [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly
@ 2019-12-03 16:46     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:46 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:43PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/aty/atyfb.h         | 2 +-
>  drivers/video/fbdev/aty/atyfb_base.c    | 6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/video/fbdev/aty/atyfb.h b/drivers/video/fbdev/aty/atyfb.h
> index e5a347c58180..a7833bc98225 100644
> --- a/drivers/video/fbdev/aty/atyfb.h
> +++ b/drivers/video/fbdev/aty/atyfb.h
> @@ -341,7 +341,7 @@ extern const u8 aty_postdividers[8];
>       *  Hardware cursor support
>       */
>  
> -extern int aty_init_cursor(struct fb_info *info);
> +extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);
>  
>      /*
>       *  Hardware acceleration
> diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
> index 6dda5d885a03..bebc08505d94 100644
> --- a/drivers/video/fbdev/aty/atyfb_base.c
> +++ b/drivers/video/fbdev/aty/atyfb_base.c
> @@ -1316,10 +1316,10 @@ static int atyfb_set_par(struct fb_info *info)
>  	par->accel_flags = var->accel_flags; /* hack */
>  
>  	if (var->accel_flags) {
> -		info->fbops->fb_sync = atyfb_sync;
> +		atyfb_ops.fb_sync = atyfb_sync;
>  		info->flags &= ~FBINFO_HWACCEL_DISABLED;
>  	} else {
> -		info->fbops->fb_sync = NULL;
> +		atyfb_ops.fb_sync = NULL;
>  		info->flags |= FBINFO_HWACCEL_DISABLED;
>  	}
>  
> @@ -2702,7 +2702,7 @@ static int aty_init(struct fb_info *info)
>  
>  #ifdef CONFIG_FB_ATY_CT
>  	if (!noaccel && M64_HAS(INTEGRATED))
> -		aty_init_cursor(info);
> +		aty_init_cursor(info, &atyfb_ops);

Uh ... can I bikeshed this to duplicating an atyfb_cursor_ops and then
just reassigning the info->fbops pointer?

This here seems a bit too wild.
-Daniel

>  #endif /* CONFIG_FB_ATY_CT */
>  	info->var = var;
>  
> diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
> index 4cde25eab8e8..b06fa6e42e6e 100644
> --- a/drivers/video/fbdev/aty/mach64_cursor.c
> +++ b/drivers/video/fbdev/aty/mach64_cursor.c
> @@ -194,7 +194,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -int aty_init_cursor(struct fb_info *info)
> +int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops)
>  {
>  	unsigned long addr;
>  
> @@ -219,7 +219,7 @@ int aty_init_cursor(struct fb_info *info)
>  	info->sprite.buf_align = 16; 	/* and 64 lines tall. */
>  	info->sprite.flags = FB_PIXMAP_IO;
>  
> -	info->fbops->fb_cursor = atyfb_cursor;
> +	atyfb_ops->fb_cursor = atyfb_cursor;
>  
>  	return 0;
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly
@ 2019-12-03 16:46     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:46 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:43PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/aty/atyfb.h         | 2 +-
>  drivers/video/fbdev/aty/atyfb_base.c    | 6 +++---
>  drivers/video/fbdev/aty/mach64_cursor.c | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/video/fbdev/aty/atyfb.h b/drivers/video/fbdev/aty/atyfb.h
> index e5a347c58180..a7833bc98225 100644
> --- a/drivers/video/fbdev/aty/atyfb.h
> +++ b/drivers/video/fbdev/aty/atyfb.h
> @@ -341,7 +341,7 @@ extern const u8 aty_postdividers[8];
>       *  Hardware cursor support
>       */
>  
> -extern int aty_init_cursor(struct fb_info *info);
> +extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);
>  
>      /*
>       *  Hardware acceleration
> diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
> index 6dda5d885a03..bebc08505d94 100644
> --- a/drivers/video/fbdev/aty/atyfb_base.c
> +++ b/drivers/video/fbdev/aty/atyfb_base.c
> @@ -1316,10 +1316,10 @@ static int atyfb_set_par(struct fb_info *info)
>  	par->accel_flags = var->accel_flags; /* hack */
>  
>  	if (var->accel_flags) {
> -		info->fbops->fb_sync = atyfb_sync;
> +		atyfb_ops.fb_sync = atyfb_sync;
>  		info->flags &= ~FBINFO_HWACCEL_DISABLED;
>  	} else {
> -		info->fbops->fb_sync = NULL;
> +		atyfb_ops.fb_sync = NULL;
>  		info->flags |= FBINFO_HWACCEL_DISABLED;
>  	}
>  
> @@ -2702,7 +2702,7 @@ static int aty_init(struct fb_info *info)
>  
>  #ifdef CONFIG_FB_ATY_CT
>  	if (!noaccel && M64_HAS(INTEGRATED))
> -		aty_init_cursor(info);
> +		aty_init_cursor(info, &atyfb_ops);

Uh ... can I bikeshed this to duplicating an atyfb_cursor_ops and then
just reassigning the info->fbops pointer?

This here seems a bit too wild.
-Daniel

>  #endif /* CONFIG_FB_ATY_CT */
>  	info->var = var;
>  
> diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
> index 4cde25eab8e8..b06fa6e42e6e 100644
> --- a/drivers/video/fbdev/aty/mach64_cursor.c
> +++ b/drivers/video/fbdev/aty/mach64_cursor.c
> @@ -194,7 +194,7 @@ static int atyfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -int aty_init_cursor(struct fb_info *info)
> +int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops)
>  {
>  	unsigned long addr;
>  
> @@ -219,7 +219,7 @@ int aty_init_cursor(struct fb_info *info)
>  	info->sprite.buf_align = 16; 	/* and 64 lines tall. */
>  	info->sprite.flags = FB_PIXMAP_IO;
>  
> -	info->fbops->fb_cursor = atyfb_cursor;
> +	atyfb_ops->fb_cursor = atyfb_cursor;
>  
>  	return 0;
>  }
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 02/12] video: fbdev: mb862xx: modify the static fb_ops directly
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-03 16:50     ` Daniel Vetter
  -1 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:50 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:44PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future. Drop the unnecessary EXPORT_SYMBOL() while at it.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++--------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  3 files changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb.h b/drivers/video/fbdev/mb862xx/mb862xxfb.h
> index 50bc9b584ca1..52a77ea4e849 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfb.h
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfb.h
> @@ -89,7 +89,7 @@ struct mb862xxfb_par {
>  	u32			pseudo_palette[16];
>  };
>  
> -extern void mb862xxfb_init_accel(struct fb_info *info, int xres);
> +extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);
>  #ifdef CONFIG_FB_MB862XX_I2C
>  extern int mb862xx_i2c_init(struct mb862xxfb_par *par);
>  extern void mb862xx_i2c_exit(struct mb862xxfb_par *par);
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
> index f58ff900e82a..42569264801f 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c

/me cries in fbdev

> @@ -303,19 +303,19 @@ static void mb86290fb_fillrect(struct fb_info *info,
>  	mb862xxfb_write_fifo(7, cmd, info);
>  }
>  
> -void mb862xxfb_init_accel(struct fb_info *info, int xres)
> +void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres)
>  {
>  	struct mb862xxfb_par *par = info->par;
>  
>  	if (info->var.bits_per_pixel = 32) {
> -		info->fbops->fb_fillrect = cfb_fillrect;
> -		info->fbops->fb_copyarea = cfb_copyarea;
> -		info->fbops->fb_imageblit = cfb_imageblit;
> +		fbops->fb_fillrect = cfb_fillrect;
> +		fbops->fb_copyarea = cfb_copyarea;
> +		fbops->fb_imageblit = cfb_imageblit;

Ok, so this just resets to the same values as mb862xxfb_ops.

>  	} else {
>  		outreg(disp, GC_L0EM, 3);
> -		info->fbops->fb_fillrect = mb86290fb_fillrect;
> -		info->fbops->fb_copyarea = mb86290fb_copyarea;
> -		info->fbops->fb_imageblit = mb86290fb_imageblit;
> +		fbops->fb_fillrect = mb86290fb_fillrect;
> +		fbops->fb_copyarea = mb86290fb_copyarea;
> +		fbops->fb_imageblit = mb86290fb_imageblit;

Which means if we'd copypaste that into an mb862xxfb_accel_ops we could do
this a bit cleaner, and leave the ops structs const.

>  	}
>  	outreg(draw, GDC_REG_DRAW_BASE, 0);
>  	outreg(draw, GDC_REG_MODE_MISC, 0x8000);
> @@ -326,6 +326,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
>  	    FBINFO_HWACCEL_IMAGEBLIT;
>  	info->fix.accel = 0xff;	/*FIXME: add right define */
>  }
> -EXPORT_SYMBOL(mb862xxfb_init_accel);
>  
>  MODULE_LICENSE("GPL v2");
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> index 962c0171d271..52755b591c14 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> @@ -194,6 +194,8 @@ static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
>  	return 0;
>  }
>  
> +static struct fb_ops mb862xxfb_ops;
> +
>  /*
>   * set display parameters
>   */
> @@ -204,7 +206,7 @@ static int mb862xxfb_set_par(struct fb_info *fbi)

set_par. It's called from set_par.

Ok not going to think about this more.
-Daniel

>  
>  	dev_dbg(par->dev, "%s\n", __func__);
>  	if (par->type = BT_CORALP)
> -		mb862xxfb_init_accel(fbi, fbi->var.xres);
> +		mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
>  
>  	if (par->pre_init)
>  		return 0;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

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

* Re: [PATCH v3 02/12] video: fbdev: mb862xx: modify the static fb_ops directly
@ 2019-12-03 16:50     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:50 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:44PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future. Drop the unnecessary EXPORT_SYMBOL() while at it.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++--------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  3 files changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb.h b/drivers/video/fbdev/mb862xx/mb862xxfb.h
> index 50bc9b584ca1..52a77ea4e849 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfb.h
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfb.h
> @@ -89,7 +89,7 @@ struct mb862xxfb_par {
>  	u32			pseudo_palette[16];
>  };
>  
> -extern void mb862xxfb_init_accel(struct fb_info *info, int xres);
> +extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);
>  #ifdef CONFIG_FB_MB862XX_I2C
>  extern int mb862xx_i2c_init(struct mb862xxfb_par *par);
>  extern void mb862xx_i2c_exit(struct mb862xxfb_par *par);
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
> index f58ff900e82a..42569264801f 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c

/me cries in fbdev

> @@ -303,19 +303,19 @@ static void mb86290fb_fillrect(struct fb_info *info,
>  	mb862xxfb_write_fifo(7, cmd, info);
>  }
>  
> -void mb862xxfb_init_accel(struct fb_info *info, int xres)
> +void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres)
>  {
>  	struct mb862xxfb_par *par = info->par;
>  
>  	if (info->var.bits_per_pixel == 32) {
> -		info->fbops->fb_fillrect = cfb_fillrect;
> -		info->fbops->fb_copyarea = cfb_copyarea;
> -		info->fbops->fb_imageblit = cfb_imageblit;
> +		fbops->fb_fillrect = cfb_fillrect;
> +		fbops->fb_copyarea = cfb_copyarea;
> +		fbops->fb_imageblit = cfb_imageblit;

Ok, so this just resets to the same values as mb862xxfb_ops.

>  	} else {
>  		outreg(disp, GC_L0EM, 3);
> -		info->fbops->fb_fillrect = mb86290fb_fillrect;
> -		info->fbops->fb_copyarea = mb86290fb_copyarea;
> -		info->fbops->fb_imageblit = mb86290fb_imageblit;
> +		fbops->fb_fillrect = mb86290fb_fillrect;
> +		fbops->fb_copyarea = mb86290fb_copyarea;
> +		fbops->fb_imageblit = mb86290fb_imageblit;

Which means if we'd copypaste that into an mb862xxfb_accel_ops we could do
this a bit cleaner, and leave the ops structs const.

>  	}
>  	outreg(draw, GDC_REG_DRAW_BASE, 0);
>  	outreg(draw, GDC_REG_MODE_MISC, 0x8000);
> @@ -326,6 +326,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
>  	    FBINFO_HWACCEL_IMAGEBLIT;
>  	info->fix.accel = 0xff;	/*FIXME: add right define */
>  }
> -EXPORT_SYMBOL(mb862xxfb_init_accel);
>  
>  MODULE_LICENSE("GPL v2");
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> index 962c0171d271..52755b591c14 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> @@ -194,6 +194,8 @@ static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
>  	return 0;
>  }
>  
> +static struct fb_ops mb862xxfb_ops;
> +
>  /*
>   * set display parameters
>   */
> @@ -204,7 +206,7 @@ static int mb862xxfb_set_par(struct fb_info *fbi)

set_par. It's called from set_par.

Ok not going to think about this more.
-Daniel

>  
>  	dev_dbg(par->dev, "%s\n", __func__);
>  	if (par->type == BT_CORALP)
> -		mb862xxfb_init_accel(fbi, fbi->var.xres);
> +		mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
>  
>  	if (par->pre_init)
>  		return 0;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 02/12] video: fbdev: mb862xx: modify the static fb_ops directly
@ 2019-12-03 16:50     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:50 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:44PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future. Drop the unnecessary EXPORT_SYMBOL() while at it.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/mb862xx/mb862xxfb.h       |  2 +-
>  drivers/video/fbdev/mb862xx/mb862xxfb_accel.c | 15 +++++++--------
>  drivers/video/fbdev/mb862xx/mb862xxfbdrv.c    |  4 +++-
>  3 files changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb.h b/drivers/video/fbdev/mb862xx/mb862xxfb.h
> index 50bc9b584ca1..52a77ea4e849 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfb.h
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfb.h
> @@ -89,7 +89,7 @@ struct mb862xxfb_par {
>  	u32			pseudo_palette[16];
>  };
>  
> -extern void mb862xxfb_init_accel(struct fb_info *info, int xres);
> +extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);
>  #ifdef CONFIG_FB_MB862XX_I2C
>  extern int mb862xx_i2c_init(struct mb862xxfb_par *par);
>  extern void mb862xx_i2c_exit(struct mb862xxfb_par *par);
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
> index f58ff900e82a..42569264801f 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c

/me cries in fbdev

> @@ -303,19 +303,19 @@ static void mb86290fb_fillrect(struct fb_info *info,
>  	mb862xxfb_write_fifo(7, cmd, info);
>  }
>  
> -void mb862xxfb_init_accel(struct fb_info *info, int xres)
> +void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres)
>  {
>  	struct mb862xxfb_par *par = info->par;
>  
>  	if (info->var.bits_per_pixel == 32) {
> -		info->fbops->fb_fillrect = cfb_fillrect;
> -		info->fbops->fb_copyarea = cfb_copyarea;
> -		info->fbops->fb_imageblit = cfb_imageblit;
> +		fbops->fb_fillrect = cfb_fillrect;
> +		fbops->fb_copyarea = cfb_copyarea;
> +		fbops->fb_imageblit = cfb_imageblit;

Ok, so this just resets to the same values as mb862xxfb_ops.

>  	} else {
>  		outreg(disp, GC_L0EM, 3);
> -		info->fbops->fb_fillrect = mb86290fb_fillrect;
> -		info->fbops->fb_copyarea = mb86290fb_copyarea;
> -		info->fbops->fb_imageblit = mb86290fb_imageblit;
> +		fbops->fb_fillrect = mb86290fb_fillrect;
> +		fbops->fb_copyarea = mb86290fb_copyarea;
> +		fbops->fb_imageblit = mb86290fb_imageblit;

Which means if we'd copypaste that into an mb862xxfb_accel_ops we could do
this a bit cleaner, and leave the ops structs const.

>  	}
>  	outreg(draw, GDC_REG_DRAW_BASE, 0);
>  	outreg(draw, GDC_REG_MODE_MISC, 0x8000);
> @@ -326,6 +326,5 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
>  	    FBINFO_HWACCEL_IMAGEBLIT;
>  	info->fix.accel = 0xff;	/*FIXME: add right define */
>  }
> -EXPORT_SYMBOL(mb862xxfb_init_accel);
>  
>  MODULE_LICENSE("GPL v2");
> diff --git a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> index 962c0171d271..52755b591c14 100644
> --- a/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> +++ b/drivers/video/fbdev/mb862xx/mb862xxfbdrv.c
> @@ -194,6 +194,8 @@ static int mb862xxfb_check_var(struct fb_var_screeninfo *var,
>  	return 0;
>  }
>  
> +static struct fb_ops mb862xxfb_ops;
> +
>  /*
>   * set display parameters
>   */
> @@ -204,7 +206,7 @@ static int mb862xxfb_set_par(struct fb_info *fbi)

set_par. It's called from set_par.

Ok not going to think about this more.
-Daniel

>  
>  	dev_dbg(par->dev, "%s\n", __func__);
>  	if (par->type == BT_CORALP)
> -		mb862xxfb_init_accel(fbi, fbi->var.xres);
> +		mb862xxfb_init_accel(fbi, &mb862xxfb_ops, fbi->var.xres);
>  
>  	if (par->pre_init)
>  		return 0;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v3 03/12] video: fbdev: nvidia: modify the static fb_ops directly
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-03 16:54     ` Daniel Vetter
  -1 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:54 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:45PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/nvidia/nvidia.c | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
> index fbeeed5afe35..c583c018304d 100644
> --- a/drivers/video/fbdev/nvidia/nvidia.c
> +++ b/drivers/video/fbdev/nvidia/nvidia.c
> @@ -607,6 +607,8 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> +static struct fb_ops nvidia_fb_ops;

Ok this one is two independent flags, I'm not going to ask for a matrix.
Plus it's all in one file. Plus have you read the coding style used in
here. Plus ...

Well.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> +
>  static int nvidiafb_set_par(struct fb_info *info)
>  {
>  	struct nvidia_par *par = info->par;
> @@ -660,19 +662,19 @@ static int nvidiafb_set_par(struct fb_info *info)
>  	info->fix.line_length = (info->var.xres_virtual *
>  				 info->var.bits_per_pixel) >> 3;
>  	if (info->var.accel_flags) {
> -		info->fbops->fb_imageblit = nvidiafb_imageblit;
> -		info->fbops->fb_fillrect = nvidiafb_fillrect;
> -		info->fbops->fb_copyarea = nvidiafb_copyarea;
> -		info->fbops->fb_sync = nvidiafb_sync;
> +		nvidia_fb_ops.fb_imageblit = nvidiafb_imageblit;
> +		nvidia_fb_ops.fb_fillrect = nvidiafb_fillrect;
> +		nvidia_fb_ops.fb_copyarea = nvidiafb_copyarea;
> +		nvidia_fb_ops.fb_sync = nvidiafb_sync;
>  		info->pixmap.scan_align = 4;
>  		info->flags &= ~FBINFO_HWACCEL_DISABLED;
>  		info->flags |= FBINFO_READS_FAST;
>  		NVResetGraphics(info);
>  	} else {
> -		info->fbops->fb_imageblit = cfb_imageblit;
> -		info->fbops->fb_fillrect = cfb_fillrect;
> -		info->fbops->fb_copyarea = cfb_copyarea;
> -		info->fbops->fb_sync = NULL;
> +		nvidia_fb_ops.fb_imageblit = cfb_imageblit;
> +		nvidia_fb_ops.fb_fillrect = cfb_fillrect;
> +		nvidia_fb_ops.fb_copyarea = cfb_copyarea;
> +		nvidia_fb_ops.fb_sync = NULL;
>  		info->pixmap.scan_align = 1;
>  		info->flags |= FBINFO_HWACCEL_DISABLED;
>  		info->flags &= ~FBINFO_READS_FAST;
> @@ -1165,7 +1167,7 @@ static int nvidia_set_fbinfo(struct fb_info *info)
>  	info->pixmap.flags = FB_PIXMAP_SYSTEM;
>  
>  	if (!hwcur)
> -	    info->fbops->fb_cursor = NULL;
> +	    nvidia_fb_ops.fb_cursor = NULL;
>  
>  	info->var.accel_flags = (!noaccel);
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

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

* Re: [Intel-gfx] [PATCH v3 03/12] video: fbdev: nvidia: modify the static fb_ops directly
@ 2019-12-03 16:54     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:54 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:45PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/nvidia/nvidia.c | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
> index fbeeed5afe35..c583c018304d 100644
> --- a/drivers/video/fbdev/nvidia/nvidia.c
> +++ b/drivers/video/fbdev/nvidia/nvidia.c
> @@ -607,6 +607,8 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> +static struct fb_ops nvidia_fb_ops;

Ok this one is two independent flags, I'm not going to ask for a matrix.
Plus it's all in one file. Plus have you read the coding style used in
here. Plus ...

Well.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> +
>  static int nvidiafb_set_par(struct fb_info *info)
>  {
>  	struct nvidia_par *par = info->par;
> @@ -660,19 +662,19 @@ static int nvidiafb_set_par(struct fb_info *info)
>  	info->fix.line_length = (info->var.xres_virtual *
>  				 info->var.bits_per_pixel) >> 3;
>  	if (info->var.accel_flags) {
> -		info->fbops->fb_imageblit = nvidiafb_imageblit;
> -		info->fbops->fb_fillrect = nvidiafb_fillrect;
> -		info->fbops->fb_copyarea = nvidiafb_copyarea;
> -		info->fbops->fb_sync = nvidiafb_sync;
> +		nvidia_fb_ops.fb_imageblit = nvidiafb_imageblit;
> +		nvidia_fb_ops.fb_fillrect = nvidiafb_fillrect;
> +		nvidia_fb_ops.fb_copyarea = nvidiafb_copyarea;
> +		nvidia_fb_ops.fb_sync = nvidiafb_sync;
>  		info->pixmap.scan_align = 4;
>  		info->flags &= ~FBINFO_HWACCEL_DISABLED;
>  		info->flags |= FBINFO_READS_FAST;
>  		NVResetGraphics(info);
>  	} else {
> -		info->fbops->fb_imageblit = cfb_imageblit;
> -		info->fbops->fb_fillrect = cfb_fillrect;
> -		info->fbops->fb_copyarea = cfb_copyarea;
> -		info->fbops->fb_sync = NULL;
> +		nvidia_fb_ops.fb_imageblit = cfb_imageblit;
> +		nvidia_fb_ops.fb_fillrect = cfb_fillrect;
> +		nvidia_fb_ops.fb_copyarea = cfb_copyarea;
> +		nvidia_fb_ops.fb_sync = NULL;
>  		info->pixmap.scan_align = 1;
>  		info->flags |= FBINFO_HWACCEL_DISABLED;
>  		info->flags &= ~FBINFO_READS_FAST;
> @@ -1165,7 +1167,7 @@ static int nvidia_set_fbinfo(struct fb_info *info)
>  	info->pixmap.flags = FB_PIXMAP_SYSTEM;
>  
>  	if (!hwcur)
> -	    info->fbops->fb_cursor = NULL;
> +	    nvidia_fb_ops.fb_cursor = NULL;
>  
>  	info->var.accel_flags = (!noaccel);
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 03/12] video: fbdev: nvidia: modify the static fb_ops directly
@ 2019-12-03 16:54     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 16:54 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:45PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/nvidia/nvidia.c | 20 +++++++++++---------
>  1 file changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
> index fbeeed5afe35..c583c018304d 100644
> --- a/drivers/video/fbdev/nvidia/nvidia.c
> +++ b/drivers/video/fbdev/nvidia/nvidia.c
> @@ -607,6 +607,8 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> +static struct fb_ops nvidia_fb_ops;

Ok this one is two independent flags, I'm not going to ask for a matrix.
Plus it's all in one file. Plus have you read the coding style used in
here. Plus ...

Well.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> +
>  static int nvidiafb_set_par(struct fb_info *info)
>  {
>  	struct nvidia_par *par = info->par;
> @@ -660,19 +662,19 @@ static int nvidiafb_set_par(struct fb_info *info)
>  	info->fix.line_length = (info->var.xres_virtual *
>  				 info->var.bits_per_pixel) >> 3;
>  	if (info->var.accel_flags) {
> -		info->fbops->fb_imageblit = nvidiafb_imageblit;
> -		info->fbops->fb_fillrect = nvidiafb_fillrect;
> -		info->fbops->fb_copyarea = nvidiafb_copyarea;
> -		info->fbops->fb_sync = nvidiafb_sync;
> +		nvidia_fb_ops.fb_imageblit = nvidiafb_imageblit;
> +		nvidia_fb_ops.fb_fillrect = nvidiafb_fillrect;
> +		nvidia_fb_ops.fb_copyarea = nvidiafb_copyarea;
> +		nvidia_fb_ops.fb_sync = nvidiafb_sync;
>  		info->pixmap.scan_align = 4;
>  		info->flags &= ~FBINFO_HWACCEL_DISABLED;
>  		info->flags |= FBINFO_READS_FAST;
>  		NVResetGraphics(info);
>  	} else {
> -		info->fbops->fb_imageblit = cfb_imageblit;
> -		info->fbops->fb_fillrect = cfb_fillrect;
> -		info->fbops->fb_copyarea = cfb_copyarea;
> -		info->fbops->fb_sync = NULL;
> +		nvidia_fb_ops.fb_imageblit = cfb_imageblit;
> +		nvidia_fb_ops.fb_fillrect = cfb_fillrect;
> +		nvidia_fb_ops.fb_copyarea = cfb_copyarea;
> +		nvidia_fb_ops.fb_sync = NULL;
>  		info->pixmap.scan_align = 1;
>  		info->flags |= FBINFO_HWACCEL_DISABLED;
>  		info->flags &= ~FBINFO_READS_FAST;
> @@ -1165,7 +1167,7 @@ static int nvidia_set_fbinfo(struct fb_info *info)
>  	info->pixmap.flags = FB_PIXMAP_SYSTEM;
>  
>  	if (!hwcur)
> -	    info->fbops->fb_cursor = NULL;
> +	    nvidia_fb_ops.fb_cursor = NULL;
>  
>  	info->var.accel_flags = (!noaccel);
>  
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-03 17:03     ` Daniel Vetter
  -1 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 17:03 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:46PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/uvesafb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
> index 439565cae7ab..53d08d1b56f5 100644
> --- a/drivers/video/fbdev/uvesafb.c
> +++ b/drivers/video/fbdev/uvesafb.c
> @@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>  
>  	/* Disable blanking if the user requested so. */
>  	if (!blank)
> -		info->fbops->fb_blank = NULL;
> +		uvesafb_ops.fb_blank = NULL;
>  
>  	/*
>  	 * Find out how much IO memory is required for the mode with
> @@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>  			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
>  
>  	if (!par->ypan)
> -		info->fbops->fb_pan_display = NULL;
> +		uvesafb_ops.fb_pan_display = NULL;
>  }

I read code.

I cried.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Also, with more reading and more bad dreams I'll get about this, I'm
revising my take on patches 1&2 in this series. On those also

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

as-is.

Cheers, Daniel
>  
>  static void uvesafb_init_mtrr(struct fb_info *info)
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

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

* Re: [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
@ 2019-12-03 17:03     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 17:03 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:46PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/uvesafb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
> index 439565cae7ab..53d08d1b56f5 100644
> --- a/drivers/video/fbdev/uvesafb.c
> +++ b/drivers/video/fbdev/uvesafb.c
> @@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>  
>  	/* Disable blanking if the user requested so. */
>  	if (!blank)
> -		info->fbops->fb_blank = NULL;
> +		uvesafb_ops.fb_blank = NULL;
>  
>  	/*
>  	 * Find out how much IO memory is required for the mode with
> @@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>  			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
>  
>  	if (!par->ypan)
> -		info->fbops->fb_pan_display = NULL;
> +		uvesafb_ops.fb_pan_display = NULL;
>  }

I read code.

I cried.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Also, with more reading and more bad dreams I'll get about this, I'm
revising my take on patches 1&2 in this series. On those also

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

as-is.

Cheers, Daniel
>  
>  static void uvesafb_init_mtrr(struct fb_info *info)
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
@ 2019-12-03 17:03     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 17:03 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:46PM +0200, Jani Nikula wrote:
> Avoid modifying the fb_ops via info->fbops to let us make the pointer
> const in the future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/uvesafb.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
> index 439565cae7ab..53d08d1b56f5 100644
> --- a/drivers/video/fbdev/uvesafb.c
> +++ b/drivers/video/fbdev/uvesafb.c
> @@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>  
>  	/* Disable blanking if the user requested so. */
>  	if (!blank)
> -		info->fbops->fb_blank = NULL;
> +		uvesafb_ops.fb_blank = NULL;
>  
>  	/*
>  	 * Find out how much IO memory is required for the mode with
> @@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>  			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
>  
>  	if (!par->ypan)
> -		info->fbops->fb_pan_display = NULL;
> +		uvesafb_ops.fb_pan_display = NULL;
>  }

I read code.

I cried.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Also, with more reading and more bad dreams I'll get about this, I'm
revising my take on patches 1&2 in this series. On those also

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

as-is.

Cheers, Daniel
>  
>  static void uvesafb_init_mtrr(struct fb_info *info)
> -- 
> 2.20.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-03 17:09     ` Daniel Vetter
  -1 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 17:09 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:49PM +0200, Jani Nikula wrote:
> Use const for fb_ops to let us make the fbops struct const in the
> future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/intelfb/intelfb.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h
> index b54db05f028d..5de703902a21 100644
> --- a/drivers/video/fbdev/intelfb/intelfb.h
> +++ b/drivers/video/fbdev/intelfb/intelfb.h
> @@ -273,7 +273,7 @@ struct intelfb_vsync {
>  
>  struct intelfb_info {
>  	struct fb_info *info;
> -	struct fb_ops  *fbops;
> +	const struct fb_ops *fbops;

I think aside from a lone assignment in intelfb_pci_register this is
entirely unused. But I also think resistance is futile so

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  	struct pci_dev *pdev;
>  
>  	struct intelfb_hwstate save_state;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

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

* Re: [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops
@ 2019-12-03 17:09     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 17:09 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:49PM +0200, Jani Nikula wrote:
> Use const for fb_ops to let us make the fbops struct const in the
> future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/intelfb/intelfb.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h
> index b54db05f028d..5de703902a21 100644
> --- a/drivers/video/fbdev/intelfb/intelfb.h
> +++ b/drivers/video/fbdev/intelfb/intelfb.h
> @@ -273,7 +273,7 @@ struct intelfb_vsync {
>  
>  struct intelfb_info {
>  	struct fb_info *info;
> -	struct fb_ops  *fbops;
> +	const struct fb_ops *fbops;

I think aside from a lone assignment in intelfb_pci_register this is
entirely unused. But I also think resistance is futile so

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  	struct pci_dev *pdev;
>  
>  	struct intelfb_hwstate save_state;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops
@ 2019-12-03 17:09     ` Daniel Vetter
  0 siblings, 0 replies; 121+ messages in thread
From: Daniel Vetter @ 2019-12-03 17:09 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, Dec 03, 2019 at 06:38:49PM +0200, Jani Nikula wrote:
> Use const for fb_ops to let us make the fbops struct const in the
> future.
> 
> Cc: linux-fbdev@vger.kernel.org
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> ---
>  drivers/video/fbdev/intelfb/intelfb.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/fbdev/intelfb/intelfb.h b/drivers/video/fbdev/intelfb/intelfb.h
> index b54db05f028d..5de703902a21 100644
> --- a/drivers/video/fbdev/intelfb/intelfb.h
> +++ b/drivers/video/fbdev/intelfb/intelfb.h
> @@ -273,7 +273,7 @@ struct intelfb_vsync {
>  
>  struct intelfb_info {
>  	struct fb_info *info;
> -	struct fb_ops  *fbops;
> +	const struct fb_ops *fbops;

I think aside from a lone assignment in intelfb_pci_register this is
entirely unused. But I also think resistance is futile so

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

>  	struct pci_dev *pdev;
>  
>  	struct intelfb_hwstate save_state;
> -- 
> 2.20.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for video, drm, etc: constify fbops in struct fb_info (rev2)
  2019-12-03 16:38 ` Jani Nikula
                   ` (16 preceding siblings ...)
  (?)
@ 2019-12-03 19:50 ` Patchwork
  -1 siblings, 0 replies; 121+ messages in thread
From: Patchwork @ 2019-12-03 19:50 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: video, drm, etc: constify fbops in struct fb_info (rev2)
URL   : https://patchwork.freedesktop.org/series/70198/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5109f996a5c8 video: fbdev: atyfb: modify the static fb_ops directly
-:21: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#21: FILE: drivers/video/fbdev/aty/atyfb.h:344:
+extern int aty_init_cursor(struct fb_info *info, struct fb_ops *atyfb_ops);

total: 0 errors, 0 warnings, 1 checks, 44 lines checked
d1dd9ad23a85 video: fbdev: mb862xx: modify the static fb_ops directly
-:21: CHECK:AVOID_EXTERNS: extern prototypes should be avoided in .h files
#21: FILE: drivers/video/fbdev/mb862xx/mb862xxfb.h:92:
+extern void mb862xxfb_init_accel(struct fb_info *info, struct fb_ops *fbops, int xres);

total: 0 errors, 0 warnings, 1 checks, 56 lines checked
c9a3fc359d55 video: fbdev: nvidia: modify the static fb_ops directly
-:57: WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (8, 12)
#57: FILE: drivers/video/fbdev/nvidia/nvidia.c:1169:
 	if (!hwcur)
+	    nvidia_fb_ops.fb_cursor = NULL;

total: 0 errors, 1 warnings, 0 checks, 43 lines checked
045da6c271da video: fbdev: uvesafb: modify the static fb_ops directly
-:12: WARNING:BAD_SIGN_OFF: Duplicate signature
#12: 
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

total: 0 errors, 1 warnings, 0 checks, 16 lines checked
89a8b3ad953d video: fbdev: make fbops member of struct fb_info a const pointer
7db4d9e5a7ae drm: constify fb ops across all drivers
70ac7fa0dc3d video: fbdev: intelfb: use const pointer for fb_ops
aa0f9fd709a6 video: constify fb ops across all drivers
c37885d39521 HID: picoLCD: constify fb ops
d5cc24c141ca media: constify fb ops across all drivers
4700338b3b91 samples: vfio-mdev: constify fb ops
b4c9b961101f auxdisplay: constify fb ops

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✓ Fi.CI.BAT: success for video, drm, etc: constify fbops in struct fb_info (rev2)
  2019-12-03 16:38 ` Jani Nikula
                   ` (17 preceding siblings ...)
  (?)
@ 2019-12-03 20:12 ` Patchwork
  -1 siblings, 0 replies; 121+ messages in thread
From: Patchwork @ 2019-12-03 20:12 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: video, drm, etc: constify fbops in struct fb_info (rev2)
URL   : https://patchwork.freedesktop.org/series/70198/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7475 -> Patchwork_15565
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15565:

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_module_load@reload-with-fault-injection:
    - {fi-kbl-7560u}:     [DMESG-WARN][1] ([i915#710]) -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-kbl-7560u/igt@i915_module_load@reload-with-fault-injection.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-kbl-7560u/igt@i915_module_load@reload-with-fault-injection.html

  
Known issues
------------

  Here are the changes found in Patchwork_15565 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770:        [PASS][3] -> [DMESG-FAIL][4] ([i915#553])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-hsw-4770/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-hsw-4770/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][5] -> [FAIL][6] ([fdo#111096] / [i915#323])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@gem_exec_parallel@basic:
    - {fi-tgl-u}:         [INCOMPLETE][7] ([i915#476]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-tgl-u/igt@gem_exec_parallel@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-tgl-u/igt@gem_exec_parallel@basic.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-icl-y:           [INCOMPLETE][9] ([i915#140]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-icl-y/igt@gem_exec_suspend@basic-s3.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-icl-y/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_module_load@reload-no-display:
    - fi-skl-lmem:        [DMESG-WARN][11] ([i915#592]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-skl-lmem/igt@i915_module_load@reload-no-display.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-skl-lmem/igt@i915_module_load@reload-no-display.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [DMESG-FAIL][13] ([i915#683]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-hsw-peppy:       [INCOMPLETE][15] ([i915#694]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html

  * igt@i915_selftest@live_hangcheck:
    - fi-icl-u3:          [INCOMPLETE][17] ([fdo#108569] / [i915#140]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-icl-u3/igt@i915_selftest@live_hangcheck.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-icl-u3/igt@i915_selftest@live_hangcheck.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          [FAIL][19] ([i915#49]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html

  
#### Warnings ####

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][21] ([i915#62] / [i915#92]) -> [DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) +8 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - fi-kbl-x1275:       [DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][24] ([i915#62] / [i915#92]) +4 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#476]: https://gitlab.freedesktop.org/drm/intel/issues/476
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#592]: https://gitlab.freedesktop.org/drm/intel/issues/592
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#683]: https://gitlab.freedesktop.org/drm/intel/issues/683
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#710]: https://gitlab.freedesktop.org/drm/intel/issues/710
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (51 -> 46)
------------------------------

  Missing    (5): fi-ilk-m540 fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7475 -> Patchwork_15565

  CI-20190529: 20190529
  CI_DRM_7475: cb30ed97a3642a5995a310564fb46a7150e7ab9e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5323: b0f877d06a78b9c38ed246be2537a0453b6c214f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15565: b4c9b961101f03bfd2c45a785deb5544ff0e0464 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

b4c9b961101f auxdisplay: constify fb ops
4700338b3b91 samples: vfio-mdev: constify fb ops
d5cc24c141ca media: constify fb ops across all drivers
c37885d39521 HID: picoLCD: constify fb ops
aa0f9fd709a6 video: constify fb ops across all drivers
70ac7fa0dc3d video: fbdev: intelfb: use const pointer for fb_ops
7db4d9e5a7ae drm: constify fb ops across all drivers
89a8b3ad953d video: fbdev: make fbops member of struct fb_info a const pointer
045da6c271da video: fbdev: uvesafb: modify the static fb_ops directly
c9a3fc359d55 video: fbdev: nvidia: modify the static fb_ops directly
d1dd9ad23a85 video: fbdev: mb862xx: modify the static fb_ops directly
5109f996a5c8 video: fbdev: atyfb: modify the static fb_ops directly

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [Intel-gfx] ✗ Fi.CI.IGT: failure for video, drm, etc: constify fbops in struct fb_info (rev2)
  2019-12-03 16:38 ` Jani Nikula
                   ` (18 preceding siblings ...)
  (?)
@ 2019-12-04  5:41 ` Patchwork
  -1 siblings, 0 replies; 121+ messages in thread
From: Patchwork @ 2019-12-04  5:41 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx

== Series Details ==

Series: video, drm, etc: constify fbops in struct fb_info (rev2)
URL   : https://patchwork.freedesktop.org/series/70198/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7475_full -> Patchwork_15565_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_15565_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_15565_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_15565_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_draw_crc@draw-method-rgb565-render-xtiled:
    - shard-skl:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl10/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl9/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html

  
Known issues
------------

  Here are the changes found in Patchwork_15565_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_persistence@vcs1-hostile:
    - shard-iclb:         [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@gem_ctx_persistence@vcs1-hostile.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb3/igt@gem_ctx_persistence@vcs1-hostile.html

  * igt@gem_exec_parallel@vcs1-fds:
    - shard-iclb:         [PASS][5] -> [SKIP][6] ([fdo#112080]) +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb1/igt@gem_exec_parallel@vcs1-fds.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb5/igt@gem_exec_parallel@vcs1-fds.html

  * igt@gem_exec_parallel@vecs0-contexts:
    - shard-hsw:          [PASS][7] -> [TIMEOUT][8] ([i915#676])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-hsw5/igt@gem_exec_parallel@vecs0-contexts.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-hsw2/igt@gem_exec_parallel@vecs0-contexts.html

  * igt@gem_exec_parallel@vecs0-fds:
    - shard-hsw:          [PASS][9] -> [FAIL][10] ([i915#676]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-hsw1/igt@gem_exec_parallel@vecs0-fds.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-hsw1/igt@gem_exec_parallel@vecs0-fds.html

  * igt@gem_exec_schedule@out-order-bsd1:
    - shard-iclb:         [PASS][11] -> [SKIP][12] ([fdo#109276]) +4 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@gem_exec_schedule@out-order-bsd1.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb3/igt@gem_exec_schedule@out-order-bsd1.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [PASS][13] -> [SKIP][14] ([fdo#112146]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb6/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb1/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@gem_exec_schedule@smoketest-all:
    - shard-tglb:         [PASS][15] -> [INCOMPLETE][16] ([i915#463])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb3/igt@gem_exec_schedule@smoketest-all.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb6/igt@gem_exec_schedule@smoketest-all.html

  * igt@gem_persistent_relocs@forked-thrash-inactive:
    - shard-hsw:          [PASS][17] -> [INCOMPLETE][18] ([i915#530] / [i915#61])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-hsw2/igt@gem_persistent_relocs@forked-thrash-inactive.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-hsw6/igt@gem_persistent_relocs@forked-thrash-inactive.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-iclb:         [PASS][19] -> [FAIL][20] ([i915#644])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb2/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_sync@basic-store-each:
    - shard-tglb:         [PASS][21] -> [INCOMPLETE][22] ([i915#435] / [i915#472])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb5/igt@gem_sync@basic-store-each.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb4/igt@gem_sync@basic-store-each.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-snb:          [PASS][23] -> [DMESG-WARN][24] ([fdo#111870])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-snb5/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@i915_suspend@forcewake:
    - shard-apl:          [PASS][25] -> [DMESG-WARN][26] ([i915#180])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-apl4/igt@i915_suspend@forcewake.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-apl1/igt@i915_suspend@forcewake.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [PASS][27] -> [INCOMPLETE][28] ([i915#456] / [i915#460])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb6/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb3/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-offscreen:
    - shard-iclb:         [PASS][29] -> [DMESG-WARN][30] ([IGT#6] / [i915#435])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@kms_cursor_crc@pipe-c-cursor-128x128-offscreen.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb3/igt@kms_cursor_crc@pipe-c-cursor-128x128-offscreen.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-render-xtiled:
    - shard-iclb:         [PASS][31] -> [INCOMPLETE][32] ([i915#140])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb1/igt@kms_draw_crc@draw-method-xrgb2101010-render-xtiled.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb5/igt@kms_draw_crc@draw-method-xrgb2101010-render-xtiled.html

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
    - shard-hsw:          [PASS][33] -> [DMESG-WARN][34] ([i915#44])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-hsw5/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-hsw5/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-skl:          [PASS][35] -> [FAIL][36] ([i915#79])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl2/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl10/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip_tiling@flip-to-y-tiled:
    - shard-iclb:         [PASS][37] -> [FAIL][38] ([fdo#107931] / [i915#167])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb3/igt@kms_flip_tiling@flip-to-y-tiled.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb3/igt@kms_flip_tiling@flip-to-y-tiled.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw:
    - shard-tglb:         [PASS][39] -> [FAIL][40] ([i915#49]) +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
    - shard-iclb:         [PASS][41] -> [FAIL][42] ([i915#49]) +6 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-kbl:          [PASS][43] -> [INCOMPLETE][44] ([fdo#103665])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-kbl6/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-kbl2/igt@kms_plane@pixel-format-pipe-a-planes-source-clamping.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min:
    - shard-skl:          [PASS][45] -> [FAIL][46] ([fdo#108145])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl5/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-min.html

  * igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
    - shard-skl:          [PASS][47] -> [FAIL][48] ([fdo#108145] / [i915#265])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl7/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [PASS][49] -> [SKIP][50] ([fdo#109441]) +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb1/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_setmode@basic:
    - shard-apl:          [PASS][51] -> [FAIL][52] ([i915#31])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-apl3/igt@kms_setmode@basic.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-apl2/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [PASS][53] -> [DMESG-WARN][54] ([i915#180]) +2 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-kbl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-kbl3/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_busy@busy-vcs1:
    - shard-iclb:         [SKIP][55] ([fdo#112080]) -> [PASS][56] +8 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb6/igt@gem_busy@busy-vcs1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb2/igt@gem_busy@busy-vcs1.html

  * igt@gem_ctx_isolation@vcs1-none:
    - shard-iclb:         [SKIP][57] ([fdo#109276] / [fdo#112080]) -> [PASS][58] +4 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb6/igt@gem_ctx_isolation@vcs1-none.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb2/igt@gem_ctx_isolation@vcs1-none.html

  * {igt@gem_exec_schedule@pi-userfault-bsd}:
    - shard-iclb:         [SKIP][59] ([i915#677]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@gem_exec_schedule@pi-userfault-bsd.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb3/igt@gem_exec_schedule@pi-userfault-bsd.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [SKIP][61] ([fdo#112146]) -> [PASS][62] +7 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb3/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [FAIL][63] ([i915#644]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-glk5/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-glk6/igt@gem_ppgtt@flink-and-close-vma-leak.html
    - shard-apl:          [FAIL][65] ([i915#644]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-apl3/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-apl2/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_workarounds@suspend-resume:
    - shard-skl:          [INCOMPLETE][67] ([i915#69]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl10/igt@gem_workarounds@suspend-resume.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl9/igt@gem_workarounds@suspend-resume.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-kbl:          [DMESG-WARN][69] ([i915#180]) -> [PASS][70] +4 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-kbl3/igt@gem_workarounds@suspend-resume-fd.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-kbl6/igt@gem_workarounds@suspend-resume-fd.html

  * igt@i915_selftest@live_blt:
    - shard-hsw:          [DMESG-FAIL][71] ([i915#563]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-hsw5/igt@i915_selftest@live_blt.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-hsw2/igt@i915_selftest@live_blt.html

  * igt@i915_suspend@debugfs-reader:
    - shard-tglb:         [INCOMPLETE][73] ([i915#456] / [i915#460]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb1/igt@i915_suspend@debugfs-reader.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb5/igt@i915_suspend@debugfs-reader.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-180:
    - shard-kbl:          [INCOMPLETE][75] ([fdo#103665]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-kbl6/igt@kms_big_fb@x-tiled-16bpp-rotate-180.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-kbl2/igt@kms_big_fb@x-tiled-16bpp-rotate-180.html

  * igt@kms_color@pipe-a-ctm-0-75:
    - shard-skl:          [DMESG-WARN][77] ([i915#109]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl10/igt@kms_color@pipe-a-ctm-0-75.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl9/igt@kms_color@pipe-a-ctm-0-75.html

  * igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding:
    - shard-hsw:          [DMESG-WARN][79] ([IGT#6]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-hsw6/igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-hsw4/igt@kms_cursor_crc@pipe-b-cursor-128x128-sliding.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-skl:          [INCOMPLETE][81] ([i915#300]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl9/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-tglb:         [INCOMPLETE][83] ([i915#435] / [i915#456] / [i915#460]) -> [PASS][84]
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb1/igt@kms_fbcon_fbt@fbc-suspend.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb9/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-apl:          [DMESG-WARN][85] ([i915#180]) -> [PASS][86] +2 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-apl8/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt:
    - shard-iclb:         [FAIL][87] ([i915#49]) -> [PASS][88] +3 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu:
    - shard-iclb:         [INCOMPLETE][89] ([i915#123] / [i915#140]) -> [PASS][90]
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-suspend:
    - shard-tglb:         [INCOMPLETE][91] ([i915#456] / [i915#460] / [i915#474]) -> [PASS][92]
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-tglb2/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-tglb9/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html

  * igt@kms_plane@pixel-format-pipe-b-planes-source-clamping:
    - shard-skl:          [INCOMPLETE][93] ([fdo#112347] / [i915#648]) -> [PASS][94]
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl3/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl3/igt@kms_plane@pixel-format-pipe-b-planes-source-clamping.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:
    - shard-skl:          [FAIL][95] ([fdo#108145]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl2/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl7/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [SKIP][97] ([fdo#109441]) -> [PASS][98] +2 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb4/igt@kms_psr@psr2_primary_mmap_cpu.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [SKIP][99] ([fdo#109276]) -> [PASS][100] +19 similar issues
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb3/igt@prime_vgem@fence-wait-bsd2.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb1/igt@prime_vgem@fence-wait-bsd2.html

  
#### Warnings ####

  * igt@gem_ctx_isolation@vcs1-nonpriv:
    - shard-iclb:         [SKIP][101] ([fdo#109276] / [fdo#112080]) -> [FAIL][102] ([IGT#28])
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-iclb6/igt@gem_ctx_isolation@vcs1-nonpriv.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-iclb1/igt@gem_ctx_isolation@vcs1-nonpriv.html

  * igt@kms_plane@pixel-format-pipe-b-planes:
    - shard-skl:          [INCOMPLETE][103] ([fdo#112347] / [i915#648]) -> [INCOMPLETE][104] ([fdo#112391] / [i915#648])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7475/shard-skl5/igt@kms_plane@pixel-format-pipe-b-planes.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/shard-skl10/igt@kms_plane@pixel-format-pipe-b-planes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [IGT#28]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/28
  [IGT#6]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/6
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#107931]: https://bugs.freedesktop.org/show_bug.cgi?id=107931
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112347]: https://bugs.freedesktop.org/show_bug.cgi?id=112347
  [fdo#112391]: https://bugs.freedesktop.org/show_bug.cgi?id=112391
  [i915#109]: https://gitlab.freedesktop.org/drm/intel/issues/109
  [i915#123]: https://gitlab.freedesktop.org/drm/intel/issues/123
  [i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
  [i915#167]: https://gitlab.freedesktop.org/drm/intel/issues/167
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#300]: https://gitlab.freedesktop.org/drm/intel/issues/300
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#435]: https://gitlab.freedesktop.org/drm/intel/issues/435
  [i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#460]: https://gitlab.freedesktop.org/drm/intel/issues/460
  [i915#463]: https://gitlab.freedesktop.org/drm/intel/issues/463
  [i915#472]: https://gitlab.freedesktop.org/drm/intel/issues/472
  [i915#474]: https://gitlab.freedesktop.org/drm/intel/issues/474
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
  [i915#563]: https://gitlab.freedesktop.org/drm/intel/issues/563
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#648]: https://gitlab.freedesktop.org/drm/intel/issues/648
  [i915#676]: https://gitlab.freedesktop.org/drm/intel/issues/676
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#69]: https://gitlab.freedesktop.org/drm/intel/issues/69
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79


Participating hosts (11 -> 11)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7475 -> Patchwork_15565

  CI-20190529: 20190529
  CI_DRM_7475: cb30ed97a3642a5995a310564fb46a7150e7ab9e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5323: b0f877d06a78b9c38ed246be2537a0453b6c214f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_15565: b4c9b961101f03bfd2c45a785deb5544ff0e0464 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_15565/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
  2019-12-03 17:03     ` Daniel Vetter
  (?)
@ 2019-12-04  6:31       ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-04  6:31 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, 03 Dec 2019, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Dec 03, 2019 at 06:38:46PM +0200, Jani Nikula wrote:
>> Avoid modifying the fb_ops via info->fbops to let us make the pointer
>> const in the future.
>> 
>> Cc: linux-fbdev@vger.kernel.org
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/video/fbdev/uvesafb.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
>> index 439565cae7ab..53d08d1b56f5 100644
>> --- a/drivers/video/fbdev/uvesafb.c
>> +++ b/drivers/video/fbdev/uvesafb.c
>> @@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>>  
>>  	/* Disable blanking if the user requested so. */
>>  	if (!blank)
>> -		info->fbops->fb_blank = NULL;
>> +		uvesafb_ops.fb_blank = NULL;
>>  
>>  	/*
>>  	 * Find out how much IO memory is required for the mode with
>> @@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>>  			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
>>  
>>  	if (!par->ypan)
>> -		info->fbops->fb_pan_display = NULL;
>> +		uvesafb_ops.fb_pan_display = NULL;
>>  }
>
> I read code.
>
> I cried.
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> Also, with more reading and more bad dreams I'll get about this, I'm
> revising my take on patches 1&2 in this series. On those also
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> as-is.

Thanks. I feel you.

And remember, all I ever wanted to do was

-static struct fb_ops intelfb_ops = {
+static const struct fb_ops intelfb_ops = {

in drivers/gpu/drm/i915/display/intel_fbdev.c.


BR,
Jani.


>
> Cheers, Daniel
>>  
>>  static void uvesafb_init_mtrr(struct fb_info *info)
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
@ 2019-12-04  6:31       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-04  6:31 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, 03 Dec 2019, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Dec 03, 2019 at 06:38:46PM +0200, Jani Nikula wrote:
>> Avoid modifying the fb_ops via info->fbops to let us make the pointer
>> const in the future.
>> 
>> Cc: linux-fbdev@vger.kernel.org
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/video/fbdev/uvesafb.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
>> index 439565cae7ab..53d08d1b56f5 100644
>> --- a/drivers/video/fbdev/uvesafb.c
>> +++ b/drivers/video/fbdev/uvesafb.c
>> @@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>>  
>>  	/* Disable blanking if the user requested so. */
>>  	if (!blank)
>> -		info->fbops->fb_blank = NULL;
>> +		uvesafb_ops.fb_blank = NULL;
>>  
>>  	/*
>>  	 * Find out how much IO memory is required for the mode with
>> @@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>>  			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
>>  
>>  	if (!par->ypan)
>> -		info->fbops->fb_pan_display = NULL;
>> +		uvesafb_ops.fb_pan_display = NULL;
>>  }
>
> I read code.
>
> I cried.
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> Also, with more reading and more bad dreams I'll get about this, I'm
> revising my take on patches 1&2 in this series. On those also
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> as-is.

Thanks. I feel you.

And remember, all I ever wanted to do was

-static struct fb_ops intelfb_ops = {
+static const struct fb_ops intelfb_ops = {

in drivers/gpu/drm/i915/display/intel_fbdev.c.


BR,
Jani.


>
> Cheers, Daniel
>>  
>>  static void uvesafb_init_mtrr(struct fb_info *info)
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 04/12] video: fbdev: uvesafb: modify the static fb_ops directly
@ 2019-12-04  6:31       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-04  6:31 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: linux-fbdev, intel-gfx, dri-devel

On Tue, 03 Dec 2019, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Tue, Dec 03, 2019 at 06:38:46PM +0200, Jani Nikula wrote:
>> Avoid modifying the fb_ops via info->fbops to let us make the pointer
>> const in the future.
>> 
>> Cc: linux-fbdev@vger.kernel.org
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> ---
>>  drivers/video/fbdev/uvesafb.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
>> index 439565cae7ab..53d08d1b56f5 100644
>> --- a/drivers/video/fbdev/uvesafb.c
>> +++ b/drivers/video/fbdev/uvesafb.c
>> @@ -1440,7 +1440,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>>  
>>  	/* Disable blanking if the user requested so. */
>>  	if (!blank)
>> -		info->fbops->fb_blank = NULL;
>> +		uvesafb_ops.fb_blank = NULL;
>>  
>>  	/*
>>  	 * Find out how much IO memory is required for the mode with
>> @@ -1510,7 +1510,7 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
>>  			(par->ypan ? FBINFO_HWACCEL_YPAN : 0);
>>  
>>  	if (!par->ypan)
>> -		info->fbops->fb_pan_display = NULL;
>> +		uvesafb_ops.fb_pan_display = NULL;
>>  }
>
> I read code.
>
> I cried.
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> Also, with more reading and more bad dreams I'll get about this, I'm
> revising my take on patches 1&2 in this series. On those also
>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> as-is.

Thanks. I feel you.

And remember, all I ever wanted to do was

-static struct fb_ops intelfb_ops = {
+static const struct fb_ops intelfb_ops = {

in drivers/gpu/drm/i915/display/intel_fbdev.c.


BR,
Jani.


>
> Cheers, Daniel
>>  
>>  static void uvesafb_init_mtrr(struct fb_info *info)
>> -- 
>> 2.20.1
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
  2019-12-03 16:38   ` Jani Nikula
  (?)
  (?)
@ 2019-12-04 11:33     ` Sakari Ailus
  -1 siblings, 0 replies; 121+ messages in thread
From: Sakari Ailus @ 2019-12-04 11:33 UTC (permalink / raw)
  To: Jani Nikula
  Cc: dri-devel, linux-fbdev, intel-gfx, Hans Verkuil, Andy Walls,
	linux-media, ivtv-devel, Daniel Vetter

On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Sakari Ailus

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-04 11:33     ` Sakari Ailus
  0 siblings, 0 replies; 121+ messages in thread
From: Sakari Ailus @ 2019-12-04 11:33 UTC (permalink / raw)
  To: Jani Nikula
  Cc: linux-fbdev, Andy Walls, Daniel Vetter, intel-gfx, dri-devel,
	Hans Verkuil, ivtv-devel, linux-media

On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Sakari Ailus

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-04 11:33     ` Sakari Ailus
  0 siblings, 0 replies; 121+ messages in thread
From: Sakari Ailus @ 2019-12-04 11:33 UTC (permalink / raw)
  To: Jani Nikula
  Cc: linux-fbdev, Andy Walls, Daniel Vetter, intel-gfx, dri-devel,
	Hans Verkuil, ivtv-devel, linux-media

On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Sakari Ailus
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-04 11:33     ` Sakari Ailus
  0 siblings, 0 replies; 121+ messages in thread
From: Sakari Ailus @ 2019-12-04 11:33 UTC (permalink / raw)
  To: Jani Nikula
  Cc: linux-fbdev, Andy Walls, Daniel Vetter, intel-gfx, dri-devel,
	Hans Verkuil, ivtv-devel, linux-media

On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

-- 
Sakari Ailus
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
  2019-12-03 16:38   ` Jani Nikula
  (?)
  (?)
@ 2019-12-05  0:12     ` kbuild test robot
  -1 siblings, 0 replies; 121+ messages in thread
From: kbuild test robot @ 2019-12-05  0:12 UTC (permalink / raw)
  To: Jani Nikula; +Cc: linux-fbdev, kbuild-all, Daniel Vetter, intel-gfx, dri-devel

[-- Attachment #1: Type: text/plain, Size: 4800 bytes --]

Hi Jani,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to drm-exynos/exynos-drm-next linus/master v5.4 v5.4-rc8 v5.4-rc7 next-20191203 v5.4 next-20191203]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Jani-Nikula/video-drm-etc-constify-fbops-in-struct-fb_info/20191204-055320
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/video/fbdev/udlfb.c: In function 'dlfb_ops_release':
>> drivers/video/fbdev/udlfb.c:1040:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = dlfb_ops_mmap;
                           ^
--
   drivers/video/fbdev/smscufx.c: In function 'ufx_ops_release':
>> drivers/video/fbdev/smscufx.c:1173:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = ufx_ops_mmap;
                           ^
--
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_init':
>> drivers/video/fbdev/core/fb_defio.c:209:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = fb_deferred_io_mmap;
                          ^
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_cleanup':
   drivers/video/fbdev/core/fb_defio.c:240:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = NULL;
                          ^

vim +/fb_mmap +1040 drivers/video/fbdev/udlfb.c

33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1026  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1027  /*
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1028   * Assumes caller is holding info->lock mutex (for open and release at least)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1029   */
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1030  static int dlfb_ops_release(struct fb_info *info, int user)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1031  {
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1032  	struct dlfb_data *dlfb = info->par;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1033  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1034  	dlfb->fb_count--;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1035  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1036  	if ((dlfb->fb_count == 0) && (info->fbdefio)) {
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1037  		fb_deferred_io_cleanup(info);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1038  		kfree(info->fbdefio);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1039  		info->fbdefio = NULL;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05 @1040  		info->fbops->fb_mmap = dlfb_ops_mmap;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1041  	}
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1042  
5865889fe43194 drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-16  1043  	dev_dbg(info->dev, "release, user=%d count=%d\n", user, dlfb->fb_count);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1044  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1045  	return 0;
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1046  }
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1047  

:::::: The code at line 1040 was first introduced by commit
:::::: 33077b8d3042e01da61924973e372abe589ba297 staging: udlfb: revamp reference handling to insure successful shutdown

:::::: TO: Bernie Thompson <bernie@plugable.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51381 bytes --]

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

* Re: [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
@ 2019-12-05  0:12     ` kbuild test robot
  0 siblings, 0 replies; 121+ messages in thread
From: kbuild test robot @ 2019-12-05  0:12 UTC (permalink / raw)
  To: Jani Nikula
  Cc: linux-fbdev, kbuild-all, jani.nikula, Daniel Vetter, intel-gfx,
	dri-devel

[-- Attachment #1: Type: text/plain, Size: 4800 bytes --]

Hi Jani,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to drm-exynos/exynos-drm-next linus/master v5.4 v5.4-rc8 v5.4-rc7 next-20191203 v5.4 next-20191203]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Jani-Nikula/video-drm-etc-constify-fbops-in-struct-fb_info/20191204-055320
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/video/fbdev/udlfb.c: In function 'dlfb_ops_release':
>> drivers/video/fbdev/udlfb.c:1040:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = dlfb_ops_mmap;
                           ^
--
   drivers/video/fbdev/smscufx.c: In function 'ufx_ops_release':
>> drivers/video/fbdev/smscufx.c:1173:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = ufx_ops_mmap;
                           ^
--
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_init':
>> drivers/video/fbdev/core/fb_defio.c:209:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = fb_deferred_io_mmap;
                          ^
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_cleanup':
   drivers/video/fbdev/core/fb_defio.c:240:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = NULL;
                          ^

vim +/fb_mmap +1040 drivers/video/fbdev/udlfb.c

33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1026  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1027  /*
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1028   * Assumes caller is holding info->lock mutex (for open and release at least)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1029   */
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1030  static int dlfb_ops_release(struct fb_info *info, int user)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1031  {
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1032  	struct dlfb_data *dlfb = info->par;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1033  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1034  	dlfb->fb_count--;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1035  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1036  	if ((dlfb->fb_count == 0) && (info->fbdefio)) {
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1037  		fb_deferred_io_cleanup(info);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1038  		kfree(info->fbdefio);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1039  		info->fbdefio = NULL;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05 @1040  		info->fbops->fb_mmap = dlfb_ops_mmap;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1041  	}
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1042  
5865889fe43194 drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-16  1043  	dev_dbg(info->dev, "release, user=%d count=%d\n", user, dlfb->fb_count);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1044  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1045  	return 0;
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1046  }
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1047  

:::::: The code at line 1040 was first introduced by commit
:::::: 33077b8d3042e01da61924973e372abe589ba297 staging: udlfb: revamp reference handling to insure successful shutdown

:::::: TO: Bernie Thompson <bernie@plugable.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51381 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
@ 2019-12-05  0:12     ` kbuild test robot
  0 siblings, 0 replies; 121+ messages in thread
From: kbuild test robot @ 2019-12-05  0:12 UTC (permalink / raw)
  To: Jani Nikula
  Cc: linux-fbdev, kbuild-all, jani.nikula, Daniel Vetter, intel-gfx,
	dri-devel

[-- Attachment #1: Type: text/plain, Size: 4800 bytes --]

Hi Jani,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to drm-exynos/exynos-drm-next linus/master v5.4 v5.4-rc8 v5.4-rc7 next-20191203 v5.4 next-20191203]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Jani-Nikula/video-drm-etc-constify-fbops-in-struct-fb_info/20191204-055320
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/video/fbdev/udlfb.c: In function 'dlfb_ops_release':
>> drivers/video/fbdev/udlfb.c:1040:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = dlfb_ops_mmap;
                           ^
--
   drivers/video/fbdev/smscufx.c: In function 'ufx_ops_release':
>> drivers/video/fbdev/smscufx.c:1173:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = ufx_ops_mmap;
                           ^
--
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_init':
>> drivers/video/fbdev/core/fb_defio.c:209:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = fb_deferred_io_mmap;
                          ^
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_cleanup':
   drivers/video/fbdev/core/fb_defio.c:240:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = NULL;
                          ^

vim +/fb_mmap +1040 drivers/video/fbdev/udlfb.c

33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1026  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1027  /*
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1028   * Assumes caller is holding info->lock mutex (for open and release at least)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1029   */
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1030  static int dlfb_ops_release(struct fb_info *info, int user)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1031  {
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1032  	struct dlfb_data *dlfb = info->par;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1033  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1034  	dlfb->fb_count--;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1035  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1036  	if ((dlfb->fb_count == 0) && (info->fbdefio)) {
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1037  		fb_deferred_io_cleanup(info);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1038  		kfree(info->fbdefio);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1039  		info->fbdefio = NULL;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05 @1040  		info->fbops->fb_mmap = dlfb_ops_mmap;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1041  	}
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1042  
5865889fe43194 drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-16  1043  	dev_dbg(info->dev, "release, user=%d count=%d\n", user, dlfb->fb_count);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1044  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1045  	return 0;
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1046  }
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1047  

:::::: The code at line 1040 was first introduced by commit
:::::: 33077b8d3042e01da61924973e372abe589ba297 staging: udlfb: revamp reference handling to insure successful shutdown

:::::: TO: Bernie Thompson <bernie@plugable.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 51381 bytes --]

[-- Attachment #3: Type: text/plain, Size: 159 bytes --]

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
@ 2019-12-05  0:12     ` kbuild test robot
  0 siblings, 0 replies; 121+ messages in thread
From: kbuild test robot @ 2019-12-05  0:12 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 4880 bytes --]

Hi Jani,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[cannot apply to drm-exynos/exynos-drm-next linus/master v5.4 v5.4-rc8 v5.4-rc7 next-20191203 v5.4 next-20191203]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Jani-Nikula/video-drm-etc-constify-fbops-in-struct-fb_info/20191204-055320
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/video/fbdev/udlfb.c: In function 'dlfb_ops_release':
>> drivers/video/fbdev/udlfb.c:1040:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = dlfb_ops_mmap;
                           ^
--
   drivers/video/fbdev/smscufx.c: In function 'ufx_ops_release':
>> drivers/video/fbdev/smscufx.c:1173:24: error: assignment of member 'fb_mmap' in read-only object
      info->fbops->fb_mmap = ufx_ops_mmap;
                           ^
--
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_init':
>> drivers/video/fbdev/core/fb_defio.c:209:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = fb_deferred_io_mmap;
                          ^
   drivers/video/fbdev/core/fb_defio.c: In function 'fb_deferred_io_cleanup':
   drivers/video/fbdev/core/fb_defio.c:240:23: error: assignment of member 'fb_mmap' in read-only object
     info->fbops->fb_mmap = NULL;
                          ^

vim +/fb_mmap +1040 drivers/video/fbdev/udlfb.c

33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1026  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1027  /*
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1028   * Assumes caller is holding info->lock mutex (for open and release at least)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1029   */
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1030  static int dlfb_ops_release(struct fb_info *info, int user)
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1031  {
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1032  	struct dlfb_data *dlfb = info->par;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1033  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1034  	dlfb->fb_count--;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1035  
7ea46206d1706b drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-15  1036  	if ((dlfb->fb_count == 0) && (info->fbdefio)) {
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1037  		fb_deferred_io_cleanup(info);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1038  		kfree(info->fbdefio);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1039  		info->fbdefio = NULL;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05 @1040  		info->fbops->fb_mmap = dlfb_ops_mmap;
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1041  	}
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1042  
5865889fe43194 drivers/video/fbdev/udlfb.c   Ladislav Michl  2018-01-16  1043  	dev_dbg(info->dev, "release, user=%d count=%d\n", user, dlfb->fb_count);
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1044  
33077b8d3042e0 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-09-05  1045  	return 0;
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1046  }
2469d5dbcafe06 drivers/staging/udlfb/udlfb.c Bernie Thompson 2010-02-15  1047  

:::::: The code at line 1040 was first introduced by commit
:::::: 33077b8d3042e01da61924973e372abe589ba297 staging: udlfb: revamp reference handling to insure successful shutdown

:::::: TO: Bernie Thompson <bernie@plugable.com>
:::::: CC: Greg Kroah-Hartman <gregkh@suse.de>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 51381 bytes --]

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

* Re: [Intel-gfx] [PATCH v3 08/12] video: constify fb ops across all drivers
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-05  9:37     ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:37 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> This does not cover all drivers; some actually modify the fbops struct,
> for example to adjust for different configurations, and others do more
> involved things that I'd rather not touch in practically obsolete
> drivers. Mostly this is the low hanging fruit where we can add "const"
> and be done with it.
>
> v3:
> - un-constify atyfb, mb862xx, nvidia and uvesabf (0day)
>
> v2:
> - fix typo (Christophe de Dinechin)
> - use "static const" instead of "const static" in mx3fb.c
> - also constify smscufx.c
>
> Cc: linux-fbdev@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed up to and including this patch to drm-misc-next, thanks for the
reviews and acks.

BR,
Jani.

> ---
>  drivers/video/fbdev/68328fb.c                  | 2 +-
>  drivers/video/fbdev/acornfb.c                  | 2 +-
>  drivers/video/fbdev/amba-clcd.c                | 2 +-
>  drivers/video/fbdev/amifb.c                    | 2 +-
>  drivers/video/fbdev/arcfb.c                    | 2 +-
>  drivers/video/fbdev/arkfb.c                    | 2 +-
>  drivers/video/fbdev/asiliantfb.c               | 2 +-
>  drivers/video/fbdev/atmel_lcdfb.c              | 2 +-
>  drivers/video/fbdev/aty/aty128fb.c             | 2 +-
>  drivers/video/fbdev/aty/radeon_base.c          | 2 +-
>  drivers/video/fbdev/au1100fb.c                 | 2 +-
>  drivers/video/fbdev/au1200fb.c                 | 2 +-
>  drivers/video/fbdev/broadsheetfb.c             | 2 +-
>  drivers/video/fbdev/bw2.c                      | 2 +-
>  drivers/video/fbdev/carminefb.c                | 2 +-
>  drivers/video/fbdev/cg14.c                     | 2 +-
>  drivers/video/fbdev/cg3.c                      | 2 +-
>  drivers/video/fbdev/cg6.c                      | 2 +-
>  drivers/video/fbdev/chipsfb.c                  | 2 +-
>  drivers/video/fbdev/cirrusfb.c                 | 2 +-
>  drivers/video/fbdev/clps711x-fb.c              | 2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c             | 2 +-
>  drivers/video/fbdev/controlfb.c                | 2 +-
>  drivers/video/fbdev/cyber2000fb.c              | 2 +-
>  drivers/video/fbdev/da8xx-fb.c                 | 2 +-
>  drivers/video/fbdev/dnfb.c                     | 2 +-
>  drivers/video/fbdev/efifb.c                    | 2 +-
>  drivers/video/fbdev/ep93xx-fb.c                | 2 +-
>  drivers/video/fbdev/fb-puv3.c                  | 2 +-
>  drivers/video/fbdev/ffb.c                      | 2 +-
>  drivers/video/fbdev/fm2fb.c                    | 2 +-
>  drivers/video/fbdev/fsl-diu-fb.c               | 2 +-
>  drivers/video/fbdev/g364fb.c                   | 2 +-
>  drivers/video/fbdev/gbefb.c                    | 2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c         | 2 +-
>  drivers/video/fbdev/geode/gxfb_core.c          | 2 +-
>  drivers/video/fbdev/geode/lxfb_core.c          | 2 +-
>  drivers/video/fbdev/goldfishfb.c               | 2 +-
>  drivers/video/fbdev/grvga.c                    | 2 +-
>  drivers/video/fbdev/gxt4500.c                  | 2 +-
>  drivers/video/fbdev/hecubafb.c                 | 2 +-
>  drivers/video/fbdev/hgafb.c                    | 2 +-
>  drivers/video/fbdev/hitfb.c                    | 2 +-
>  drivers/video/fbdev/hpfb.c                     | 2 +-
>  drivers/video/fbdev/hyperv_fb.c                | 2 +-
>  drivers/video/fbdev/i740fb.c                   | 2 +-
>  drivers/video/fbdev/imsttfb.c                  | 2 +-
>  drivers/video/fbdev/imxfb.c                    | 2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c       | 2 +-
>  drivers/video/fbdev/kyro/fbdev.c               | 2 +-
>  drivers/video/fbdev/leo.c                      | 2 +-
>  drivers/video/fbdev/macfb.c                    | 2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c    | 2 +-
>  drivers/video/fbdev/maxinefb.c                 | 2 +-
>  drivers/video/fbdev/mbx/mbxfb.c                | 2 +-
>  drivers/video/fbdev/metronomefb.c              | 2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c             | 2 +-
>  drivers/video/fbdev/mx3fb.c                    | 5 +++--
>  drivers/video/fbdev/neofb.c                    | 2 +-
>  drivers/video/fbdev/ocfb.c                     | 2 +-
>  drivers/video/fbdev/offb.c                     | 2 +-
>  drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +-
>  drivers/video/fbdev/p9100.c                    | 2 +-
>  drivers/video/fbdev/platinumfb.c               | 2 +-
>  drivers/video/fbdev/pm2fb.c                    | 2 +-
>  drivers/video/fbdev/pm3fb.c                    | 2 +-
>  drivers/video/fbdev/pmag-aa-fb.c               | 2 +-
>  drivers/video/fbdev/pmag-ba-fb.c               | 2 +-
>  drivers/video/fbdev/pmagb-b-fb.c               | 2 +-
>  drivers/video/fbdev/ps3fb.c                    | 2 +-
>  drivers/video/fbdev/pvr2fb.c                   | 2 +-
>  drivers/video/fbdev/pxa168fb.c                 | 2 +-
>  drivers/video/fbdev/pxafb.c                    | 4 ++--
>  drivers/video/fbdev/q40fb.c                    | 2 +-
>  drivers/video/fbdev/riva/fbdev.c               | 2 +-
>  drivers/video/fbdev/s3c-fb.c                   | 2 +-
>  drivers/video/fbdev/s3c2410fb.c                | 2 +-
>  drivers/video/fbdev/s3fb.c                     | 2 +-
>  drivers/video/fbdev/sa1100fb.c                 | 2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c   | 2 +-
>  drivers/video/fbdev/sh7760fb.c                 | 2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c         | 4 ++--
>  drivers/video/fbdev/simplefb.c                 | 2 +-
>  drivers/video/fbdev/sis/sis_main.c             | 2 +-
>  drivers/video/fbdev/skeletonfb.c               | 2 +-
>  drivers/video/fbdev/sm712fb.c                  | 2 +-
>  drivers/video/fbdev/smscufx.c                  | 2 +-
>  drivers/video/fbdev/ssd1307fb.c                | 2 +-
>  drivers/video/fbdev/sstfb.c                    | 2 +-
>  drivers/video/fbdev/stifb.c                    | 2 +-
>  drivers/video/fbdev/sunxvr1000.c               | 2 +-
>  drivers/video/fbdev/sunxvr2500.c               | 2 +-
>  drivers/video/fbdev/sunxvr500.c                | 2 +-
>  drivers/video/fbdev/tcx.c                      | 2 +-
>  drivers/video/fbdev/tdfxfb.c                   | 2 +-
>  drivers/video/fbdev/tgafb.c                    | 2 +-
>  drivers/video/fbdev/tmiofb.c                   | 2 +-
>  drivers/video/fbdev/tridentfb.c                | 2 +-
>  drivers/video/fbdev/valkyriefb.c               | 2 +-
>  drivers/video/fbdev/vfb.c                      | 2 +-
>  drivers/video/fbdev/vga16fb.c                  | 2 +-
>  drivers/video/fbdev/vt8500lcdfb.c              | 2 +-
>  drivers/video/fbdev/vt8623fb.c                 | 2 +-
>  drivers/video/fbdev/w100fb.c                   | 2 +-
>  drivers/video/fbdev/wm8505fb.c                 | 2 +-
>  drivers/video/fbdev/xen-fbfront.c              | 2 +-
>  drivers/video/fbdev/xilinxfb.c                 | 2 +-
>  107 files changed, 111 insertions(+), 110 deletions(-)
>
> diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c
> index d48e96088f76..491fd5a82993 100644
> --- a/drivers/video/fbdev/68328fb.c
> +++ b/drivers/video/fbdev/68328fb.c
> @@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var,
>  			   struct fb_info *info);
>  static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma);
>  
> -static struct fb_ops mc68x328fb_ops = {
> +static const struct fb_ops mc68x328fb_ops = {
>  	.fb_check_var	= mc68x328fb_check_var,
>  	.fb_set_par	= mc68x328fb_set_par,
>  	.fb_setcolreg	= mc68x328fb_setcolreg,
> diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
> index 7cacae5a8797..a3af49529173 100644
> --- a/drivers/video/fbdev/acornfb.c
> +++ b/drivers/video/fbdev/acornfb.c
> @@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops acornfb_ops = {
> +static const struct fb_ops acornfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= acornfb_check_var,
>  	.fb_set_par	= acornfb_set_par,
> diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
> index 7de43be6ef2c..c3d55fc6c4e0 100644
> --- a/drivers/video/fbdev/amba-clcd.c
> +++ b/drivers/video/fbdev/amba-clcd.c
> @@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info,
>  	return ret;
>  }
>  
> -static struct fb_ops clcdfb_ops = {
> +static const struct fb_ops clcdfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= clcdfb_check_var,
>  	.fb_set_par	= clcdfb_set_par,
> diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
> index 91ddc9602014..20e03e00b66d 100644
> --- a/drivers/video/fbdev/amifb.c
> +++ b/drivers/video/fbdev/amifb.c
> @@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id)
>  }
>  
>  
> -static struct fb_ops amifb_ops = {
> +static const struct fb_ops amifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= amifb_check_var,
>  	.fb_set_par	= amifb_set_par,
> diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
> index a48741aab240..314ab82e01c0 100644
> --- a/drivers/video/fbdev/arcfb.c
> +++ b/drivers/video/fbdev/arcfb.c
> @@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
>  	return err;
>  }
>  
> -static struct fb_ops arcfb_ops = {
> +static const struct fb_ops arcfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= arcfb_open,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
> index f940e8b66b85..11ab9a153860 100644
> --- a/drivers/video/fbdev/arkfb.c
> +++ b/drivers/video/fbdev/arkfb.c
> @@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops arkfb_ops = {
> +static const struct fb_ops arkfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= arkfb_open,
>  	.fb_release	= arkfb_release,
> diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c
> index ea31054a28ca..3e006da47752 100644
> --- a/drivers/video/fbdev/asiliantfb.c
> +++ b/drivers/video/fbdev/asiliantfb.c
> @@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info);
>  static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>  				u_int transp, struct fb_info *info);
>  
> -static struct fb_ops asiliantfb_ops = {
> +static const struct fb_ops asiliantfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= asiliantfb_check_var,
>  	.fb_set_par	= asiliantfb_set_par,
> diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c
> index 5ff8e0320d95..d567f5d56c13 100644
> --- a/drivers/video/fbdev/atmel_lcdfb.c
> +++ b/drivers/video/fbdev/atmel_lcdfb.c
> @@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info)
>  	return ((blank_mode = FB_BLANK_NORMAL) ? 1 : 0);
>  }
>  
> -static struct fb_ops atmel_lcdfb_ops = {
> +static const struct fb_ops atmel_lcdfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= atmel_lcdfb_check_var,
>  	.fb_set_par	= atmel_lcdfb_set_par,
> diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
> index fc1e45d44719..d7e41c8dd533 100644
> --- a/drivers/video/fbdev/aty/aty128fb.c
> +++ b/drivers/video/fbdev/aty/aty128fb.c
> @@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power);
>  			  (readb(bios + (v) + 3) << 24))
>  
>  
> -static struct fb_ops aty128fb_ops = {
> +static const struct fb_ops aty128fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= aty128fb_check_var,
>  	.fb_set_par	= aty128fb_set_par,
> diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
> index 4ca07866f2f6..3af00e3b965e 100644
> --- a/drivers/video/fbdev/aty/radeon_base.c
> +++ b/drivers/video/fbdev/aty/radeon_base.c
> @@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info)
>  }
>  
>  
> -static struct fb_ops radeonfb_ops = {
> +static const struct fb_ops radeonfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_check_var		= radeonfb_check_var,
>  	.fb_set_par		= radeonfb_set_par,
> diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
> index 99941ae1f3a1..37a6512feda0 100644
> --- a/drivers/video/fbdev/au1100fb.c
> +++ b/drivers/video/fbdev/au1100fb.c
> @@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
>  			fbdev->fb_len);
>  }
>  
> -static struct fb_ops au1100fb_ops > +static const struct fb_ops au1100fb_ops >  {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= au1100fb_fb_setcolreg,
> diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c
> index 265d3b45efd0..c00e01a17368 100644
> --- a/drivers/video/fbdev/au1200fb.c
> +++ b/drivers/video/fbdev/au1200fb.c
> @@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd,
>  }
>  
>  
> -static struct fb_ops au1200fb_fb_ops = {
> +static const struct fb_ops au1200fb_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= au1200fb_fb_check_var,
>  	.fb_set_par	= au1200fb_fb_set_par,
> diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
> index d6ba348deb9f..fd66f4d4a621 100644
> --- a/drivers/video/fbdev/broadsheetfb.c
> +++ b/drivers/video/fbdev/broadsheetfb.c
> @@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops broadsheetfb_ops = {
> +static const struct fb_ops broadsheetfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write	= broadsheetfb_write,
> diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c
> index 436f10f3d375..0d9a6bb57a09 100644
> --- a/drivers/video/fbdev/bw2.c
> +++ b/drivers/video/fbdev/bw2.c
> @@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops bw2_ops = {
> +static const struct fb_ops bw2_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_blank		= bw2_blank,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
> index 9f3be0258623..bf3f2a9598b1 100644
> --- a/drivers/video/fbdev/carminefb.c
> +++ b/drivers/video/fbdev/carminefb.c
> @@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw)
>  	return 0;
>  }
>  
> -static struct fb_ops carminefb_ops = {
> +static const struct fb_ops carminefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_fillrect	= cfb_fillrect,
>  	.fb_copyarea	= cfb_copyarea,
> diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c
> index d80d99db3a46..a620b51cf7d0 100644
> --- a/drivers/video/fbdev/cg14.c
> +++ b/drivers/video/fbdev/cg14.c
> @@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg14_ops = {
> +static const struct fb_ops cg14_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg14_setcolreg,
>  	.fb_pan_display		= cg14_pan_display,
> diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c
> index 09f616dddfd7..77f6470ce665 100644
> --- a/drivers/video/fbdev/cg3.c
> +++ b/drivers/video/fbdev/cg3.c
> @@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg3_ops = {
> +static const struct fb_ops cg3_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg3_setcolreg,
>  	.fb_blank		= cg3_blank,
> diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c
> index d5888aecc2fb..a1c68cd48d7e 100644
> --- a/drivers/video/fbdev/cg6.c
> +++ b/drivers/video/fbdev/cg6.c
> @@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg6_ops = {
> +static const struct fb_ops cg6_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg6_setcolreg,
>  	.fb_blank		= cg6_blank,
> diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c
> index f4dc320dcafe..998067b701fa 100644
> --- a/drivers/video/fbdev/chipsfb.c
> +++ b/drivers/video/fbdev/chipsfb.c
> @@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>  			     u_int transp, struct fb_info *info);
>  static int chipsfb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops chipsfb_ops = {
> +static const struct fb_ops chipsfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= chipsfb_check_var,
>  	.fb_set_par	= chipsfb_set_par,
> diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c
> index e4ce5667b125..c3a3e344cee3 100644
> --- a/drivers/video/fbdev/cirrusfb.c
> +++ b/drivers/video/fbdev/cirrusfb.c
> @@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info)
>  #endif /* CONFIG_ZORRO */
>  
>  /* function table of the above functions */
> -static struct fb_ops cirrusfb_ops = {
> +static const struct fb_ops cirrusfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= cirrusfb_open,
>  	.fb_release	= cirrusfb_release,
> diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
> index cabbc721f894..c5d15c6db287 100644
> --- a/drivers/video/fbdev/clps711x-fb.c
> +++ b/drivers/video/fbdev/clps711x-fb.c
> @@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops clps711x_fb_ops = {
> +static const struct fb_ops clps711x_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= clps711x_fb_setcolreg,
>  	.fb_check_var	= clps711x_fb_check_var,
> diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
> index 544946901e8b..5f8b6324d2e8 100644
> --- a/drivers/video/fbdev/cobalt_lcdfb.c
> +++ b/drivers/video/fbdev/cobalt_lcdfb.c
> @@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -static struct fb_ops cobalt_lcd_fbops = {
> +static const struct fb_ops cobalt_lcd_fbops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= cobalt_lcdfb_read,
>  	.fb_write	= cobalt_lcdfb_write,
> diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
> index 9a680ef3ffc3..38b61cdb5ca4 100644
> --- a/drivers/video/fbdev/controlfb.c
> +++ b/drivers/video/fbdev/controlfb.c
> @@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM;
>  static int default_cmode __initdata = CMODE_NVRAM;
>  
>  
> -static struct fb_ops controlfb_ops = {
> +static const struct fb_ops controlfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= controlfb_check_var,
>  	.fb_set_par	= controlfb_set_par,
> diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
> index 3a2d9ff0aa42..460826a7ad55 100644
> --- a/drivers/video/fbdev/cyber2000fb.c
> +++ b/drivers/video/fbdev/cyber2000fb.c
> @@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops cyber2000fb_ops = {
> +static const struct fb_ops cyber2000fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= cyber2000fb_check_var,
>  	.fb_set_par	= cyber2000fb_set_par,
> diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c
> index 2d3dcc52fcf3..73c3c4c8cc12 100644
> --- a/drivers/video/fbdev/da8xx-fb.c
> +++ b/drivers/video/fbdev/da8xx-fb.c
> @@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops da8xx_fb_ops = {
> +static const struct fb_ops da8xx_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = fb_check_var,
>  	.fb_set_par = da8xxfb_set_par,
> diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c
> index 8da517eaa4a3..3688f9165848 100644
> --- a/drivers/video/fbdev/dnfb.c
> +++ b/drivers/video/fbdev/dnfb.c
> @@ -108,7 +108,7 @@
>  static int dnfb_blank(int blank, struct fb_info *info);
>  static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
>  
> -static struct fb_ops dn_fb_ops = {
> +static const struct fb_ops dn_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= dnfb_blank,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index 51d97ec4f58f..f03f9fb60c26 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info)
>  	fb_dealloc_cmap(&info->cmap);
>  }
>  
> -static struct fb_ops efifb_ops = {
> +static const struct fb_ops efifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= efifb_destroy,
>  	.fb_setcolreg	= efifb_setcolreg,
> diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c
> index d04a047094fc..cda2ef337423 100644
> --- a/drivers/video/fbdev/ep93xx-fb.c
> +++ b/drivers/video/fbdev/ep93xx-fb.c
> @@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops ep93xxfb_ops = {
> +static const struct fb_ops ep93xxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= ep93xxfb_check_var,
>  	.fb_set_par	= ep93xxfb_set_par,
> diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c
> index fa62c4dff7d1..75df6aabac21 100644
> --- a/drivers/video/fbdev/fb-puv3.c
> +++ b/drivers/video/fbdev/fb-puv3.c
> @@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info,
>  	return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len);
>  }
>  
> -static struct fb_ops unifb_ops = {
> +static const struct fb_ops unifb_ops = {
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
>  	.fb_check_var	= unifb_check_var,
> diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c
> index cd2d1db239a2..948b73184433 100644
> --- a/drivers/video/fbdev/ffb.c
> +++ b/drivers/video/fbdev/ffb.c
> @@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops ffb_ops = {
> +static const struct fb_ops ffb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= ffb_setcolreg,
>  	.fb_blank		= ffb_blank,
> diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c
> index ac7a4ebfd390..3b727d528fde 100644
> --- a/drivers/video/fbdev/fm2fb.c
> +++ b/drivers/video/fbdev/fm2fb.c
> @@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>                             u_int transp, struct fb_info *info);
>  static int fm2fb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops fm2fb_ops = {
> +static const struct fb_ops fm2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= fm2fb_setcolreg,
>  	.fb_blank	= fm2fb_blank,
> diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
> index d19f58263b4e..7cacabdd5f12 100644
> --- a/drivers/video/fbdev/fsl-diu-fb.c
> +++ b/drivers/video/fbdev/fsl-diu-fb.c
> @@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user)
>  	return res;
>  }
>  
> -static struct fb_ops fsl_diu_ops = {
> +static const struct fb_ops fsl_diu_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = fsl_diu_check_var,
>  	.fb_set_par = fsl_diu_set_par,
> diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
> index 223896cc5f7d..845b79da2a7c 100644
> --- a/drivers/video/fbdev/g364fb.c
> +++ b/drivers/video/fbdev/g364fb.c
> @@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
>  static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
>  static int g364fb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops g364fb_ops = {
> +static const struct fb_ops g364fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= g364fb_setcolreg,
>  	.fb_pan_display	= g364fb_pan_display,
> diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c
> index b9f6a82a0495..31270a8986e8 100644
> --- a/drivers/video/fbdev/gbefb.c
> +++ b/drivers/video/fbdev/gbefb.c
> @@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info,
>  	return 0;
>  }
>  
> -static struct fb_ops gbefb_ops = {
> +static const struct fb_ops gbefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gbefb_check_var,
>  	.fb_set_par	= gbefb_set_par,
> diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c
> index 737e472fac14..5d34d89fb665 100644
> --- a/drivers/video/fbdev/geode/gx1fb_core.c
> +++ b/drivers/video/fbdev/geode/gx1fb_core.c
> @@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops gx1fb_ops = {
> +static const struct fb_ops gx1fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gx1fb_check_var,
>  	.fb_set_par	= gx1fb_set_par,
> diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
> index 435ce2aa4240..d38a148d4746 100644
> --- a/drivers/video/fbdev/geode/gxfb_core.c
> +++ b/drivers/video/fbdev/geode/gxfb_core.c
> @@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
>  	return 0;
>  }
>  
> -static struct fb_ops gxfb_ops = {
> +static const struct fb_ops gxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gxfb_check_var,
>  	.fb_set_par	= gxfb_set_par,
> diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c
> index b0f07d676eb3..adc2d9c2395e 100644
> --- a/drivers/video/fbdev/geode/lxfb_core.c
> +++ b/drivers/video/fbdev/geode/lxfb_core.c
> @@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
>  	return 0;
>  }
>  
> -static struct fb_ops lxfb_ops = {
> +static const struct fb_ops lxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= lxfb_check_var,
>  	.fb_set_par	= lxfb_set_par,
> diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
> index f60ac276703d..9c83ec3f8e1f 100644
> --- a/drivers/video/fbdev/goldfishfb.c
> +++ b/drivers/video/fbdev/goldfishfb.c
> @@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops goldfish_fb_ops = {
> +static const struct fb_ops goldfish_fb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_check_var   = goldfish_fb_check_var,
>  	.fb_set_par     = goldfish_fb_set_par,
> diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c
> index d22e8b0c906d..07dda03e0957 100644
> --- a/drivers/video/fbdev/grvga.c
> +++ b/drivers/video/fbdev/grvga.c
> @@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var,
>  	return 0;
>  }
>  
> -static struct fb_ops grvga_ops = {
> +static const struct fb_ops grvga_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_check_var   = grvga_check_var,
>  	.fb_set_par	= grvga_set_par,
> diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c
> index c7502fd8f447..13ded3a10708 100644
> --- a/drivers/video/fbdev/gxt4500.c
> +++ b/drivers/video/fbdev/gxt4500.c
> @@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = {
>  	.mmio_len = 0x20000,
>  };
>  
> -static struct fb_ops gxt4500_ops = {
> +static const struct fb_ops gxt4500_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = gxt4500_check_var,
>  	.fb_set_par = gxt4500_set_par,
> diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c
> index 8577195cb533..00d77105161a 100644
> --- a/drivers/video/fbdev/hecubafb.c
> +++ b/drivers/video/fbdev/hecubafb.c
> @@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops hecubafb_ops = {
> +static const struct fb_ops hecubafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write	= hecubafb_write,
> diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c
> index 59e1cae57948..a45fcff1461f 100644
> --- a/drivers/video/fbdev/hgafb.c
> +++ b/drivers/video/fbdev/hgafb.c
> @@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
>  	}
>  }
>  
> -static struct fb_ops hgafb_ops = {
> +static const struct fb_ops hgafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= hgafb_open,
>  	.fb_release	= hgafb_release,
> diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c
> index abe3e54d4506..009e5d2aa100 100644
> --- a/drivers/video/fbdev/hitfb.c
> +++ b/drivers/video/fbdev/hitfb.c
> @@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops hitfb_ops = {
> +static const struct fb_ops hitfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= hitfb_check_var,
>  	.fb_set_par		= hitfb_set_par,
> diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
> index a79af8f069d1..f02be0db335e 100644
> --- a/drivers/video/fbdev/hpfb.c
> +++ b/drivers/video/fbdev/hpfb.c
> @@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops hpfb_ops = {
> +static const struct fb_ops hpfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= hpfb_setcolreg,
>  	.fb_blank	= hpfb_blank,
> diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
> index 2dcb7c58b31e..fcd546e5c031 100644
> --- a/drivers/video/fbdev/hyperv_fb.c
> +++ b/drivers/video/fbdev/hyperv_fb.c
> @@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p,
>  		synthvid_update(p);
>  }
>  
> -static struct fb_ops hvfb_ops = {
> +static const struct fb_ops hvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = hvfb_check_var,
>  	.fb_set_par = hvfb_set_par,
> diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c
> index 347cf8babc3e..c65ec7386e87 100644
> --- a/drivers/video/fbdev/i740fb.c
> +++ b/drivers/video/fbdev/i740fb.c
> @@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info)
>  	return (blank_mode = FB_BLANK_NORMAL) ? 1 : 0;
>  }
>  
> -static struct fb_ops i740fb_ops = {
> +static const struct fb_ops i740fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= i740fb_open,
>  	.fb_release	= i740fb_release,
> diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
> index 58b01c7d9056..3ac053b88495 100644
> --- a/drivers/video/fbdev/imsttfb.c
> +++ b/drivers/video/fbdev/imsttfb.c
> @@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = {
>  	.remove =	imsttfb_remove,
>  };
>  
> -static struct fb_ops imsttfb_ops = {
> +static const struct fb_ops imsttfb_ops = {
>  	.owner 		= THIS_MODULE,
>  	.fb_check_var	= imsttfb_check_var,
>  	.fb_set_par 	= imsttfb_set_par,
> diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
> index b3286d1fa543..08a17eb2a5c7 100644
> --- a/drivers/video/fbdev/imxfb.c
> +++ b/drivers/video/fbdev/imxfb.c
> @@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops imxfb_ops = {
> +static const struct fb_ops imxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= imxfb_check_var,
>  	.fb_set_par	= imxfb_set_par,
> diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c
> index a76c61512c60..c744891781a5 100644
> --- a/drivers/video/fbdev/intelfb/intelfbdrv.c
> +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c
> @@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = {
>  static int num_registered = 0;
>  
>  /* fb ops */
> -static struct fb_ops intel_fb_ops = {
> +static const struct fb_ops intel_fb_ops = {
>  	.owner =		THIS_MODULE,
>  	.fb_open =              intelfb_open,
>  	.fb_release =           intelfb_release,
> diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c
> index a7bd9f25911b..72dff2e42e3a 100644
> --- a/drivers/video/fbdev/kyro/fbdev.c
> +++ b/drivers/video/fbdev/kyro/fbdev.c
> @@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = {
>  	.remove		= kyrofb_remove,
>  };
>  
> -static struct fb_ops kyrofb_ops = {
> +static const struct fb_ops kyrofb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= kyrofb_check_var,
>  	.fb_set_par	= kyrofb_set_par,
> diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c
> index 5b1141ac182b..40b11cce0ad6 100644
> --- a/drivers/video/fbdev/leo.c
> +++ b/drivers/video/fbdev/leo.c
> @@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops leo_ops = {
> +static const struct fb_ops leo_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= leo_setcolreg,
>  	.fb_blank		= leo_blank,
> diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c
> index 9a6feee96133..e05a97662ca8 100644
> --- a/drivers/video/fbdev/macfb.c
> +++ b/drivers/video/fbdev/macfb.c
> @@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green,
>  	return 0;
>  }
>  
> -static struct fb_ops macfb_ops = {
> +static const struct fb_ops macfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= macfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> index d2a81a2c3ac0..7655afa3fd50 100644
> --- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> +++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> @@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) {
>  #undef m2info
>  }
>  
> -static struct fb_ops matroxfb_dh_ops = {
> +static const struct fb_ops matroxfb_dh_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_open =	matroxfb_dh_open,
>  	.fb_release =	matroxfb_dh_release,
> diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c
> index 5bb1b5c308a7..ae1a42bcb0ea 100644
> --- a/drivers/video/fbdev/maxinefb.c
> +++ b/drivers/video/fbdev/maxinefb.c
> @@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green,
>  	return 0;
>  }
>  
> -static struct fb_ops maxinefb_ops = {
> +static const struct fb_ops maxinefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= maxinefb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c
> index 50935252b50b..25dad4507d77 100644
> --- a/drivers/video/fbdev/mbx/mbxfb.c
> +++ b/drivers/video/fbdev/mbx/mbxfb.c
> @@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd,
>  	return -EINVAL;
>  }
>  
> -static struct fb_ops mbxfb_ops = {
> +static const struct fb_ops mbxfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = mbxfb_check_var,
>  	.fb_set_par = mbxfb_set_par,
> diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c
> index bb4fee52e501..a42e2eceee48 100644
> --- a/drivers/video/fbdev/metronomefb.c
> +++ b/drivers/video/fbdev/metronomefb.c
> @@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops metronomefb_ops = {
> +static const struct fb_ops metronomefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_write	= metronomefb_write,
>  	.fb_fillrect	= metronomefb_fillrect,
> diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
> index 47bc7c59bbd8..33db0850086f 100644
> --- a/drivers/video/fbdev/mmp/fb/mmpfb.c
> +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
> @@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops mmpfb_ops = {
> +static const struct fb_ops mmpfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= mmpfb_blank,
>  	.fb_check_var	= mmpfb_check_var,
> diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
> index bafd5f5fac5a..4af28e4421e5 100644
> --- a/drivers/video/fbdev/mx3fb.c
> +++ b/drivers/video/fbdev/mx3fb.c
> @@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
>   * invoked by the core framebuffer driver to perform operations like
>   * blitting, rectangle filling, copy regions and cursor definition.
>   */
> -static struct fb_ops mx3fb_ops = {
> +static const struct fb_ops mx3fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_set_par = mx3fb_set_par,
>  	.fb_check_var = mx3fb_check_var,
> @@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi)
>   * mx3fb_init_fbinfo() - initialize framebuffer information object.
>   * @return:	initialized framebuffer structure.
>   */
> -static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
> +static struct fb_info *mx3fb_init_fbinfo(struct device *dev,
> +					 const struct fb_ops *ops)
>  {
>  	struct fb_info *fbi;
>  	struct mx3fb_info *mx3fbi;
> diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
> index b770946a0920..e6ea853c1723 100644
> --- a/drivers/video/fbdev/neofb.c
> +++ b/drivers/video/fbdev/neofb.c
> @@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  }
>  */
>  
> -static struct fb_ops neofb_ops = {
> +static const struct fb_ops neofb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= neofb_open,
>  	.fb_release	= neofb_release,
> diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c
> index a970edc2a6f8..c8cee2d890dc 100644
> --- a/drivers/video/fbdev/ocfb.c
> +++ b/drivers/video/fbdev/ocfb.c
> @@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev)
>  	return 0;
>  }
>  
> -static struct fb_ops ocfb_ops = {
> +static const struct fb_ops ocfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= ocfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index fbc6eafb63c7..5cd0f5f6a4ae 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info)
>  	framebuffer_release(info);
>  }
>  
> -static struct fb_ops offb_ops = {
> +static const struct fb_ops offb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= offb_destroy,
>  	.fb_setcolreg	= offb_setcolreg,
> diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> index 858c2c011d19..8dfa9158ba78 100644
> --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> @@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf,
>  }
>  #endif
>  
> -static struct fb_ops omapfb_ops = {
> +static const struct fb_ops omapfb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_open        = omapfb_open,
>  	.fb_release     = omapfb_release,
> diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c
> index 8c18cc51aae2..6da672e92643 100644
> --- a/drivers/video/fbdev/p9100.c
> +++ b/drivers/video/fbdev/p9100.c
> @@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops p9100_ops = {
> +static const struct fb_ops p9100_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= p9100_setcolreg,
>  	.fb_blank		= p9100_blank,
> diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c
> index 632b246ca35f..ce413a9df06e 100644
> --- a/drivers/video/fbdev/platinumfb.c
> +++ b/drivers/video/fbdev/platinumfb.c
> @@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var,
>   * Interface used by the world
>   */
>  
> -static struct fb_ops platinumfb_ops = {
> +static const struct fb_ops platinumfb_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_check_var	= platinumfb_check_var,
>  	.fb_set_par	= platinumfb_set_par,
> diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c
> index 1dcf02e12af4..8f933bad461c 100644
> --- a/drivers/video/fbdev/pm2fb.c
> +++ b/drivers/video/fbdev/pm2fb.c
> @@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops pm2fb_ops = {
> +static const struct fb_ops pm2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pm2fb_check_var,
>  	.fb_set_par	= pm2fb_set_par,
> diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c
> index 6130aa56a1e9..15a2b495235b 100644
> --- a/drivers/video/fbdev/pm3fb.c
> +++ b/drivers/video/fbdev/pm3fb.c
> @@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info)
>  	 *  Frame buffer operations
>  	 */
>  
> -static struct fb_ops pm3fb_ops = {
> +static const struct fb_ops pm3fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pm3fb_check_var,
>  	.fb_set_par	= pm3fb_set_par,
> diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c
> index d1e78ce3a9c2..7b33b52b2526 100644
> --- a/drivers/video/fbdev/pmag-aa-fb.c
> +++ b/drivers/video/fbdev/pmag-aa-fb.c
> @@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops aafb_ops = {
> +static const struct fb_ops aafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= aafb_blank,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c
> index 56b912bb28de..a60e56d8980b 100644
> --- a/drivers/video/fbdev/pmag-ba-fb.c
> +++ b/drivers/video/fbdev/pmag-ba-fb.c
> @@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops pmagbafb_ops = {
> +static const struct fb_ops pmagbafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pmagbafb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c
> index 2822b2225924..f02080f21077 100644
> --- a/drivers/video/fbdev/pmagb-b-fb.c
> +++ b/drivers/video/fbdev/pmagb-b-fb.c
> @@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops pmagbbfb_ops = {
> +static const struct fb_ops pmagbbfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pmagbbfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c
> index 5ed2db39d823..834f63edf700 100644
> --- a/drivers/video/fbdev/ps3fb.c
> +++ b/drivers/video/fbdev/ps3fb.c
> @@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr)
>  }
>  
>  
> -static struct fb_ops ps3fb_ops = {
> +static const struct fb_ops ps3fb_ops = {
>  	.fb_open	= ps3fb_open,
>  	.fb_release	= ps3fb_release,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
> index 0a3b2b7c7891..fcb16eabbb0d 100644
> --- a/drivers/video/fbdev/pvr2fb.c
> +++ b/drivers/video/fbdev/pvr2fb.c
> @@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
>  }
>  #endif /* CONFIG_PVR2_DMA */
>  
> -static struct fb_ops pvr2fb_ops = {
> +static const struct fb_ops pvr2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pvr2fb_setcolreg,
>  	.fb_blank	= pvr2fb_blank,
> diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c
> index 1410f476e135..c672c3354a2c 100644
> --- a/drivers/video/fbdev/pxa168fb.c
> +++ b/drivers/video/fbdev/pxa168fb.c
> @@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id)
>  	return IRQ_NONE;
>  }
>  
> -static struct fb_ops pxa168fb_ops = {
> +static const struct fb_ops pxa168fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pxa168fb_check_var,
>  	.fb_set_par	= pxa168fb_set_par,
> diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
> index f70c9f79622e..6f7e9fb63190 100644
> --- a/drivers/video/fbdev/pxafb.c
> +++ b/drivers/video/fbdev/pxafb.c
> @@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops pxafb_ops = {
> +static const struct fb_ops pxafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pxafb_check_var,
>  	.fb_set_par	= pxafb_set_par,
> @@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops overlay_fb_ops = {
> +static const struct fb_ops overlay_fb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_open		= overlayfb_open,
>  	.fb_release		= overlayfb_release,
> diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c
> index 0b93aa964d43..79ff14a35c85 100644
> --- a/drivers/video/fbdev/q40fb.c
> +++ b/drivers/video/fbdev/q40fb.c
> @@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green,
>      return 0;
>  }
>  
> -static struct fb_ops q40fb_ops = {
> +static const struct fb_ops q40fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= q40fb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
> index ca593a3e41d7..764ec3285e62 100644
> --- a/drivers/video/fbdev/riva/fbdev.c
> +++ b/drivers/video/fbdev/riva/fbdev.c
> @@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info)
>   * ------------------------------------------------------------------------- */
>  
>  /* kernel interface */
> -static struct fb_ops riva_fb_ops = {
> +static const struct fb_ops riva_fb_ops = {
>  	.owner 		= THIS_MODULE,
>  	.fb_open	= rivafb_open,
>  	.fb_release	= rivafb_release,
> diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c
> index ba04d7a67829..f4871c430f8d 100644
> --- a/drivers/video/fbdev/s3c-fb.c
> +++ b/drivers/video/fbdev/s3c-fb.c
> @@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd,
>  	return ret;
>  }
>  
> -static struct fb_ops s3c_fb_ops = {
> +static const struct fb_ops s3c_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= s3c_fb_check_var,
>  	.fb_set_par	= s3c_fb_set_par,
> diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
> index a702da89910b..2fb15a540167 100644
> --- a/drivers/video/fbdev/s3c2410fb.c
> +++ b/drivers/video/fbdev/s3c2410fb.c
> @@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev,
>  
>  static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store);
>  
> -static struct fb_ops s3c2410fb_ops = {
> +static const struct fb_ops s3c2410fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= s3c2410fb_check_var,
>  	.fb_set_par	= s3c2410fb_set_par,
> diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c
> index be16c349c10f..60c424fae988 100644
> --- a/drivers/video/fbdev/s3fb.c
> +++ b/drivers/video/fbdev/s3fb.c
> @@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops s3fb_ops = {
> +static const struct fb_ops s3fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= s3fb_open,
>  	.fb_release	= s3fb_release,
> diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
> index 81ad3aa1ca06..4680cc3efb81 100644
> --- a/drivers/video/fbdev/sa1100fb.c
> +++ b/drivers/video/fbdev/sa1100fb.c
> @@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info,
>  	return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len);
>  }
>  
> -static struct fb_ops sa1100fb_ops = {
> +static const struct fb_ops sa1100fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= sa1100fb_check_var,
>  	.fb_set_par	= sa1100fb_set_par,
> diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c
> index 512789f5f884..aab312a7d9da 100644
> --- a/drivers/video/fbdev/savage/savagefb_driver.c
> +++ b/drivers/video/fbdev/savage/savagefb_driver.c
> @@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user)
>  	return 0;
>  }
>  
> -static struct fb_ops savagefb_ops = {
> +static const struct fb_ops savagefb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_open        = savagefb_open,
>  	.fb_release     = savagefb_release,
> diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
> index ab8fe838c776..b8ec8d9bb4c8 100644
> --- a/drivers/video/fbdev/sh7760fb.c
> +++ b/drivers/video/fbdev/sh7760fb.c
> @@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops sh7760fb_ops = {
> +static const struct fb_ops sh7760fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_blank = sh7760fb_blank,
>  	.fb_check_var = sh7760fb_check_var,
> diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> index c249763dbf0b..25f119efebc0 100644
> --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
> +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> @@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  				 ovl->dma_handle, ovl->fb_size);
>  }
>  
> -static struct fb_ops sh_mobile_lcdc_overlay_ops = {
> +static const struct fb_ops sh_mobile_lcdc_overlay_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
> @@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  				 ch->dma_handle, ch->fb_size);
>  }
>  
> -static struct fb_ops sh_mobile_lcdc_ops = {
> +static const struct fb_ops sh_mobile_lcdc_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_setcolreg	= sh_mobile_lcdc_setcolreg,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
> index 7dc0105f700d..533a047d07a2 100644
> --- a/drivers/video/fbdev/simplefb.c
> +++ b/drivers/video/fbdev/simplefb.c
> @@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops simplefb_ops = {
> +static const struct fb_ops simplefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= simplefb_destroy,
>  	.fb_setcolreg	= simplefb_setcolreg,
> diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
> index b443a8ed4600..ac140962b1bf 100644
> --- a/drivers/video/fbdev/sis/sis_main.c
> +++ b/drivers/video/fbdev/sis/sis_main.c
> @@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
>  
>  /* ----------------  fb_ops structures ----------------- */
>  
> -static struct fb_ops sisfb_ops = {
> +static const struct fb_ops sisfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= sisfb_open,
>  	.fb_release	= sisfb_release,
> diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c
> index 812a36cb60c3..bcacfb6934fa 100644
> --- a/drivers/video/fbdev/skeletonfb.c
> +++ b/drivers/video/fbdev/skeletonfb.c
> @@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info)
>       *  Frame buffer operations
>       */
>  
> -static struct fb_ops xxxfb_ops = {
> +static const struct fb_ops xxxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= xxxfb_open,
>  	.fb_read	= xxxfb_read,
> diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c
> index 207d0add684b..6a1b4a853d9e 100644
> --- a/drivers/video/fbdev/sm712fb.c
> +++ b/drivers/video/fbdev/sm712fb.c
> @@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops smtcfb_ops = {
> +static const struct fb_ops smtcfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_check_var = smtc_check_var,
>  	.fb_set_par   = smtc_set_par,
> diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
> index e362d7da87fc..bfac3ee4a642 100644
> --- a/drivers/video/fbdev/smscufx.c
> +++ b/drivers/video/fbdev/smscufx.c
> @@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ufx_ops = {
> +static const struct fb_ops ufx_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = ufx_ops_write,
> diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
> index 78ca7ffc40c2..142535267fec 100644
> --- a/drivers/video/fbdev/ssd1307fb.c
> +++ b/drivers/video/fbdev/ssd1307fb.c
> @@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima
>  	ssd1307fb_update_display(par);
>  }
>  
> -static struct fb_ops ssd1307fb_ops = {
> +static const struct fb_ops ssd1307fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= fb_sys_read,
>  	.fb_write	= ssd1307fb_write,
> diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c
> index 4e22ae383c87..82e707a48e4e 100644
> --- a/drivers/video/fbdev/sstfb.c
> +++ b/drivers/video/fbdev/sstfb.c
> @@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options)
>  }
>  
>  
> -static struct fb_ops sstfb_ops = {
> +static const struct fb_ops sstfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= sstfb_check_var,
>  	.fb_set_par	= sstfb_set_par,
> diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c
> index 9e88e3f594c2..5400ab79fbbd 100644
> --- a/drivers/video/fbdev/stifb.c
> +++ b/drivers/video/fbdev/stifb.c
> @@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb)
>  
>  /* ------------ Interfaces to hardware functions ------------ */
>  
> -static struct fb_ops stifb_ops = {
> +static const struct fb_ops stifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= stifb_setcolreg,
>  	.fb_blank	= stifb_blank,
> diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c
> index 784c9bd5d502..15b079505a00 100644
> --- a/drivers/video/fbdev/sunxvr1000.c
> +++ b/drivers/video/fbdev/sunxvr1000.c
> @@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno,
>  	return 0;
>  }
>  
> -static struct fb_ops gfb_ops = {
> +static const struct fb_ops gfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= gfb_setcolreg,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c
> index 31683e5a8b79..1d3bacd9d5ac 100644
> --- a/drivers/video/fbdev/sunxvr2500.c
> +++ b/drivers/video/fbdev/sunxvr2500.c
> @@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno,
>  	return 0;
>  }
>  
> -static struct fb_ops s3d_ops = {
> +static const struct fb_ops s3d_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= s3d_setcolreg,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c
> index d392976126a6..9daf17b11106 100644
> --- a/drivers/video/fbdev/sunxvr500.c
> +++ b/drivers/video/fbdev/sunxvr500.c
> @@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area)
>  	spin_unlock_irqrestore(&ep->lock, flags);
>  }
>  
> -static struct fb_ops e3d_ops = {
> +static const struct fb_ops e3d_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= e3d_setcolreg,
>  	.fb_fillrect		= e3d_fillrect,
> diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
> index 7897f86fb23e..34b2e5b6e84a 100644
> --- a/drivers/video/fbdev/tcx.c
> +++ b/drivers/video/fbdev/tcx.c
> @@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops tcx_ops = {
> +static const struct fb_ops tcx_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= tcx_setcolreg,
>  	.fb_blank		= tcx_blank,
> diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c
> index fdbb1ea66e6c..0349cf69652f 100644
> --- a/drivers/video/fbdev/tdfxfb.c
> +++ b/drivers/video/fbdev/tdfxfb.c
> @@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -static struct fb_ops tdfxfb_ops = {
> +static const struct fb_ops tdfxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= tdfxfb_check_var,
>  	.fb_set_par	= tdfxfb_set_par,
> diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c
> index 286b2371c7dd..7cd262858241 100644
> --- a/drivers/video/fbdev/tgafb.c
> +++ b/drivers/video/fbdev/tgafb.c
> @@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver;
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops tgafb_ops = {
> +static const struct fb_ops tgafb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_check_var		= tgafb_check_var,
>  	.fb_set_par		= tgafb_set_par,
> diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c
> index 4f2fcea10d2b..50111966c981 100644
> --- a/drivers/video/fbdev/tmiofb.c
> +++ b/drivers/video/fbdev/tmiofb.c
> @@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops tmiofb_ops = {
> +static const struct fb_ops tmiofb_ops = {
>  	.owner		= THIS_MODULE,
>  
>  	.fb_ioctl	= tmiofb_ioctl,
> diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c
> index da74bf6c5996..715509917eaa 100644
> --- a/drivers/video/fbdev/tridentfb.c
> +++ b/drivers/video/fbdev/tridentfb.c
> @@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info)
>  	return (blank_mode = FB_BLANK_NORMAL) ? 1 : 0;
>  }
>  
> -static struct fb_ops tridentfb_ops = {
> +static const struct fb_ops tridentfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_setcolreg = tridentfb_setcolreg,
>  	.fb_pan_display = tridentfb_pan_display,
> diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
> index e04fde9c1fcd..ca8d7343aaa1 100644
> --- a/drivers/video/fbdev/valkyriefb.c
> +++ b/drivers/video/fbdev/valkyriefb.c
> @@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p);
>  static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix);
>  static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p);
>  
> -static struct fb_ops valkyriefb_ops = {
> +static const struct fb_ops valkyriefb_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_check_var =	valkyriefb_check_var,
>  	.fb_set_par =	valkyriefb_set_par,
> diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
> index 54127905bfe7..95d3c59867d0 100644
> --- a/drivers/video/fbdev/vfb.c
> +++ b/drivers/video/fbdev/vfb.c
> @@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
>  static int vfb_mmap(struct fb_info *info,
>  		    struct vm_area_struct *vma);
>  
> -static struct fb_ops vfb_ops = {
> +static const struct fb_ops vfb_ops = {
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
>  	.fb_check_var	= vfb_check_var,
> diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c
> index 2c6a576ed84c..a20eeb8308ff 100644
> --- a/drivers/video/fbdev/vga16fb.c
> +++ b/drivers/video/fbdev/vga16fb.c
> @@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info)
>  	framebuffer_release(info);
>  }
>  
> -static struct fb_ops vga16fb_ops = {
> +static const struct fb_ops vga16fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open        = vga16fb_open,
>  	.fb_release     = vga16fb_release,
> diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c
> index be8d9702cbb2..f744479dc7df 100644
> --- a/drivers/video/fbdev/vt8500lcdfb.c
> +++ b/drivers/video/fbdev/vt8500lcdfb.c
> @@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vt8500lcd_ops = {
> +static const struct fb_ops vt8500lcd_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_set_par	= vt8500lcd_set_par,
>  	.fb_setcolreg	= vt8500lcd_setcolreg,
> diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c
> index c339a8fbad81..7b3eef1b893f 100644
> --- a/drivers/video/fbdev/vt8623fb.c
> +++ b/drivers/video/fbdev/vt8623fb.c
> @@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops vt8623fb_ops = {
> +static const struct fb_ops vt8623fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= vt8623fb_open,
>  	.fb_release	= vt8623fb_release,
> diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
> index 3be07807edcd..fe628ec20149 100644
> --- a/drivers/video/fbdev/w100fb.c
> +++ b/drivers/video/fbdev/w100fb.c
> @@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info)
>  /*
>   *  Frame buffer operations
>   */
> -static struct fb_ops w100fb_ops = {
> +static const struct fb_ops w100fb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_check_var = w100fb_check_var,
>  	.fb_set_par   = w100fb_set_par,
> diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c
> index 17c780315ca5..b656eff58c23 100644
> --- a/drivers/video/fbdev/wm8505fb.c
> +++ b/drivers/video/fbdev/wm8505fb.c
> @@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops wm8505fb_ops = {
> +static const struct fb_ops wm8505fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_set_par	= wm8505fb_set_par,
>  	.fb_setcolreg	= wm8505fb_setcolreg,
> diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
> index a3d6b6db221b..00307b8693bf 100644
> --- a/drivers/video/fbdev/xen-fbfront.c
> +++ b/drivers/video/fbdev/xen-fbfront.c
> @@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops xenfb_fb_ops = {
> +static const struct fb_ops xenfb_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= fb_sys_read,
>  	.fb_write	= xenfb_write,
> diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c
> index 8628829b470d..ca4ff658cad0 100644
> --- a/drivers/video/fbdev/xilinxfb.c
> +++ b/drivers/video/fbdev/xilinxfb.c
> @@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi)
>  	return 0; /* success */
>  }
>  
> -static struct fb_ops xilinxfb_ops = {
> +static const struct fb_ops xilinxfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= xilinx_fb_setcolreg,
>  	.fb_blank		= xilinx_fb_blank,

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 08/12] video: constify fb ops across all drivers
@ 2019-12-05  9:37     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:37 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> This does not cover all drivers; some actually modify the fbops struct,
> for example to adjust for different configurations, and others do more
> involved things that I'd rather not touch in practically obsolete
> drivers. Mostly this is the low hanging fruit where we can add "const"
> and be done with it.
>
> v3:
> - un-constify atyfb, mb862xx, nvidia and uvesabf (0day)
>
> v2:
> - fix typo (Christophe de Dinechin)
> - use "static const" instead of "const static" in mx3fb.c
> - also constify smscufx.c
>
> Cc: linux-fbdev@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed up to and including this patch to drm-misc-next, thanks for the
reviews and acks.

BR,
Jani.

> ---
>  drivers/video/fbdev/68328fb.c                  | 2 +-
>  drivers/video/fbdev/acornfb.c                  | 2 +-
>  drivers/video/fbdev/amba-clcd.c                | 2 +-
>  drivers/video/fbdev/amifb.c                    | 2 +-
>  drivers/video/fbdev/arcfb.c                    | 2 +-
>  drivers/video/fbdev/arkfb.c                    | 2 +-
>  drivers/video/fbdev/asiliantfb.c               | 2 +-
>  drivers/video/fbdev/atmel_lcdfb.c              | 2 +-
>  drivers/video/fbdev/aty/aty128fb.c             | 2 +-
>  drivers/video/fbdev/aty/radeon_base.c          | 2 +-
>  drivers/video/fbdev/au1100fb.c                 | 2 +-
>  drivers/video/fbdev/au1200fb.c                 | 2 +-
>  drivers/video/fbdev/broadsheetfb.c             | 2 +-
>  drivers/video/fbdev/bw2.c                      | 2 +-
>  drivers/video/fbdev/carminefb.c                | 2 +-
>  drivers/video/fbdev/cg14.c                     | 2 +-
>  drivers/video/fbdev/cg3.c                      | 2 +-
>  drivers/video/fbdev/cg6.c                      | 2 +-
>  drivers/video/fbdev/chipsfb.c                  | 2 +-
>  drivers/video/fbdev/cirrusfb.c                 | 2 +-
>  drivers/video/fbdev/clps711x-fb.c              | 2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c             | 2 +-
>  drivers/video/fbdev/controlfb.c                | 2 +-
>  drivers/video/fbdev/cyber2000fb.c              | 2 +-
>  drivers/video/fbdev/da8xx-fb.c                 | 2 +-
>  drivers/video/fbdev/dnfb.c                     | 2 +-
>  drivers/video/fbdev/efifb.c                    | 2 +-
>  drivers/video/fbdev/ep93xx-fb.c                | 2 +-
>  drivers/video/fbdev/fb-puv3.c                  | 2 +-
>  drivers/video/fbdev/ffb.c                      | 2 +-
>  drivers/video/fbdev/fm2fb.c                    | 2 +-
>  drivers/video/fbdev/fsl-diu-fb.c               | 2 +-
>  drivers/video/fbdev/g364fb.c                   | 2 +-
>  drivers/video/fbdev/gbefb.c                    | 2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c         | 2 +-
>  drivers/video/fbdev/geode/gxfb_core.c          | 2 +-
>  drivers/video/fbdev/geode/lxfb_core.c          | 2 +-
>  drivers/video/fbdev/goldfishfb.c               | 2 +-
>  drivers/video/fbdev/grvga.c                    | 2 +-
>  drivers/video/fbdev/gxt4500.c                  | 2 +-
>  drivers/video/fbdev/hecubafb.c                 | 2 +-
>  drivers/video/fbdev/hgafb.c                    | 2 +-
>  drivers/video/fbdev/hitfb.c                    | 2 +-
>  drivers/video/fbdev/hpfb.c                     | 2 +-
>  drivers/video/fbdev/hyperv_fb.c                | 2 +-
>  drivers/video/fbdev/i740fb.c                   | 2 +-
>  drivers/video/fbdev/imsttfb.c                  | 2 +-
>  drivers/video/fbdev/imxfb.c                    | 2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c       | 2 +-
>  drivers/video/fbdev/kyro/fbdev.c               | 2 +-
>  drivers/video/fbdev/leo.c                      | 2 +-
>  drivers/video/fbdev/macfb.c                    | 2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c    | 2 +-
>  drivers/video/fbdev/maxinefb.c                 | 2 +-
>  drivers/video/fbdev/mbx/mbxfb.c                | 2 +-
>  drivers/video/fbdev/metronomefb.c              | 2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c             | 2 +-
>  drivers/video/fbdev/mx3fb.c                    | 5 +++--
>  drivers/video/fbdev/neofb.c                    | 2 +-
>  drivers/video/fbdev/ocfb.c                     | 2 +-
>  drivers/video/fbdev/offb.c                     | 2 +-
>  drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +-
>  drivers/video/fbdev/p9100.c                    | 2 +-
>  drivers/video/fbdev/platinumfb.c               | 2 +-
>  drivers/video/fbdev/pm2fb.c                    | 2 +-
>  drivers/video/fbdev/pm3fb.c                    | 2 +-
>  drivers/video/fbdev/pmag-aa-fb.c               | 2 +-
>  drivers/video/fbdev/pmag-ba-fb.c               | 2 +-
>  drivers/video/fbdev/pmagb-b-fb.c               | 2 +-
>  drivers/video/fbdev/ps3fb.c                    | 2 +-
>  drivers/video/fbdev/pvr2fb.c                   | 2 +-
>  drivers/video/fbdev/pxa168fb.c                 | 2 +-
>  drivers/video/fbdev/pxafb.c                    | 4 ++--
>  drivers/video/fbdev/q40fb.c                    | 2 +-
>  drivers/video/fbdev/riva/fbdev.c               | 2 +-
>  drivers/video/fbdev/s3c-fb.c                   | 2 +-
>  drivers/video/fbdev/s3c2410fb.c                | 2 +-
>  drivers/video/fbdev/s3fb.c                     | 2 +-
>  drivers/video/fbdev/sa1100fb.c                 | 2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c   | 2 +-
>  drivers/video/fbdev/sh7760fb.c                 | 2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c         | 4 ++--
>  drivers/video/fbdev/simplefb.c                 | 2 +-
>  drivers/video/fbdev/sis/sis_main.c             | 2 +-
>  drivers/video/fbdev/skeletonfb.c               | 2 +-
>  drivers/video/fbdev/sm712fb.c                  | 2 +-
>  drivers/video/fbdev/smscufx.c                  | 2 +-
>  drivers/video/fbdev/ssd1307fb.c                | 2 +-
>  drivers/video/fbdev/sstfb.c                    | 2 +-
>  drivers/video/fbdev/stifb.c                    | 2 +-
>  drivers/video/fbdev/sunxvr1000.c               | 2 +-
>  drivers/video/fbdev/sunxvr2500.c               | 2 +-
>  drivers/video/fbdev/sunxvr500.c                | 2 +-
>  drivers/video/fbdev/tcx.c                      | 2 +-
>  drivers/video/fbdev/tdfxfb.c                   | 2 +-
>  drivers/video/fbdev/tgafb.c                    | 2 +-
>  drivers/video/fbdev/tmiofb.c                   | 2 +-
>  drivers/video/fbdev/tridentfb.c                | 2 +-
>  drivers/video/fbdev/valkyriefb.c               | 2 +-
>  drivers/video/fbdev/vfb.c                      | 2 +-
>  drivers/video/fbdev/vga16fb.c                  | 2 +-
>  drivers/video/fbdev/vt8500lcdfb.c              | 2 +-
>  drivers/video/fbdev/vt8623fb.c                 | 2 +-
>  drivers/video/fbdev/w100fb.c                   | 2 +-
>  drivers/video/fbdev/wm8505fb.c                 | 2 +-
>  drivers/video/fbdev/xen-fbfront.c              | 2 +-
>  drivers/video/fbdev/xilinxfb.c                 | 2 +-
>  107 files changed, 111 insertions(+), 110 deletions(-)
>
> diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c
> index d48e96088f76..491fd5a82993 100644
> --- a/drivers/video/fbdev/68328fb.c
> +++ b/drivers/video/fbdev/68328fb.c
> @@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var,
>  			   struct fb_info *info);
>  static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma);
>  
> -static struct fb_ops mc68x328fb_ops = {
> +static const struct fb_ops mc68x328fb_ops = {
>  	.fb_check_var	= mc68x328fb_check_var,
>  	.fb_set_par	= mc68x328fb_set_par,
>  	.fb_setcolreg	= mc68x328fb_setcolreg,
> diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
> index 7cacae5a8797..a3af49529173 100644
> --- a/drivers/video/fbdev/acornfb.c
> +++ b/drivers/video/fbdev/acornfb.c
> @@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops acornfb_ops = {
> +static const struct fb_ops acornfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= acornfb_check_var,
>  	.fb_set_par	= acornfb_set_par,
> diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
> index 7de43be6ef2c..c3d55fc6c4e0 100644
> --- a/drivers/video/fbdev/amba-clcd.c
> +++ b/drivers/video/fbdev/amba-clcd.c
> @@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info,
>  	return ret;
>  }
>  
> -static struct fb_ops clcdfb_ops = {
> +static const struct fb_ops clcdfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= clcdfb_check_var,
>  	.fb_set_par	= clcdfb_set_par,
> diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
> index 91ddc9602014..20e03e00b66d 100644
> --- a/drivers/video/fbdev/amifb.c
> +++ b/drivers/video/fbdev/amifb.c
> @@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id)
>  }
>  
>  
> -static struct fb_ops amifb_ops = {
> +static const struct fb_ops amifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= amifb_check_var,
>  	.fb_set_par	= amifb_set_par,
> diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
> index a48741aab240..314ab82e01c0 100644
> --- a/drivers/video/fbdev/arcfb.c
> +++ b/drivers/video/fbdev/arcfb.c
> @@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
>  	return err;
>  }
>  
> -static struct fb_ops arcfb_ops = {
> +static const struct fb_ops arcfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= arcfb_open,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
> index f940e8b66b85..11ab9a153860 100644
> --- a/drivers/video/fbdev/arkfb.c
> +++ b/drivers/video/fbdev/arkfb.c
> @@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops arkfb_ops = {
> +static const struct fb_ops arkfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= arkfb_open,
>  	.fb_release	= arkfb_release,
> diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c
> index ea31054a28ca..3e006da47752 100644
> --- a/drivers/video/fbdev/asiliantfb.c
> +++ b/drivers/video/fbdev/asiliantfb.c
> @@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info);
>  static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>  				u_int transp, struct fb_info *info);
>  
> -static struct fb_ops asiliantfb_ops = {
> +static const struct fb_ops asiliantfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= asiliantfb_check_var,
>  	.fb_set_par	= asiliantfb_set_par,
> diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c
> index 5ff8e0320d95..d567f5d56c13 100644
> --- a/drivers/video/fbdev/atmel_lcdfb.c
> +++ b/drivers/video/fbdev/atmel_lcdfb.c
> @@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info)
>  	return ((blank_mode == FB_BLANK_NORMAL) ? 1 : 0);
>  }
>  
> -static struct fb_ops atmel_lcdfb_ops = {
> +static const struct fb_ops atmel_lcdfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= atmel_lcdfb_check_var,
>  	.fb_set_par	= atmel_lcdfb_set_par,
> diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
> index fc1e45d44719..d7e41c8dd533 100644
> --- a/drivers/video/fbdev/aty/aty128fb.c
> +++ b/drivers/video/fbdev/aty/aty128fb.c
> @@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power);
>  			  (readb(bios + (v) + 3) << 24))
>  
>  
> -static struct fb_ops aty128fb_ops = {
> +static const struct fb_ops aty128fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= aty128fb_check_var,
>  	.fb_set_par	= aty128fb_set_par,
> diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
> index 4ca07866f2f6..3af00e3b965e 100644
> --- a/drivers/video/fbdev/aty/radeon_base.c
> +++ b/drivers/video/fbdev/aty/radeon_base.c
> @@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info)
>  }
>  
>  
> -static struct fb_ops radeonfb_ops = {
> +static const struct fb_ops radeonfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_check_var		= radeonfb_check_var,
>  	.fb_set_par		= radeonfb_set_par,
> diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
> index 99941ae1f3a1..37a6512feda0 100644
> --- a/drivers/video/fbdev/au1100fb.c
> +++ b/drivers/video/fbdev/au1100fb.c
> @@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
>  			fbdev->fb_len);
>  }
>  
> -static struct fb_ops au1100fb_ops =
> +static const struct fb_ops au1100fb_ops =
>  {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= au1100fb_fb_setcolreg,
> diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c
> index 265d3b45efd0..c00e01a17368 100644
> --- a/drivers/video/fbdev/au1200fb.c
> +++ b/drivers/video/fbdev/au1200fb.c
> @@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd,
>  }
>  
>  
> -static struct fb_ops au1200fb_fb_ops = {
> +static const struct fb_ops au1200fb_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= au1200fb_fb_check_var,
>  	.fb_set_par	= au1200fb_fb_set_par,
> diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
> index d6ba348deb9f..fd66f4d4a621 100644
> --- a/drivers/video/fbdev/broadsheetfb.c
> +++ b/drivers/video/fbdev/broadsheetfb.c
> @@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops broadsheetfb_ops = {
> +static const struct fb_ops broadsheetfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write	= broadsheetfb_write,
> diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c
> index 436f10f3d375..0d9a6bb57a09 100644
> --- a/drivers/video/fbdev/bw2.c
> +++ b/drivers/video/fbdev/bw2.c
> @@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops bw2_ops = {
> +static const struct fb_ops bw2_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_blank		= bw2_blank,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
> index 9f3be0258623..bf3f2a9598b1 100644
> --- a/drivers/video/fbdev/carminefb.c
> +++ b/drivers/video/fbdev/carminefb.c
> @@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw)
>  	return 0;
>  }
>  
> -static struct fb_ops carminefb_ops = {
> +static const struct fb_ops carminefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_fillrect	= cfb_fillrect,
>  	.fb_copyarea	= cfb_copyarea,
> diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c
> index d80d99db3a46..a620b51cf7d0 100644
> --- a/drivers/video/fbdev/cg14.c
> +++ b/drivers/video/fbdev/cg14.c
> @@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg14_ops = {
> +static const struct fb_ops cg14_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg14_setcolreg,
>  	.fb_pan_display		= cg14_pan_display,
> diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c
> index 09f616dddfd7..77f6470ce665 100644
> --- a/drivers/video/fbdev/cg3.c
> +++ b/drivers/video/fbdev/cg3.c
> @@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg3_ops = {
> +static const struct fb_ops cg3_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg3_setcolreg,
>  	.fb_blank		= cg3_blank,
> diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c
> index d5888aecc2fb..a1c68cd48d7e 100644
> --- a/drivers/video/fbdev/cg6.c
> +++ b/drivers/video/fbdev/cg6.c
> @@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg6_ops = {
> +static const struct fb_ops cg6_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg6_setcolreg,
>  	.fb_blank		= cg6_blank,
> diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c
> index f4dc320dcafe..998067b701fa 100644
> --- a/drivers/video/fbdev/chipsfb.c
> +++ b/drivers/video/fbdev/chipsfb.c
> @@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>  			     u_int transp, struct fb_info *info);
>  static int chipsfb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops chipsfb_ops = {
> +static const struct fb_ops chipsfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= chipsfb_check_var,
>  	.fb_set_par	= chipsfb_set_par,
> diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c
> index e4ce5667b125..c3a3e344cee3 100644
> --- a/drivers/video/fbdev/cirrusfb.c
> +++ b/drivers/video/fbdev/cirrusfb.c
> @@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info)
>  #endif /* CONFIG_ZORRO */
>  
>  /* function table of the above functions */
> -static struct fb_ops cirrusfb_ops = {
> +static const struct fb_ops cirrusfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= cirrusfb_open,
>  	.fb_release	= cirrusfb_release,
> diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
> index cabbc721f894..c5d15c6db287 100644
> --- a/drivers/video/fbdev/clps711x-fb.c
> +++ b/drivers/video/fbdev/clps711x-fb.c
> @@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops clps711x_fb_ops = {
> +static const struct fb_ops clps711x_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= clps711x_fb_setcolreg,
>  	.fb_check_var	= clps711x_fb_check_var,
> diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
> index 544946901e8b..5f8b6324d2e8 100644
> --- a/drivers/video/fbdev/cobalt_lcdfb.c
> +++ b/drivers/video/fbdev/cobalt_lcdfb.c
> @@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -static struct fb_ops cobalt_lcd_fbops = {
> +static const struct fb_ops cobalt_lcd_fbops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= cobalt_lcdfb_read,
>  	.fb_write	= cobalt_lcdfb_write,
> diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
> index 9a680ef3ffc3..38b61cdb5ca4 100644
> --- a/drivers/video/fbdev/controlfb.c
> +++ b/drivers/video/fbdev/controlfb.c
> @@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM;
>  static int default_cmode __initdata = CMODE_NVRAM;
>  
>  
> -static struct fb_ops controlfb_ops = {
> +static const struct fb_ops controlfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= controlfb_check_var,
>  	.fb_set_par	= controlfb_set_par,
> diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
> index 3a2d9ff0aa42..460826a7ad55 100644
> --- a/drivers/video/fbdev/cyber2000fb.c
> +++ b/drivers/video/fbdev/cyber2000fb.c
> @@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops cyber2000fb_ops = {
> +static const struct fb_ops cyber2000fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= cyber2000fb_check_var,
>  	.fb_set_par	= cyber2000fb_set_par,
> diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c
> index 2d3dcc52fcf3..73c3c4c8cc12 100644
> --- a/drivers/video/fbdev/da8xx-fb.c
> +++ b/drivers/video/fbdev/da8xx-fb.c
> @@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops da8xx_fb_ops = {
> +static const struct fb_ops da8xx_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = fb_check_var,
>  	.fb_set_par = da8xxfb_set_par,
> diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c
> index 8da517eaa4a3..3688f9165848 100644
> --- a/drivers/video/fbdev/dnfb.c
> +++ b/drivers/video/fbdev/dnfb.c
> @@ -108,7 +108,7 @@
>  static int dnfb_blank(int blank, struct fb_info *info);
>  static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
>  
> -static struct fb_ops dn_fb_ops = {
> +static const struct fb_ops dn_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= dnfb_blank,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index 51d97ec4f58f..f03f9fb60c26 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info)
>  	fb_dealloc_cmap(&info->cmap);
>  }
>  
> -static struct fb_ops efifb_ops = {
> +static const struct fb_ops efifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= efifb_destroy,
>  	.fb_setcolreg	= efifb_setcolreg,
> diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c
> index d04a047094fc..cda2ef337423 100644
> --- a/drivers/video/fbdev/ep93xx-fb.c
> +++ b/drivers/video/fbdev/ep93xx-fb.c
> @@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops ep93xxfb_ops = {
> +static const struct fb_ops ep93xxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= ep93xxfb_check_var,
>  	.fb_set_par	= ep93xxfb_set_par,
> diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c
> index fa62c4dff7d1..75df6aabac21 100644
> --- a/drivers/video/fbdev/fb-puv3.c
> +++ b/drivers/video/fbdev/fb-puv3.c
> @@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info,
>  	return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len);
>  }
>  
> -static struct fb_ops unifb_ops = {
> +static const struct fb_ops unifb_ops = {
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
>  	.fb_check_var	= unifb_check_var,
> diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c
> index cd2d1db239a2..948b73184433 100644
> --- a/drivers/video/fbdev/ffb.c
> +++ b/drivers/video/fbdev/ffb.c
> @@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops ffb_ops = {
> +static const struct fb_ops ffb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= ffb_setcolreg,
>  	.fb_blank		= ffb_blank,
> diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c
> index ac7a4ebfd390..3b727d528fde 100644
> --- a/drivers/video/fbdev/fm2fb.c
> +++ b/drivers/video/fbdev/fm2fb.c
> @@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>                             u_int transp, struct fb_info *info);
>  static int fm2fb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops fm2fb_ops = {
> +static const struct fb_ops fm2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= fm2fb_setcolreg,
>  	.fb_blank	= fm2fb_blank,
> diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
> index d19f58263b4e..7cacabdd5f12 100644
> --- a/drivers/video/fbdev/fsl-diu-fb.c
> +++ b/drivers/video/fbdev/fsl-diu-fb.c
> @@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user)
>  	return res;
>  }
>  
> -static struct fb_ops fsl_diu_ops = {
> +static const struct fb_ops fsl_diu_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = fsl_diu_check_var,
>  	.fb_set_par = fsl_diu_set_par,
> diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
> index 223896cc5f7d..845b79da2a7c 100644
> --- a/drivers/video/fbdev/g364fb.c
> +++ b/drivers/video/fbdev/g364fb.c
> @@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
>  static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
>  static int g364fb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops g364fb_ops = {
> +static const struct fb_ops g364fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= g364fb_setcolreg,
>  	.fb_pan_display	= g364fb_pan_display,
> diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c
> index b9f6a82a0495..31270a8986e8 100644
> --- a/drivers/video/fbdev/gbefb.c
> +++ b/drivers/video/fbdev/gbefb.c
> @@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info,
>  	return 0;
>  }
>  
> -static struct fb_ops gbefb_ops = {
> +static const struct fb_ops gbefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gbefb_check_var,
>  	.fb_set_par	= gbefb_set_par,
> diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c
> index 737e472fac14..5d34d89fb665 100644
> --- a/drivers/video/fbdev/geode/gx1fb_core.c
> +++ b/drivers/video/fbdev/geode/gx1fb_core.c
> @@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops gx1fb_ops = {
> +static const struct fb_ops gx1fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gx1fb_check_var,
>  	.fb_set_par	= gx1fb_set_par,
> diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
> index 435ce2aa4240..d38a148d4746 100644
> --- a/drivers/video/fbdev/geode/gxfb_core.c
> +++ b/drivers/video/fbdev/geode/gxfb_core.c
> @@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
>  	return 0;
>  }
>  
> -static struct fb_ops gxfb_ops = {
> +static const struct fb_ops gxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gxfb_check_var,
>  	.fb_set_par	= gxfb_set_par,
> diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c
> index b0f07d676eb3..adc2d9c2395e 100644
> --- a/drivers/video/fbdev/geode/lxfb_core.c
> +++ b/drivers/video/fbdev/geode/lxfb_core.c
> @@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
>  	return 0;
>  }
>  
> -static struct fb_ops lxfb_ops = {
> +static const struct fb_ops lxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= lxfb_check_var,
>  	.fb_set_par	= lxfb_set_par,
> diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
> index f60ac276703d..9c83ec3f8e1f 100644
> --- a/drivers/video/fbdev/goldfishfb.c
> +++ b/drivers/video/fbdev/goldfishfb.c
> @@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops goldfish_fb_ops = {
> +static const struct fb_ops goldfish_fb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_check_var   = goldfish_fb_check_var,
>  	.fb_set_par     = goldfish_fb_set_par,
> diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c
> index d22e8b0c906d..07dda03e0957 100644
> --- a/drivers/video/fbdev/grvga.c
> +++ b/drivers/video/fbdev/grvga.c
> @@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var,
>  	return 0;
>  }
>  
> -static struct fb_ops grvga_ops = {
> +static const struct fb_ops grvga_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_check_var   = grvga_check_var,
>  	.fb_set_par	= grvga_set_par,
> diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c
> index c7502fd8f447..13ded3a10708 100644
> --- a/drivers/video/fbdev/gxt4500.c
> +++ b/drivers/video/fbdev/gxt4500.c
> @@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = {
>  	.mmio_len = 0x20000,
>  };
>  
> -static struct fb_ops gxt4500_ops = {
> +static const struct fb_ops gxt4500_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = gxt4500_check_var,
>  	.fb_set_par = gxt4500_set_par,
> diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c
> index 8577195cb533..00d77105161a 100644
> --- a/drivers/video/fbdev/hecubafb.c
> +++ b/drivers/video/fbdev/hecubafb.c
> @@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops hecubafb_ops = {
> +static const struct fb_ops hecubafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write	= hecubafb_write,
> diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c
> index 59e1cae57948..a45fcff1461f 100644
> --- a/drivers/video/fbdev/hgafb.c
> +++ b/drivers/video/fbdev/hgafb.c
> @@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
>  	}
>  }
>  
> -static struct fb_ops hgafb_ops = {
> +static const struct fb_ops hgafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= hgafb_open,
>  	.fb_release	= hgafb_release,
> diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c
> index abe3e54d4506..009e5d2aa100 100644
> --- a/drivers/video/fbdev/hitfb.c
> +++ b/drivers/video/fbdev/hitfb.c
> @@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops hitfb_ops = {
> +static const struct fb_ops hitfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= hitfb_check_var,
>  	.fb_set_par		= hitfb_set_par,
> diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
> index a79af8f069d1..f02be0db335e 100644
> --- a/drivers/video/fbdev/hpfb.c
> +++ b/drivers/video/fbdev/hpfb.c
> @@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops hpfb_ops = {
> +static const struct fb_ops hpfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= hpfb_setcolreg,
>  	.fb_blank	= hpfb_blank,
> diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
> index 2dcb7c58b31e..fcd546e5c031 100644
> --- a/drivers/video/fbdev/hyperv_fb.c
> +++ b/drivers/video/fbdev/hyperv_fb.c
> @@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p,
>  		synthvid_update(p);
>  }
>  
> -static struct fb_ops hvfb_ops = {
> +static const struct fb_ops hvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = hvfb_check_var,
>  	.fb_set_par = hvfb_set_par,
> diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c
> index 347cf8babc3e..c65ec7386e87 100644
> --- a/drivers/video/fbdev/i740fb.c
> +++ b/drivers/video/fbdev/i740fb.c
> @@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info)
>  	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
>  }
>  
> -static struct fb_ops i740fb_ops = {
> +static const struct fb_ops i740fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= i740fb_open,
>  	.fb_release	= i740fb_release,
> diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
> index 58b01c7d9056..3ac053b88495 100644
> --- a/drivers/video/fbdev/imsttfb.c
> +++ b/drivers/video/fbdev/imsttfb.c
> @@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = {
>  	.remove =	imsttfb_remove,
>  };
>  
> -static struct fb_ops imsttfb_ops = {
> +static const struct fb_ops imsttfb_ops = {
>  	.owner 		= THIS_MODULE,
>  	.fb_check_var	= imsttfb_check_var,
>  	.fb_set_par 	= imsttfb_set_par,
> diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
> index b3286d1fa543..08a17eb2a5c7 100644
> --- a/drivers/video/fbdev/imxfb.c
> +++ b/drivers/video/fbdev/imxfb.c
> @@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops imxfb_ops = {
> +static const struct fb_ops imxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= imxfb_check_var,
>  	.fb_set_par	= imxfb_set_par,
> diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c
> index a76c61512c60..c744891781a5 100644
> --- a/drivers/video/fbdev/intelfb/intelfbdrv.c
> +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c
> @@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = {
>  static int num_registered = 0;
>  
>  /* fb ops */
> -static struct fb_ops intel_fb_ops = {
> +static const struct fb_ops intel_fb_ops = {
>  	.owner =		THIS_MODULE,
>  	.fb_open =              intelfb_open,
>  	.fb_release =           intelfb_release,
> diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c
> index a7bd9f25911b..72dff2e42e3a 100644
> --- a/drivers/video/fbdev/kyro/fbdev.c
> +++ b/drivers/video/fbdev/kyro/fbdev.c
> @@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = {
>  	.remove		= kyrofb_remove,
>  };
>  
> -static struct fb_ops kyrofb_ops = {
> +static const struct fb_ops kyrofb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= kyrofb_check_var,
>  	.fb_set_par	= kyrofb_set_par,
> diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c
> index 5b1141ac182b..40b11cce0ad6 100644
> --- a/drivers/video/fbdev/leo.c
> +++ b/drivers/video/fbdev/leo.c
> @@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops leo_ops = {
> +static const struct fb_ops leo_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= leo_setcolreg,
>  	.fb_blank		= leo_blank,
> diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c
> index 9a6feee96133..e05a97662ca8 100644
> --- a/drivers/video/fbdev/macfb.c
> +++ b/drivers/video/fbdev/macfb.c
> @@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green,
>  	return 0;
>  }
>  
> -static struct fb_ops macfb_ops = {
> +static const struct fb_ops macfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= macfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> index d2a81a2c3ac0..7655afa3fd50 100644
> --- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> +++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> @@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) {
>  #undef m2info
>  }
>  
> -static struct fb_ops matroxfb_dh_ops = {
> +static const struct fb_ops matroxfb_dh_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_open =	matroxfb_dh_open,
>  	.fb_release =	matroxfb_dh_release,
> diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c
> index 5bb1b5c308a7..ae1a42bcb0ea 100644
> --- a/drivers/video/fbdev/maxinefb.c
> +++ b/drivers/video/fbdev/maxinefb.c
> @@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green,
>  	return 0;
>  }
>  
> -static struct fb_ops maxinefb_ops = {
> +static const struct fb_ops maxinefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= maxinefb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c
> index 50935252b50b..25dad4507d77 100644
> --- a/drivers/video/fbdev/mbx/mbxfb.c
> +++ b/drivers/video/fbdev/mbx/mbxfb.c
> @@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd,
>  	return -EINVAL;
>  }
>  
> -static struct fb_ops mbxfb_ops = {
> +static const struct fb_ops mbxfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = mbxfb_check_var,
>  	.fb_set_par = mbxfb_set_par,
> diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c
> index bb4fee52e501..a42e2eceee48 100644
> --- a/drivers/video/fbdev/metronomefb.c
> +++ b/drivers/video/fbdev/metronomefb.c
> @@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops metronomefb_ops = {
> +static const struct fb_ops metronomefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_write	= metronomefb_write,
>  	.fb_fillrect	= metronomefb_fillrect,
> diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
> index 47bc7c59bbd8..33db0850086f 100644
> --- a/drivers/video/fbdev/mmp/fb/mmpfb.c
> +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
> @@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops mmpfb_ops = {
> +static const struct fb_ops mmpfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= mmpfb_blank,
>  	.fb_check_var	= mmpfb_check_var,
> diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
> index bafd5f5fac5a..4af28e4421e5 100644
> --- a/drivers/video/fbdev/mx3fb.c
> +++ b/drivers/video/fbdev/mx3fb.c
> @@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
>   * invoked by the core framebuffer driver to perform operations like
>   * blitting, rectangle filling, copy regions and cursor definition.
>   */
> -static struct fb_ops mx3fb_ops = {
> +static const struct fb_ops mx3fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_set_par = mx3fb_set_par,
>  	.fb_check_var = mx3fb_check_var,
> @@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi)
>   * mx3fb_init_fbinfo() - initialize framebuffer information object.
>   * @return:	initialized framebuffer structure.
>   */
> -static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
> +static struct fb_info *mx3fb_init_fbinfo(struct device *dev,
> +					 const struct fb_ops *ops)
>  {
>  	struct fb_info *fbi;
>  	struct mx3fb_info *mx3fbi;
> diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
> index b770946a0920..e6ea853c1723 100644
> --- a/drivers/video/fbdev/neofb.c
> +++ b/drivers/video/fbdev/neofb.c
> @@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  }
>  */
>  
> -static struct fb_ops neofb_ops = {
> +static const struct fb_ops neofb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= neofb_open,
>  	.fb_release	= neofb_release,
> diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c
> index a970edc2a6f8..c8cee2d890dc 100644
> --- a/drivers/video/fbdev/ocfb.c
> +++ b/drivers/video/fbdev/ocfb.c
> @@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev)
>  	return 0;
>  }
>  
> -static struct fb_ops ocfb_ops = {
> +static const struct fb_ops ocfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= ocfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index fbc6eafb63c7..5cd0f5f6a4ae 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info)
>  	framebuffer_release(info);
>  }
>  
> -static struct fb_ops offb_ops = {
> +static const struct fb_ops offb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= offb_destroy,
>  	.fb_setcolreg	= offb_setcolreg,
> diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> index 858c2c011d19..8dfa9158ba78 100644
> --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> @@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf,
>  }
>  #endif
>  
> -static struct fb_ops omapfb_ops = {
> +static const struct fb_ops omapfb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_open        = omapfb_open,
>  	.fb_release     = omapfb_release,
> diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c
> index 8c18cc51aae2..6da672e92643 100644
> --- a/drivers/video/fbdev/p9100.c
> +++ b/drivers/video/fbdev/p9100.c
> @@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops p9100_ops = {
> +static const struct fb_ops p9100_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= p9100_setcolreg,
>  	.fb_blank		= p9100_blank,
> diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c
> index 632b246ca35f..ce413a9df06e 100644
> --- a/drivers/video/fbdev/platinumfb.c
> +++ b/drivers/video/fbdev/platinumfb.c
> @@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var,
>   * Interface used by the world
>   */
>  
> -static struct fb_ops platinumfb_ops = {
> +static const struct fb_ops platinumfb_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_check_var	= platinumfb_check_var,
>  	.fb_set_par	= platinumfb_set_par,
> diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c
> index 1dcf02e12af4..8f933bad461c 100644
> --- a/drivers/video/fbdev/pm2fb.c
> +++ b/drivers/video/fbdev/pm2fb.c
> @@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops pm2fb_ops = {
> +static const struct fb_ops pm2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pm2fb_check_var,
>  	.fb_set_par	= pm2fb_set_par,
> diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c
> index 6130aa56a1e9..15a2b495235b 100644
> --- a/drivers/video/fbdev/pm3fb.c
> +++ b/drivers/video/fbdev/pm3fb.c
> @@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info)
>  	 *  Frame buffer operations
>  	 */
>  
> -static struct fb_ops pm3fb_ops = {
> +static const struct fb_ops pm3fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pm3fb_check_var,
>  	.fb_set_par	= pm3fb_set_par,
> diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c
> index d1e78ce3a9c2..7b33b52b2526 100644
> --- a/drivers/video/fbdev/pmag-aa-fb.c
> +++ b/drivers/video/fbdev/pmag-aa-fb.c
> @@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops aafb_ops = {
> +static const struct fb_ops aafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= aafb_blank,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c
> index 56b912bb28de..a60e56d8980b 100644
> --- a/drivers/video/fbdev/pmag-ba-fb.c
> +++ b/drivers/video/fbdev/pmag-ba-fb.c
> @@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops pmagbafb_ops = {
> +static const struct fb_ops pmagbafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pmagbafb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c
> index 2822b2225924..f02080f21077 100644
> --- a/drivers/video/fbdev/pmagb-b-fb.c
> +++ b/drivers/video/fbdev/pmagb-b-fb.c
> @@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops pmagbbfb_ops = {
> +static const struct fb_ops pmagbbfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pmagbbfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c
> index 5ed2db39d823..834f63edf700 100644
> --- a/drivers/video/fbdev/ps3fb.c
> +++ b/drivers/video/fbdev/ps3fb.c
> @@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr)
>  }
>  
>  
> -static struct fb_ops ps3fb_ops = {
> +static const struct fb_ops ps3fb_ops = {
>  	.fb_open	= ps3fb_open,
>  	.fb_release	= ps3fb_release,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
> index 0a3b2b7c7891..fcb16eabbb0d 100644
> --- a/drivers/video/fbdev/pvr2fb.c
> +++ b/drivers/video/fbdev/pvr2fb.c
> @@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
>  }
>  #endif /* CONFIG_PVR2_DMA */
>  
> -static struct fb_ops pvr2fb_ops = {
> +static const struct fb_ops pvr2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pvr2fb_setcolreg,
>  	.fb_blank	= pvr2fb_blank,
> diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c
> index 1410f476e135..c672c3354a2c 100644
> --- a/drivers/video/fbdev/pxa168fb.c
> +++ b/drivers/video/fbdev/pxa168fb.c
> @@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id)
>  	return IRQ_NONE;
>  }
>  
> -static struct fb_ops pxa168fb_ops = {
> +static const struct fb_ops pxa168fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pxa168fb_check_var,
>  	.fb_set_par	= pxa168fb_set_par,
> diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
> index f70c9f79622e..6f7e9fb63190 100644
> --- a/drivers/video/fbdev/pxafb.c
> +++ b/drivers/video/fbdev/pxafb.c
> @@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops pxafb_ops = {
> +static const struct fb_ops pxafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pxafb_check_var,
>  	.fb_set_par	= pxafb_set_par,
> @@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops overlay_fb_ops = {
> +static const struct fb_ops overlay_fb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_open		= overlayfb_open,
>  	.fb_release		= overlayfb_release,
> diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c
> index 0b93aa964d43..79ff14a35c85 100644
> --- a/drivers/video/fbdev/q40fb.c
> +++ b/drivers/video/fbdev/q40fb.c
> @@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green,
>      return 0;
>  }
>  
> -static struct fb_ops q40fb_ops = {
> +static const struct fb_ops q40fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= q40fb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
> index ca593a3e41d7..764ec3285e62 100644
> --- a/drivers/video/fbdev/riva/fbdev.c
> +++ b/drivers/video/fbdev/riva/fbdev.c
> @@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info)
>   * ------------------------------------------------------------------------- */
>  
>  /* kernel interface */
> -static struct fb_ops riva_fb_ops = {
> +static const struct fb_ops riva_fb_ops = {
>  	.owner 		= THIS_MODULE,
>  	.fb_open	= rivafb_open,
>  	.fb_release	= rivafb_release,
> diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c
> index ba04d7a67829..f4871c430f8d 100644
> --- a/drivers/video/fbdev/s3c-fb.c
> +++ b/drivers/video/fbdev/s3c-fb.c
> @@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd,
>  	return ret;
>  }
>  
> -static struct fb_ops s3c_fb_ops = {
> +static const struct fb_ops s3c_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= s3c_fb_check_var,
>  	.fb_set_par	= s3c_fb_set_par,
> diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
> index a702da89910b..2fb15a540167 100644
> --- a/drivers/video/fbdev/s3c2410fb.c
> +++ b/drivers/video/fbdev/s3c2410fb.c
> @@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev,
>  
>  static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store);
>  
> -static struct fb_ops s3c2410fb_ops = {
> +static const struct fb_ops s3c2410fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= s3c2410fb_check_var,
>  	.fb_set_par	= s3c2410fb_set_par,
> diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c
> index be16c349c10f..60c424fae988 100644
> --- a/drivers/video/fbdev/s3fb.c
> +++ b/drivers/video/fbdev/s3fb.c
> @@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops s3fb_ops = {
> +static const struct fb_ops s3fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= s3fb_open,
>  	.fb_release	= s3fb_release,
> diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
> index 81ad3aa1ca06..4680cc3efb81 100644
> --- a/drivers/video/fbdev/sa1100fb.c
> +++ b/drivers/video/fbdev/sa1100fb.c
> @@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info,
>  	return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len);
>  }
>  
> -static struct fb_ops sa1100fb_ops = {
> +static const struct fb_ops sa1100fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= sa1100fb_check_var,
>  	.fb_set_par	= sa1100fb_set_par,
> diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c
> index 512789f5f884..aab312a7d9da 100644
> --- a/drivers/video/fbdev/savage/savagefb_driver.c
> +++ b/drivers/video/fbdev/savage/savagefb_driver.c
> @@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user)
>  	return 0;
>  }
>  
> -static struct fb_ops savagefb_ops = {
> +static const struct fb_ops savagefb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_open        = savagefb_open,
>  	.fb_release     = savagefb_release,
> diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
> index ab8fe838c776..b8ec8d9bb4c8 100644
> --- a/drivers/video/fbdev/sh7760fb.c
> +++ b/drivers/video/fbdev/sh7760fb.c
> @@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops sh7760fb_ops = {
> +static const struct fb_ops sh7760fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_blank = sh7760fb_blank,
>  	.fb_check_var = sh7760fb_check_var,
> diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> index c249763dbf0b..25f119efebc0 100644
> --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
> +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> @@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  				 ovl->dma_handle, ovl->fb_size);
>  }
>  
> -static struct fb_ops sh_mobile_lcdc_overlay_ops = {
> +static const struct fb_ops sh_mobile_lcdc_overlay_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
> @@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  				 ch->dma_handle, ch->fb_size);
>  }
>  
> -static struct fb_ops sh_mobile_lcdc_ops = {
> +static const struct fb_ops sh_mobile_lcdc_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_setcolreg	= sh_mobile_lcdc_setcolreg,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
> index 7dc0105f700d..533a047d07a2 100644
> --- a/drivers/video/fbdev/simplefb.c
> +++ b/drivers/video/fbdev/simplefb.c
> @@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops simplefb_ops = {
> +static const struct fb_ops simplefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= simplefb_destroy,
>  	.fb_setcolreg	= simplefb_setcolreg,
> diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
> index b443a8ed4600..ac140962b1bf 100644
> --- a/drivers/video/fbdev/sis/sis_main.c
> +++ b/drivers/video/fbdev/sis/sis_main.c
> @@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
>  
>  /* ----------------  fb_ops structures ----------------- */
>  
> -static struct fb_ops sisfb_ops = {
> +static const struct fb_ops sisfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= sisfb_open,
>  	.fb_release	= sisfb_release,
> diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c
> index 812a36cb60c3..bcacfb6934fa 100644
> --- a/drivers/video/fbdev/skeletonfb.c
> +++ b/drivers/video/fbdev/skeletonfb.c
> @@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info)
>       *  Frame buffer operations
>       */
>  
> -static struct fb_ops xxxfb_ops = {
> +static const struct fb_ops xxxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= xxxfb_open,
>  	.fb_read	= xxxfb_read,
> diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c
> index 207d0add684b..6a1b4a853d9e 100644
> --- a/drivers/video/fbdev/sm712fb.c
> +++ b/drivers/video/fbdev/sm712fb.c
> @@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops smtcfb_ops = {
> +static const struct fb_ops smtcfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_check_var = smtc_check_var,
>  	.fb_set_par   = smtc_set_par,
> diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
> index e362d7da87fc..bfac3ee4a642 100644
> --- a/drivers/video/fbdev/smscufx.c
> +++ b/drivers/video/fbdev/smscufx.c
> @@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ufx_ops = {
> +static const struct fb_ops ufx_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = ufx_ops_write,
> diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
> index 78ca7ffc40c2..142535267fec 100644
> --- a/drivers/video/fbdev/ssd1307fb.c
> +++ b/drivers/video/fbdev/ssd1307fb.c
> @@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima
>  	ssd1307fb_update_display(par);
>  }
>  
> -static struct fb_ops ssd1307fb_ops = {
> +static const struct fb_ops ssd1307fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= fb_sys_read,
>  	.fb_write	= ssd1307fb_write,
> diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c
> index 4e22ae383c87..82e707a48e4e 100644
> --- a/drivers/video/fbdev/sstfb.c
> +++ b/drivers/video/fbdev/sstfb.c
> @@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options)
>  }
>  
>  
> -static struct fb_ops sstfb_ops = {
> +static const struct fb_ops sstfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= sstfb_check_var,
>  	.fb_set_par	= sstfb_set_par,
> diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c
> index 9e88e3f594c2..5400ab79fbbd 100644
> --- a/drivers/video/fbdev/stifb.c
> +++ b/drivers/video/fbdev/stifb.c
> @@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb)
>  
>  /* ------------ Interfaces to hardware functions ------------ */
>  
> -static struct fb_ops stifb_ops = {
> +static const struct fb_ops stifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= stifb_setcolreg,
>  	.fb_blank	= stifb_blank,
> diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c
> index 784c9bd5d502..15b079505a00 100644
> --- a/drivers/video/fbdev/sunxvr1000.c
> +++ b/drivers/video/fbdev/sunxvr1000.c
> @@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno,
>  	return 0;
>  }
>  
> -static struct fb_ops gfb_ops = {
> +static const struct fb_ops gfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= gfb_setcolreg,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c
> index 31683e5a8b79..1d3bacd9d5ac 100644
> --- a/drivers/video/fbdev/sunxvr2500.c
> +++ b/drivers/video/fbdev/sunxvr2500.c
> @@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno,
>  	return 0;
>  }
>  
> -static struct fb_ops s3d_ops = {
> +static const struct fb_ops s3d_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= s3d_setcolreg,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c
> index d392976126a6..9daf17b11106 100644
> --- a/drivers/video/fbdev/sunxvr500.c
> +++ b/drivers/video/fbdev/sunxvr500.c
> @@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area)
>  	spin_unlock_irqrestore(&ep->lock, flags);
>  }
>  
> -static struct fb_ops e3d_ops = {
> +static const struct fb_ops e3d_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= e3d_setcolreg,
>  	.fb_fillrect		= e3d_fillrect,
> diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
> index 7897f86fb23e..34b2e5b6e84a 100644
> --- a/drivers/video/fbdev/tcx.c
> +++ b/drivers/video/fbdev/tcx.c
> @@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops tcx_ops = {
> +static const struct fb_ops tcx_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= tcx_setcolreg,
>  	.fb_blank		= tcx_blank,
> diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c
> index fdbb1ea66e6c..0349cf69652f 100644
> --- a/drivers/video/fbdev/tdfxfb.c
> +++ b/drivers/video/fbdev/tdfxfb.c
> @@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -static struct fb_ops tdfxfb_ops = {
> +static const struct fb_ops tdfxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= tdfxfb_check_var,
>  	.fb_set_par	= tdfxfb_set_par,
> diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c
> index 286b2371c7dd..7cd262858241 100644
> --- a/drivers/video/fbdev/tgafb.c
> +++ b/drivers/video/fbdev/tgafb.c
> @@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver;
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops tgafb_ops = {
> +static const struct fb_ops tgafb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_check_var		= tgafb_check_var,
>  	.fb_set_par		= tgafb_set_par,
> diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c
> index 4f2fcea10d2b..50111966c981 100644
> --- a/drivers/video/fbdev/tmiofb.c
> +++ b/drivers/video/fbdev/tmiofb.c
> @@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops tmiofb_ops = {
> +static const struct fb_ops tmiofb_ops = {
>  	.owner		= THIS_MODULE,
>  
>  	.fb_ioctl	= tmiofb_ioctl,
> diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c
> index da74bf6c5996..715509917eaa 100644
> --- a/drivers/video/fbdev/tridentfb.c
> +++ b/drivers/video/fbdev/tridentfb.c
> @@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info)
>  	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
>  }
>  
> -static struct fb_ops tridentfb_ops = {
> +static const struct fb_ops tridentfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_setcolreg = tridentfb_setcolreg,
>  	.fb_pan_display = tridentfb_pan_display,
> diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
> index e04fde9c1fcd..ca8d7343aaa1 100644
> --- a/drivers/video/fbdev/valkyriefb.c
> +++ b/drivers/video/fbdev/valkyriefb.c
> @@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p);
>  static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix);
>  static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p);
>  
> -static struct fb_ops valkyriefb_ops = {
> +static const struct fb_ops valkyriefb_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_check_var =	valkyriefb_check_var,
>  	.fb_set_par =	valkyriefb_set_par,
> diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
> index 54127905bfe7..95d3c59867d0 100644
> --- a/drivers/video/fbdev/vfb.c
> +++ b/drivers/video/fbdev/vfb.c
> @@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
>  static int vfb_mmap(struct fb_info *info,
>  		    struct vm_area_struct *vma);
>  
> -static struct fb_ops vfb_ops = {
> +static const struct fb_ops vfb_ops = {
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
>  	.fb_check_var	= vfb_check_var,
> diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c
> index 2c6a576ed84c..a20eeb8308ff 100644
> --- a/drivers/video/fbdev/vga16fb.c
> +++ b/drivers/video/fbdev/vga16fb.c
> @@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info)
>  	framebuffer_release(info);
>  }
>  
> -static struct fb_ops vga16fb_ops = {
> +static const struct fb_ops vga16fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open        = vga16fb_open,
>  	.fb_release     = vga16fb_release,
> diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c
> index be8d9702cbb2..f744479dc7df 100644
> --- a/drivers/video/fbdev/vt8500lcdfb.c
> +++ b/drivers/video/fbdev/vt8500lcdfb.c
> @@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vt8500lcd_ops = {
> +static const struct fb_ops vt8500lcd_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_set_par	= vt8500lcd_set_par,
>  	.fb_setcolreg	= vt8500lcd_setcolreg,
> diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c
> index c339a8fbad81..7b3eef1b893f 100644
> --- a/drivers/video/fbdev/vt8623fb.c
> +++ b/drivers/video/fbdev/vt8623fb.c
> @@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops vt8623fb_ops = {
> +static const struct fb_ops vt8623fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= vt8623fb_open,
>  	.fb_release	= vt8623fb_release,
> diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
> index 3be07807edcd..fe628ec20149 100644
> --- a/drivers/video/fbdev/w100fb.c
> +++ b/drivers/video/fbdev/w100fb.c
> @@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info)
>  /*
>   *  Frame buffer operations
>   */
> -static struct fb_ops w100fb_ops = {
> +static const struct fb_ops w100fb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_check_var = w100fb_check_var,
>  	.fb_set_par   = w100fb_set_par,
> diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c
> index 17c780315ca5..b656eff58c23 100644
> --- a/drivers/video/fbdev/wm8505fb.c
> +++ b/drivers/video/fbdev/wm8505fb.c
> @@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops wm8505fb_ops = {
> +static const struct fb_ops wm8505fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_set_par	= wm8505fb_set_par,
>  	.fb_setcolreg	= wm8505fb_setcolreg,
> diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
> index a3d6b6db221b..00307b8693bf 100644
> --- a/drivers/video/fbdev/xen-fbfront.c
> +++ b/drivers/video/fbdev/xen-fbfront.c
> @@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops xenfb_fb_ops = {
> +static const struct fb_ops xenfb_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= fb_sys_read,
>  	.fb_write	= xenfb_write,
> diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c
> index 8628829b470d..ca4ff658cad0 100644
> --- a/drivers/video/fbdev/xilinxfb.c
> +++ b/drivers/video/fbdev/xilinxfb.c
> @@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi)
>  	return 0; /* success */
>  }
>  
> -static struct fb_ops xilinxfb_ops = {
> +static const struct fb_ops xilinxfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= xilinx_fb_setcolreg,
>  	.fb_blank		= xilinx_fb_blank,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 08/12] video: constify fb ops across all drivers
@ 2019-12-05  9:37     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:37 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> This does not cover all drivers; some actually modify the fbops struct,
> for example to adjust for different configurations, and others do more
> involved things that I'd rather not touch in practically obsolete
> drivers. Mostly this is the low hanging fruit where we can add "const"
> and be done with it.
>
> v3:
> - un-constify atyfb, mb862xx, nvidia and uvesabf (0day)
>
> v2:
> - fix typo (Christophe de Dinechin)
> - use "static const" instead of "const static" in mx3fb.c
> - also constify smscufx.c
>
> Cc: linux-fbdev@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed up to and including this patch to drm-misc-next, thanks for the
reviews and acks.

BR,
Jani.

> ---
>  drivers/video/fbdev/68328fb.c                  | 2 +-
>  drivers/video/fbdev/acornfb.c                  | 2 +-
>  drivers/video/fbdev/amba-clcd.c                | 2 +-
>  drivers/video/fbdev/amifb.c                    | 2 +-
>  drivers/video/fbdev/arcfb.c                    | 2 +-
>  drivers/video/fbdev/arkfb.c                    | 2 +-
>  drivers/video/fbdev/asiliantfb.c               | 2 +-
>  drivers/video/fbdev/atmel_lcdfb.c              | 2 +-
>  drivers/video/fbdev/aty/aty128fb.c             | 2 +-
>  drivers/video/fbdev/aty/radeon_base.c          | 2 +-
>  drivers/video/fbdev/au1100fb.c                 | 2 +-
>  drivers/video/fbdev/au1200fb.c                 | 2 +-
>  drivers/video/fbdev/broadsheetfb.c             | 2 +-
>  drivers/video/fbdev/bw2.c                      | 2 +-
>  drivers/video/fbdev/carminefb.c                | 2 +-
>  drivers/video/fbdev/cg14.c                     | 2 +-
>  drivers/video/fbdev/cg3.c                      | 2 +-
>  drivers/video/fbdev/cg6.c                      | 2 +-
>  drivers/video/fbdev/chipsfb.c                  | 2 +-
>  drivers/video/fbdev/cirrusfb.c                 | 2 +-
>  drivers/video/fbdev/clps711x-fb.c              | 2 +-
>  drivers/video/fbdev/cobalt_lcdfb.c             | 2 +-
>  drivers/video/fbdev/controlfb.c                | 2 +-
>  drivers/video/fbdev/cyber2000fb.c              | 2 +-
>  drivers/video/fbdev/da8xx-fb.c                 | 2 +-
>  drivers/video/fbdev/dnfb.c                     | 2 +-
>  drivers/video/fbdev/efifb.c                    | 2 +-
>  drivers/video/fbdev/ep93xx-fb.c                | 2 +-
>  drivers/video/fbdev/fb-puv3.c                  | 2 +-
>  drivers/video/fbdev/ffb.c                      | 2 +-
>  drivers/video/fbdev/fm2fb.c                    | 2 +-
>  drivers/video/fbdev/fsl-diu-fb.c               | 2 +-
>  drivers/video/fbdev/g364fb.c                   | 2 +-
>  drivers/video/fbdev/gbefb.c                    | 2 +-
>  drivers/video/fbdev/geode/gx1fb_core.c         | 2 +-
>  drivers/video/fbdev/geode/gxfb_core.c          | 2 +-
>  drivers/video/fbdev/geode/lxfb_core.c          | 2 +-
>  drivers/video/fbdev/goldfishfb.c               | 2 +-
>  drivers/video/fbdev/grvga.c                    | 2 +-
>  drivers/video/fbdev/gxt4500.c                  | 2 +-
>  drivers/video/fbdev/hecubafb.c                 | 2 +-
>  drivers/video/fbdev/hgafb.c                    | 2 +-
>  drivers/video/fbdev/hitfb.c                    | 2 +-
>  drivers/video/fbdev/hpfb.c                     | 2 +-
>  drivers/video/fbdev/hyperv_fb.c                | 2 +-
>  drivers/video/fbdev/i740fb.c                   | 2 +-
>  drivers/video/fbdev/imsttfb.c                  | 2 +-
>  drivers/video/fbdev/imxfb.c                    | 2 +-
>  drivers/video/fbdev/intelfb/intelfbdrv.c       | 2 +-
>  drivers/video/fbdev/kyro/fbdev.c               | 2 +-
>  drivers/video/fbdev/leo.c                      | 2 +-
>  drivers/video/fbdev/macfb.c                    | 2 +-
>  drivers/video/fbdev/matrox/matroxfb_crtc2.c    | 2 +-
>  drivers/video/fbdev/maxinefb.c                 | 2 +-
>  drivers/video/fbdev/mbx/mbxfb.c                | 2 +-
>  drivers/video/fbdev/metronomefb.c              | 2 +-
>  drivers/video/fbdev/mmp/fb/mmpfb.c             | 2 +-
>  drivers/video/fbdev/mx3fb.c                    | 5 +++--
>  drivers/video/fbdev/neofb.c                    | 2 +-
>  drivers/video/fbdev/ocfb.c                     | 2 +-
>  drivers/video/fbdev/offb.c                     | 2 +-
>  drivers/video/fbdev/omap2/omapfb/omapfb-main.c | 2 +-
>  drivers/video/fbdev/p9100.c                    | 2 +-
>  drivers/video/fbdev/platinumfb.c               | 2 +-
>  drivers/video/fbdev/pm2fb.c                    | 2 +-
>  drivers/video/fbdev/pm3fb.c                    | 2 +-
>  drivers/video/fbdev/pmag-aa-fb.c               | 2 +-
>  drivers/video/fbdev/pmag-ba-fb.c               | 2 +-
>  drivers/video/fbdev/pmagb-b-fb.c               | 2 +-
>  drivers/video/fbdev/ps3fb.c                    | 2 +-
>  drivers/video/fbdev/pvr2fb.c                   | 2 +-
>  drivers/video/fbdev/pxa168fb.c                 | 2 +-
>  drivers/video/fbdev/pxafb.c                    | 4 ++--
>  drivers/video/fbdev/q40fb.c                    | 2 +-
>  drivers/video/fbdev/riva/fbdev.c               | 2 +-
>  drivers/video/fbdev/s3c-fb.c                   | 2 +-
>  drivers/video/fbdev/s3c2410fb.c                | 2 +-
>  drivers/video/fbdev/s3fb.c                     | 2 +-
>  drivers/video/fbdev/sa1100fb.c                 | 2 +-
>  drivers/video/fbdev/savage/savagefb_driver.c   | 2 +-
>  drivers/video/fbdev/sh7760fb.c                 | 2 +-
>  drivers/video/fbdev/sh_mobile_lcdcfb.c         | 4 ++--
>  drivers/video/fbdev/simplefb.c                 | 2 +-
>  drivers/video/fbdev/sis/sis_main.c             | 2 +-
>  drivers/video/fbdev/skeletonfb.c               | 2 +-
>  drivers/video/fbdev/sm712fb.c                  | 2 +-
>  drivers/video/fbdev/smscufx.c                  | 2 +-
>  drivers/video/fbdev/ssd1307fb.c                | 2 +-
>  drivers/video/fbdev/sstfb.c                    | 2 +-
>  drivers/video/fbdev/stifb.c                    | 2 +-
>  drivers/video/fbdev/sunxvr1000.c               | 2 +-
>  drivers/video/fbdev/sunxvr2500.c               | 2 +-
>  drivers/video/fbdev/sunxvr500.c                | 2 +-
>  drivers/video/fbdev/tcx.c                      | 2 +-
>  drivers/video/fbdev/tdfxfb.c                   | 2 +-
>  drivers/video/fbdev/tgafb.c                    | 2 +-
>  drivers/video/fbdev/tmiofb.c                   | 2 +-
>  drivers/video/fbdev/tridentfb.c                | 2 +-
>  drivers/video/fbdev/valkyriefb.c               | 2 +-
>  drivers/video/fbdev/vfb.c                      | 2 +-
>  drivers/video/fbdev/vga16fb.c                  | 2 +-
>  drivers/video/fbdev/vt8500lcdfb.c              | 2 +-
>  drivers/video/fbdev/vt8623fb.c                 | 2 +-
>  drivers/video/fbdev/w100fb.c                   | 2 +-
>  drivers/video/fbdev/wm8505fb.c                 | 2 +-
>  drivers/video/fbdev/xen-fbfront.c              | 2 +-
>  drivers/video/fbdev/xilinxfb.c                 | 2 +-
>  107 files changed, 111 insertions(+), 110 deletions(-)
>
> diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c
> index d48e96088f76..491fd5a82993 100644
> --- a/drivers/video/fbdev/68328fb.c
> +++ b/drivers/video/fbdev/68328fb.c
> @@ -96,7 +96,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var,
>  			   struct fb_info *info);
>  static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma);
>  
> -static struct fb_ops mc68x328fb_ops = {
> +static const struct fb_ops mc68x328fb_ops = {
>  	.fb_check_var	= mc68x328fb_check_var,
>  	.fb_set_par	= mc68x328fb_set_par,
>  	.fb_setcolreg	= mc68x328fb_setcolreg,
> diff --git a/drivers/video/fbdev/acornfb.c b/drivers/video/fbdev/acornfb.c
> index 7cacae5a8797..a3af49529173 100644
> --- a/drivers/video/fbdev/acornfb.c
> +++ b/drivers/video/fbdev/acornfb.c
> @@ -604,7 +604,7 @@ acornfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops acornfb_ops = {
> +static const struct fb_ops acornfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= acornfb_check_var,
>  	.fb_set_par	= acornfb_set_par,
> diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
> index 7de43be6ef2c..c3d55fc6c4e0 100644
> --- a/drivers/video/fbdev/amba-clcd.c
> +++ b/drivers/video/fbdev/amba-clcd.c
> @@ -423,7 +423,7 @@ static int clcdfb_mmap(struct fb_info *info,
>  	return ret;
>  }
>  
> -static struct fb_ops clcdfb_ops = {
> +static const struct fb_ops clcdfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= clcdfb_check_var,
>  	.fb_set_par	= clcdfb_set_par,
> diff --git a/drivers/video/fbdev/amifb.c b/drivers/video/fbdev/amifb.c
> index 91ddc9602014..20e03e00b66d 100644
> --- a/drivers/video/fbdev/amifb.c
> +++ b/drivers/video/fbdev/amifb.c
> @@ -3493,7 +3493,7 @@ static irqreturn_t amifb_interrupt(int irq, void *dev_id)
>  }
>  
>  
> -static struct fb_ops amifb_ops = {
> +static const struct fb_ops amifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= amifb_check_var,
>  	.fb_set_par	= amifb_set_par,
> diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
> index a48741aab240..314ab82e01c0 100644
> --- a/drivers/video/fbdev/arcfb.c
> +++ b/drivers/video/fbdev/arcfb.c
> @@ -491,7 +491,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
>  	return err;
>  }
>  
> -static struct fb_ops arcfb_ops = {
> +static const struct fb_ops arcfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= arcfb_open,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/arkfb.c b/drivers/video/fbdev/arkfb.c
> index f940e8b66b85..11ab9a153860 100644
> --- a/drivers/video/fbdev/arkfb.c
> +++ b/drivers/video/fbdev/arkfb.c
> @@ -917,7 +917,7 @@ static int arkfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops arkfb_ops = {
> +static const struct fb_ops arkfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= arkfb_open,
>  	.fb_release	= arkfb_release,
> diff --git a/drivers/video/fbdev/asiliantfb.c b/drivers/video/fbdev/asiliantfb.c
> index ea31054a28ca..3e006da47752 100644
> --- a/drivers/video/fbdev/asiliantfb.c
> +++ b/drivers/video/fbdev/asiliantfb.c
> @@ -95,7 +95,7 @@ static int asiliantfb_set_par(struct fb_info *info);
>  static int asiliantfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>  				u_int transp, struct fb_info *info);
>  
> -static struct fb_ops asiliantfb_ops = {
> +static const struct fb_ops asiliantfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= asiliantfb_check_var,
>  	.fb_set_par	= asiliantfb_set_par,
> diff --git a/drivers/video/fbdev/atmel_lcdfb.c b/drivers/video/fbdev/atmel_lcdfb.c
> index 5ff8e0320d95..d567f5d56c13 100644
> --- a/drivers/video/fbdev/atmel_lcdfb.c
> +++ b/drivers/video/fbdev/atmel_lcdfb.c
> @@ -824,7 +824,7 @@ static int atmel_lcdfb_blank(int blank_mode, struct fb_info *info)
>  	return ((blank_mode == FB_BLANK_NORMAL) ? 1 : 0);
>  }
>  
> -static struct fb_ops atmel_lcdfb_ops = {
> +static const struct fb_ops atmel_lcdfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= atmel_lcdfb_check_var,
>  	.fb_set_par	= atmel_lcdfb_set_par,
> diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
> index fc1e45d44719..d7e41c8dd533 100644
> --- a/drivers/video/fbdev/aty/aty128fb.c
> +++ b/drivers/video/fbdev/aty/aty128fb.c
> @@ -509,7 +509,7 @@ static void aty128_bl_set_power(struct fb_info *info, int power);
>  			  (readb(bios + (v) + 3) << 24))
>  
>  
> -static struct fb_ops aty128fb_ops = {
> +static const struct fb_ops aty128fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= aty128fb_check_var,
>  	.fb_set_par	= aty128fb_set_par,
> diff --git a/drivers/video/fbdev/aty/radeon_base.c b/drivers/video/fbdev/aty/radeon_base.c
> index 4ca07866f2f6..3af00e3b965e 100644
> --- a/drivers/video/fbdev/aty/radeon_base.c
> +++ b/drivers/video/fbdev/aty/radeon_base.c
> @@ -1965,7 +1965,7 @@ static int radeonfb_set_par(struct fb_info *info)
>  }
>  
>  
> -static struct fb_ops radeonfb_ops = {
> +static const struct fb_ops radeonfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_check_var		= radeonfb_check_var,
>  	.fb_set_par		= radeonfb_set_par,
> diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c
> index 99941ae1f3a1..37a6512feda0 100644
> --- a/drivers/video/fbdev/au1100fb.c
> +++ b/drivers/video/fbdev/au1100fb.c
> @@ -348,7 +348,7 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
>  			fbdev->fb_len);
>  }
>  
> -static struct fb_ops au1100fb_ops =
> +static const struct fb_ops au1100fb_ops =
>  {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= au1100fb_fb_setcolreg,
> diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c
> index 265d3b45efd0..c00e01a17368 100644
> --- a/drivers/video/fbdev/au1200fb.c
> +++ b/drivers/video/fbdev/au1200fb.c
> @@ -1483,7 +1483,7 @@ static int au1200fb_ioctl(struct fb_info *info, unsigned int cmd,
>  }
>  
>  
> -static struct fb_ops au1200fb_fb_ops = {
> +static const struct fb_ops au1200fb_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= au1200fb_fb_check_var,
>  	.fb_set_par	= au1200fb_fb_set_par,
> diff --git a/drivers/video/fbdev/broadsheetfb.c b/drivers/video/fbdev/broadsheetfb.c
> index d6ba348deb9f..fd66f4d4a621 100644
> --- a/drivers/video/fbdev/broadsheetfb.c
> +++ b/drivers/video/fbdev/broadsheetfb.c
> @@ -1048,7 +1048,7 @@ static ssize_t broadsheetfb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops broadsheetfb_ops = {
> +static const struct fb_ops broadsheetfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write	= broadsheetfb_write,
> diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c
> index 436f10f3d375..0d9a6bb57a09 100644
> --- a/drivers/video/fbdev/bw2.c
> +++ b/drivers/video/fbdev/bw2.c
> @@ -37,7 +37,7 @@ static int bw2_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops bw2_ops = {
> +static const struct fb_ops bw2_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_blank		= bw2_blank,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/carminefb.c b/drivers/video/fbdev/carminefb.c
> index 9f3be0258623..bf3f2a9598b1 100644
> --- a/drivers/video/fbdev/carminefb.c
> +++ b/drivers/video/fbdev/carminefb.c
> @@ -527,7 +527,7 @@ static int init_hardware(struct carmine_hw *hw)
>  	return 0;
>  }
>  
> -static struct fb_ops carminefb_ops = {
> +static const struct fb_ops carminefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_fillrect	= cfb_fillrect,
>  	.fb_copyarea	= cfb_copyarea,
> diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c
> index d80d99db3a46..a620b51cf7d0 100644
> --- a/drivers/video/fbdev/cg14.c
> +++ b/drivers/video/fbdev/cg14.c
> @@ -39,7 +39,7 @@ static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg14_ops = {
> +static const struct fb_ops cg14_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg14_setcolreg,
>  	.fb_pan_display		= cg14_pan_display,
> diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c
> index 09f616dddfd7..77f6470ce665 100644
> --- a/drivers/video/fbdev/cg3.c
> +++ b/drivers/video/fbdev/cg3.c
> @@ -39,7 +39,7 @@ static int cg3_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg3_ops = {
> +static const struct fb_ops cg3_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg3_setcolreg,
>  	.fb_blank		= cg3_blank,
> diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c
> index d5888aecc2fb..a1c68cd48d7e 100644
> --- a/drivers/video/fbdev/cg6.c
> +++ b/drivers/video/fbdev/cg6.c
> @@ -44,7 +44,7 @@ static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops cg6_ops = {
> +static const struct fb_ops cg6_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= cg6_setcolreg,
>  	.fb_blank		= cg6_blank,
> diff --git a/drivers/video/fbdev/chipsfb.c b/drivers/video/fbdev/chipsfb.c
> index f4dc320dcafe..998067b701fa 100644
> --- a/drivers/video/fbdev/chipsfb.c
> +++ b/drivers/video/fbdev/chipsfb.c
> @@ -79,7 +79,7 @@ static int chipsfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>  			     u_int transp, struct fb_info *info);
>  static int chipsfb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops chipsfb_ops = {
> +static const struct fb_ops chipsfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= chipsfb_check_var,
>  	.fb_set_par	= chipsfb_set_par,
> diff --git a/drivers/video/fbdev/cirrusfb.c b/drivers/video/fbdev/cirrusfb.c
> index e4ce5667b125..c3a3e344cee3 100644
> --- a/drivers/video/fbdev/cirrusfb.c
> +++ b/drivers/video/fbdev/cirrusfb.c
> @@ -1956,7 +1956,7 @@ static void cirrusfb_zorro_unmap(struct fb_info *info)
>  #endif /* CONFIG_ZORRO */
>  
>  /* function table of the above functions */
> -static struct fb_ops cirrusfb_ops = {
> +static const struct fb_ops cirrusfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= cirrusfb_open,
>  	.fb_release	= cirrusfb_release,
> diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
> index cabbc721f894..c5d15c6db287 100644
> --- a/drivers/video/fbdev/clps711x-fb.c
> +++ b/drivers/video/fbdev/clps711x-fb.c
> @@ -153,7 +153,7 @@ static int clps711x_fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops clps711x_fb_ops = {
> +static const struct fb_ops clps711x_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= clps711x_fb_setcolreg,
>  	.fb_check_var	= clps711x_fb_check_var,
> diff --git a/drivers/video/fbdev/cobalt_lcdfb.c b/drivers/video/fbdev/cobalt_lcdfb.c
> index 544946901e8b..5f8b6324d2e8 100644
> --- a/drivers/video/fbdev/cobalt_lcdfb.c
> +++ b/drivers/video/fbdev/cobalt_lcdfb.c
> @@ -269,7 +269,7 @@ static int cobalt_lcdfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -static struct fb_ops cobalt_lcd_fbops = {
> +static const struct fb_ops cobalt_lcd_fbops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= cobalt_lcdfb_read,
>  	.fb_write	= cobalt_lcdfb_write,
> diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c
> index 9a680ef3ffc3..38b61cdb5ca4 100644
> --- a/drivers/video/fbdev/controlfb.c
> +++ b/drivers/video/fbdev/controlfb.c
> @@ -157,7 +157,7 @@ static int default_vmode __initdata = VMODE_NVRAM;
>  static int default_cmode __initdata = CMODE_NVRAM;
>  
>  
> -static struct fb_ops controlfb_ops = {
> +static const struct fb_ops controlfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= controlfb_check_var,
>  	.fb_set_par	= controlfb_set_par,
> diff --git a/drivers/video/fbdev/cyber2000fb.c b/drivers/video/fbdev/cyber2000fb.c
> index 3a2d9ff0aa42..460826a7ad55 100644
> --- a/drivers/video/fbdev/cyber2000fb.c
> +++ b/drivers/video/fbdev/cyber2000fb.c
> @@ -1060,7 +1060,7 @@ static int cyber2000fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops cyber2000fb_ops = {
> +static const struct fb_ops cyber2000fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= cyber2000fb_check_var,
>  	.fb_set_par	= cyber2000fb_set_par,
> diff --git a/drivers/video/fbdev/da8xx-fb.c b/drivers/video/fbdev/da8xx-fb.c
> index 2d3dcc52fcf3..73c3c4c8cc12 100644
> --- a/drivers/video/fbdev/da8xx-fb.c
> +++ b/drivers/video/fbdev/da8xx-fb.c
> @@ -1294,7 +1294,7 @@ static int da8xxfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops da8xx_fb_ops = {
> +static const struct fb_ops da8xx_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = fb_check_var,
>  	.fb_set_par = da8xxfb_set_par,
> diff --git a/drivers/video/fbdev/dnfb.c b/drivers/video/fbdev/dnfb.c
> index 8da517eaa4a3..3688f9165848 100644
> --- a/drivers/video/fbdev/dnfb.c
> +++ b/drivers/video/fbdev/dnfb.c
> @@ -108,7 +108,7 @@
>  static int dnfb_blank(int blank, struct fb_info *info);
>  static void dnfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
>  
> -static struct fb_ops dn_fb_ops = {
> +static const struct fb_ops dn_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= dnfb_blank,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/efifb.c b/drivers/video/fbdev/efifb.c
> index 51d97ec4f58f..f03f9fb60c26 100644
> --- a/drivers/video/fbdev/efifb.c
> +++ b/drivers/video/fbdev/efifb.c
> @@ -255,7 +255,7 @@ static void efifb_destroy(struct fb_info *info)
>  	fb_dealloc_cmap(&info->cmap);
>  }
>  
> -static struct fb_ops efifb_ops = {
> +static const struct fb_ops efifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= efifb_destroy,
>  	.fb_setcolreg	= efifb_setcolreg,
> diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c
> index d04a047094fc..cda2ef337423 100644
> --- a/drivers/video/fbdev/ep93xx-fb.c
> +++ b/drivers/video/fbdev/ep93xx-fb.c
> @@ -402,7 +402,7 @@ static int ep93xxfb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops ep93xxfb_ops = {
> +static const struct fb_ops ep93xxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= ep93xxfb_check_var,
>  	.fb_set_par	= ep93xxfb_set_par,
> diff --git a/drivers/video/fbdev/fb-puv3.c b/drivers/video/fbdev/fb-puv3.c
> index fa62c4dff7d1..75df6aabac21 100644
> --- a/drivers/video/fbdev/fb-puv3.c
> +++ b/drivers/video/fbdev/fb-puv3.c
> @@ -644,7 +644,7 @@ int unifb_mmap(struct fb_info *info,
>  	return vm_iomap_memory(vma, info->fix.smem_start, info->fix.smem_len);
>  }
>  
> -static struct fb_ops unifb_ops = {
> +static const struct fb_ops unifb_ops = {
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
>  	.fb_check_var	= unifb_check_var,
> diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c
> index cd2d1db239a2..948b73184433 100644
> --- a/drivers/video/fbdev/ffb.c
> +++ b/drivers/video/fbdev/ffb.c
> @@ -44,7 +44,7 @@ static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops ffb_ops = {
> +static const struct fb_ops ffb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= ffb_setcolreg,
>  	.fb_blank		= ffb_blank,
> diff --git a/drivers/video/fbdev/fm2fb.c b/drivers/video/fbdev/fm2fb.c
> index ac7a4ebfd390..3b727d528fde 100644
> --- a/drivers/video/fbdev/fm2fb.c
> +++ b/drivers/video/fbdev/fm2fb.c
> @@ -165,7 +165,7 @@ static int fm2fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
>                             u_int transp, struct fb_info *info);
>  static int fm2fb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops fm2fb_ops = {
> +static const struct fb_ops fm2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= fm2fb_setcolreg,
>  	.fb_blank	= fm2fb_blank,
> diff --git a/drivers/video/fbdev/fsl-diu-fb.c b/drivers/video/fbdev/fsl-diu-fb.c
> index d19f58263b4e..7cacabdd5f12 100644
> --- a/drivers/video/fbdev/fsl-diu-fb.c
> +++ b/drivers/video/fbdev/fsl-diu-fb.c
> @@ -1448,7 +1448,7 @@ static int fsl_diu_release(struct fb_info *info, int user)
>  	return res;
>  }
>  
> -static struct fb_ops fsl_diu_ops = {
> +static const struct fb_ops fsl_diu_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = fsl_diu_check_var,
>  	.fb_set_par = fsl_diu_set_par,
> diff --git a/drivers/video/fbdev/g364fb.c b/drivers/video/fbdev/g364fb.c
> index 223896cc5f7d..845b79da2a7c 100644
> --- a/drivers/video/fbdev/g364fb.c
> +++ b/drivers/video/fbdev/g364fb.c
> @@ -111,7 +111,7 @@ static int g364fb_setcolreg(u_int regno, u_int red, u_int green,
>  static int g364fb_cursor(struct fb_info *info, struct fb_cursor *cursor);
>  static int g364fb_blank(int blank, struct fb_info *info);
>  
> -static struct fb_ops g364fb_ops = {
> +static const struct fb_ops g364fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= g364fb_setcolreg,
>  	.fb_pan_display	= g364fb_pan_display,
> diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c
> index b9f6a82a0495..31270a8986e8 100644
> --- a/drivers/video/fbdev/gbefb.c
> +++ b/drivers/video/fbdev/gbefb.c
> @@ -1044,7 +1044,7 @@ static int gbefb_mmap(struct fb_info *info,
>  	return 0;
>  }
>  
> -static struct fb_ops gbefb_ops = {
> +static const struct fb_ops gbefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gbefb_check_var,
>  	.fb_set_par	= gbefb_set_par,
> diff --git a/drivers/video/fbdev/geode/gx1fb_core.c b/drivers/video/fbdev/geode/gx1fb_core.c
> index 737e472fac14..5d34d89fb665 100644
> --- a/drivers/video/fbdev/geode/gx1fb_core.c
> +++ b/drivers/video/fbdev/geode/gx1fb_core.c
> @@ -252,7 +252,7 @@ static int parse_panel_option(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops gx1fb_ops = {
> +static const struct fb_ops gx1fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gx1fb_check_var,
>  	.fb_set_par	= gx1fb_set_par,
> diff --git a/drivers/video/fbdev/geode/gxfb_core.c b/drivers/video/fbdev/geode/gxfb_core.c
> index 435ce2aa4240..d38a148d4746 100644
> --- a/drivers/video/fbdev/geode/gxfb_core.c
> +++ b/drivers/video/fbdev/geode/gxfb_core.c
> @@ -265,7 +265,7 @@ static int gxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
>  	return 0;
>  }
>  
> -static struct fb_ops gxfb_ops = {
> +static const struct fb_ops gxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= gxfb_check_var,
>  	.fb_set_par	= gxfb_set_par,
> diff --git a/drivers/video/fbdev/geode/lxfb_core.c b/drivers/video/fbdev/geode/lxfb_core.c
> index b0f07d676eb3..adc2d9c2395e 100644
> --- a/drivers/video/fbdev/geode/lxfb_core.c
> +++ b/drivers/video/fbdev/geode/lxfb_core.c
> @@ -386,7 +386,7 @@ static int lxfb_map_video_memory(struct fb_info *info, struct pci_dev *dev)
>  	return 0;
>  }
>  
> -static struct fb_ops lxfb_ops = {
> +static const struct fb_ops lxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= lxfb_check_var,
>  	.fb_set_par	= lxfb_set_par,
> diff --git a/drivers/video/fbdev/goldfishfb.c b/drivers/video/fbdev/goldfishfb.c
> index f60ac276703d..9c83ec3f8e1f 100644
> --- a/drivers/video/fbdev/goldfishfb.c
> +++ b/drivers/video/fbdev/goldfishfb.c
> @@ -160,7 +160,7 @@ static int goldfish_fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops goldfish_fb_ops = {
> +static const struct fb_ops goldfish_fb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_check_var   = goldfish_fb_check_var,
>  	.fb_set_par     = goldfish_fb_set_par,
> diff --git a/drivers/video/fbdev/grvga.c b/drivers/video/fbdev/grvga.c
> index d22e8b0c906d..07dda03e0957 100644
> --- a/drivers/video/fbdev/grvga.c
> +++ b/drivers/video/fbdev/grvga.c
> @@ -251,7 +251,7 @@ static int grvga_pan_display(struct fb_var_screeninfo *var,
>  	return 0;
>  }
>  
> -static struct fb_ops grvga_ops = {
> +static const struct fb_ops grvga_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_check_var   = grvga_check_var,
>  	.fb_set_par	= grvga_set_par,
> diff --git a/drivers/video/fbdev/gxt4500.c b/drivers/video/fbdev/gxt4500.c
> index c7502fd8f447..13ded3a10708 100644
> --- a/drivers/video/fbdev/gxt4500.c
> +++ b/drivers/video/fbdev/gxt4500.c
> @@ -599,7 +599,7 @@ static const struct fb_fix_screeninfo gxt4500_fix = {
>  	.mmio_len = 0x20000,
>  };
>  
> -static struct fb_ops gxt4500_ops = {
> +static const struct fb_ops gxt4500_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = gxt4500_check_var,
>  	.fb_set_par = gxt4500_set_par,
> diff --git a/drivers/video/fbdev/hecubafb.c b/drivers/video/fbdev/hecubafb.c
> index 8577195cb533..00d77105161a 100644
> --- a/drivers/video/fbdev/hecubafb.c
> +++ b/drivers/video/fbdev/hecubafb.c
> @@ -197,7 +197,7 @@ static ssize_t hecubafb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops hecubafb_ops = {
> +static const struct fb_ops hecubafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write	= hecubafb_write,
> diff --git a/drivers/video/fbdev/hgafb.c b/drivers/video/fbdev/hgafb.c
> index 59e1cae57948..a45fcff1461f 100644
> --- a/drivers/video/fbdev/hgafb.c
> +++ b/drivers/video/fbdev/hgafb.c
> @@ -523,7 +523,7 @@ static void hgafb_imageblit(struct fb_info *info, const struct fb_image *image)
>  	}
>  }
>  
> -static struct fb_ops hgafb_ops = {
> +static const struct fb_ops hgafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= hgafb_open,
>  	.fb_release	= hgafb_release,
> diff --git a/drivers/video/fbdev/hitfb.c b/drivers/video/fbdev/hitfb.c
> index abe3e54d4506..009e5d2aa100 100644
> --- a/drivers/video/fbdev/hitfb.c
> +++ b/drivers/video/fbdev/hitfb.c
> @@ -311,7 +311,7 @@ static int hitfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops hitfb_ops = {
> +static const struct fb_ops hitfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= hitfb_check_var,
>  	.fb_set_par		= hitfb_set_par,
> diff --git a/drivers/video/fbdev/hpfb.c b/drivers/video/fbdev/hpfb.c
> index a79af8f069d1..f02be0db335e 100644
> --- a/drivers/video/fbdev/hpfb.c
> +++ b/drivers/video/fbdev/hpfb.c
> @@ -184,7 +184,7 @@ static int hpfb_sync(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops hpfb_ops = {
> +static const struct fb_ops hpfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= hpfb_setcolreg,
>  	.fb_blank	= hpfb_blank,
> diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
> index 2dcb7c58b31e..fcd546e5c031 100644
> --- a/drivers/video/fbdev/hyperv_fb.c
> +++ b/drivers/video/fbdev/hyperv_fb.c
> @@ -623,7 +623,7 @@ static void hvfb_cfb_imageblit(struct fb_info *p,
>  		synthvid_update(p);
>  }
>  
> -static struct fb_ops hvfb_ops = {
> +static const struct fb_ops hvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = hvfb_check_var,
>  	.fb_set_par = hvfb_set_par,
> diff --git a/drivers/video/fbdev/i740fb.c b/drivers/video/fbdev/i740fb.c
> index 347cf8babc3e..c65ec7386e87 100644
> --- a/drivers/video/fbdev/i740fb.c
> +++ b/drivers/video/fbdev/i740fb.c
> @@ -981,7 +981,7 @@ static int i740fb_blank(int blank_mode, struct fb_info *info)
>  	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
>  }
>  
> -static struct fb_ops i740fb_ops = {
> +static const struct fb_ops i740fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= i740fb_open,
>  	.fb_release	= i740fb_release,
> diff --git a/drivers/video/fbdev/imsttfb.c b/drivers/video/fbdev/imsttfb.c
> index 58b01c7d9056..3ac053b88495 100644
> --- a/drivers/video/fbdev/imsttfb.c
> +++ b/drivers/video/fbdev/imsttfb.c
> @@ -1333,7 +1333,7 @@ static struct pci_driver imsttfb_pci_driver = {
>  	.remove =	imsttfb_remove,
>  };
>  
> -static struct fb_ops imsttfb_ops = {
> +static const struct fb_ops imsttfb_ops = {
>  	.owner 		= THIS_MODULE,
>  	.fb_check_var	= imsttfb_check_var,
>  	.fb_set_par 	= imsttfb_set_par,
> diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
> index b3286d1fa543..08a17eb2a5c7 100644
> --- a/drivers/video/fbdev/imxfb.c
> +++ b/drivers/video/fbdev/imxfb.c
> @@ -566,7 +566,7 @@ static int imxfb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops imxfb_ops = {
> +static const struct fb_ops imxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= imxfb_check_var,
>  	.fb_set_par	= imxfb_set_par,
> diff --git a/drivers/video/fbdev/intelfb/intelfbdrv.c b/drivers/video/fbdev/intelfb/intelfbdrv.c
> index a76c61512c60..c744891781a5 100644
> --- a/drivers/video/fbdev/intelfb/intelfbdrv.c
> +++ b/drivers/video/fbdev/intelfb/intelfbdrv.c
> @@ -193,7 +193,7 @@ static const struct pci_device_id intelfb_pci_table[] = {
>  static int num_registered = 0;
>  
>  /* fb ops */
> -static struct fb_ops intel_fb_ops = {
> +static const struct fb_ops intel_fb_ops = {
>  	.owner =		THIS_MODULE,
>  	.fb_open =              intelfb_open,
>  	.fb_release =           intelfb_release,
> diff --git a/drivers/video/fbdev/kyro/fbdev.c b/drivers/video/fbdev/kyro/fbdev.c
> index a7bd9f25911b..72dff2e42e3a 100644
> --- a/drivers/video/fbdev/kyro/fbdev.c
> +++ b/drivers/video/fbdev/kyro/fbdev.c
> @@ -648,7 +648,7 @@ static struct pci_driver kyrofb_pci_driver = {
>  	.remove		= kyrofb_remove,
>  };
>  
> -static struct fb_ops kyrofb_ops = {
> +static const struct fb_ops kyrofb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= kyrofb_check_var,
>  	.fb_set_par	= kyrofb_set_par,
> diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c
> index 5b1141ac182b..40b11cce0ad6 100644
> --- a/drivers/video/fbdev/leo.c
> +++ b/drivers/video/fbdev/leo.c
> @@ -39,7 +39,7 @@ static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops leo_ops = {
> +static const struct fb_ops leo_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= leo_setcolreg,
>  	.fb_blank		= leo_blank,
> diff --git a/drivers/video/fbdev/macfb.c b/drivers/video/fbdev/macfb.c
> index 9a6feee96133..e05a97662ca8 100644
> --- a/drivers/video/fbdev/macfb.c
> +++ b/drivers/video/fbdev/macfb.c
> @@ -496,7 +496,7 @@ static int macfb_setcolreg(unsigned regno, unsigned red, unsigned green,
>  	return 0;
>  }
>  
> -static struct fb_ops macfb_ops = {
> +static const struct fb_ops macfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= macfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/matrox/matroxfb_crtc2.c b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> index d2a81a2c3ac0..7655afa3fd50 100644
> --- a/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> +++ b/drivers/video/fbdev/matrox/matroxfb_crtc2.c
> @@ -563,7 +563,7 @@ static int matroxfb_dh_blank(int blank, struct fb_info* info) {
>  #undef m2info
>  }
>  
> -static struct fb_ops matroxfb_dh_ops = {
> +static const struct fb_ops matroxfb_dh_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_open =	matroxfb_dh_open,
>  	.fb_release =	matroxfb_dh_release,
> diff --git a/drivers/video/fbdev/maxinefb.c b/drivers/video/fbdev/maxinefb.c
> index 5bb1b5c308a7..ae1a42bcb0ea 100644
> --- a/drivers/video/fbdev/maxinefb.c
> +++ b/drivers/video/fbdev/maxinefb.c
> @@ -105,7 +105,7 @@ static int maxinefb_setcolreg(unsigned regno, unsigned red, unsigned green,
>  	return 0;
>  }
>  
> -static struct fb_ops maxinefb_ops = {
> +static const struct fb_ops maxinefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= maxinefb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/mbx/mbxfb.c b/drivers/video/fbdev/mbx/mbxfb.c
> index 50935252b50b..25dad4507d77 100644
> --- a/drivers/video/fbdev/mbx/mbxfb.c
> +++ b/drivers/video/fbdev/mbx/mbxfb.c
> @@ -671,7 +671,7 @@ static int mbxfb_ioctl(struct fb_info *info, unsigned int cmd,
>  	return -EINVAL;
>  }
>  
> -static struct fb_ops mbxfb_ops = {
> +static const struct fb_ops mbxfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var = mbxfb_check_var,
>  	.fb_set_par = mbxfb_set_par,
> diff --git a/drivers/video/fbdev/metronomefb.c b/drivers/video/fbdev/metronomefb.c
> index bb4fee52e501..a42e2eceee48 100644
> --- a/drivers/video/fbdev/metronomefb.c
> +++ b/drivers/video/fbdev/metronomefb.c
> @@ -558,7 +558,7 @@ static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf,
>  	return (err) ? err : count;
>  }
>  
> -static struct fb_ops metronomefb_ops = {
> +static const struct fb_ops metronomefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_write	= metronomefb_write,
>  	.fb_fillrect	= metronomefb_fillrect,
> diff --git a/drivers/video/fbdev/mmp/fb/mmpfb.c b/drivers/video/fbdev/mmp/fb/mmpfb.c
> index 47bc7c59bbd8..33db0850086f 100644
> --- a/drivers/video/fbdev/mmp/fb/mmpfb.c
> +++ b/drivers/video/fbdev/mmp/fb/mmpfb.c
> @@ -454,7 +454,7 @@ static int mmpfb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops mmpfb_ops = {
> +static const struct fb_ops mmpfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= mmpfb_blank,
>  	.fb_check_var	= mmpfb_check_var,
> diff --git a/drivers/video/fbdev/mx3fb.c b/drivers/video/fbdev/mx3fb.c
> index bafd5f5fac5a..4af28e4421e5 100644
> --- a/drivers/video/fbdev/mx3fb.c
> +++ b/drivers/video/fbdev/mx3fb.c
> @@ -1249,7 +1249,7 @@ static int mx3fb_pan_display(struct fb_var_screeninfo *var,
>   * invoked by the core framebuffer driver to perform operations like
>   * blitting, rectangle filling, copy regions and cursor definition.
>   */
> -static struct fb_ops mx3fb_ops = {
> +static const struct fb_ops mx3fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_set_par = mx3fb_set_par,
>  	.fb_check_var = mx3fb_check_var,
> @@ -1389,7 +1389,8 @@ static int mx3fb_unmap_video_memory(struct fb_info *fbi)
>   * mx3fb_init_fbinfo() - initialize framebuffer information object.
>   * @return:	initialized framebuffer structure.
>   */
> -static struct fb_info *mx3fb_init_fbinfo(struct device *dev, struct fb_ops *ops)
> +static struct fb_info *mx3fb_init_fbinfo(struct device *dev,
> +					 const struct fb_ops *ops)
>  {
>  	struct fb_info *fbi;
>  	struct mx3fb_info *mx3fbi;
> diff --git a/drivers/video/fbdev/neofb.c b/drivers/video/fbdev/neofb.c
> index b770946a0920..e6ea853c1723 100644
> --- a/drivers/video/fbdev/neofb.c
> +++ b/drivers/video/fbdev/neofb.c
> @@ -1610,7 +1610,7 @@ neofb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  }
>  */
>  
> -static struct fb_ops neofb_ops = {
> +static const struct fb_ops neofb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= neofb_open,
>  	.fb_release	= neofb_release,
> diff --git a/drivers/video/fbdev/ocfb.c b/drivers/video/fbdev/ocfb.c
> index a970edc2a6f8..c8cee2d890dc 100644
> --- a/drivers/video/fbdev/ocfb.c
> +++ b/drivers/video/fbdev/ocfb.c
> @@ -285,7 +285,7 @@ static int ocfb_init_var(struct ocfb_dev *fbdev)
>  	return 0;
>  }
>  
> -static struct fb_ops ocfb_ops = {
> +static const struct fb_ops ocfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= ocfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/offb.c b/drivers/video/fbdev/offb.c
> index fbc6eafb63c7..5cd0f5f6a4ae 100644
> --- a/drivers/video/fbdev/offb.c
> +++ b/drivers/video/fbdev/offb.c
> @@ -286,7 +286,7 @@ static void offb_destroy(struct fb_info *info)
>  	framebuffer_release(info);
>  }
>  
> -static struct fb_ops offb_ops = {
> +static const struct fb_ops offb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= offb_destroy,
>  	.fb_setcolreg	= offb_setcolreg,
> diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> index 858c2c011d19..8dfa9158ba78 100644
> --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c
> @@ -1280,7 +1280,7 @@ ssize_t omapfb_write(struct fb_info *info, const char __user *buf,
>  }
>  #endif
>  
> -static struct fb_ops omapfb_ops = {
> +static const struct fb_ops omapfb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_open        = omapfb_open,
>  	.fb_release     = omapfb_release,
> diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c
> index 8c18cc51aae2..6da672e92643 100644
> --- a/drivers/video/fbdev/p9100.c
> +++ b/drivers/video/fbdev/p9100.c
> @@ -37,7 +37,7 @@ static int p9100_ioctl(struct fb_info *, unsigned int, unsigned long);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops p9100_ops = {
> +static const struct fb_ops p9100_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= p9100_setcolreg,
>  	.fb_blank		= p9100_blank,
> diff --git a/drivers/video/fbdev/platinumfb.c b/drivers/video/fbdev/platinumfb.c
> index 632b246ca35f..ce413a9df06e 100644
> --- a/drivers/video/fbdev/platinumfb.c
> +++ b/drivers/video/fbdev/platinumfb.c
> @@ -96,7 +96,7 @@ static int platinum_var_to_par(struct fb_var_screeninfo *var,
>   * Interface used by the world
>   */
>  
> -static struct fb_ops platinumfb_ops = {
> +static const struct fb_ops platinumfb_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_check_var	= platinumfb_check_var,
>  	.fb_set_par	= platinumfb_set_par,
> diff --git a/drivers/video/fbdev/pm2fb.c b/drivers/video/fbdev/pm2fb.c
> index 1dcf02e12af4..8f933bad461c 100644
> --- a/drivers/video/fbdev/pm2fb.c
> +++ b/drivers/video/fbdev/pm2fb.c
> @@ -1483,7 +1483,7 @@ static int pm2fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops pm2fb_ops = {
> +static const struct fb_ops pm2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pm2fb_check_var,
>  	.fb_set_par	= pm2fb_set_par,
> diff --git a/drivers/video/fbdev/pm3fb.c b/drivers/video/fbdev/pm3fb.c
> index 6130aa56a1e9..15a2b495235b 100644
> --- a/drivers/video/fbdev/pm3fb.c
> +++ b/drivers/video/fbdev/pm3fb.c
> @@ -1200,7 +1200,7 @@ static int pm3fb_blank(int blank_mode, struct fb_info *info)
>  	 *  Frame buffer operations
>  	 */
>  
> -static struct fb_ops pm3fb_ops = {
> +static const struct fb_ops pm3fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pm3fb_check_var,
>  	.fb_set_par	= pm3fb_set_par,
> diff --git a/drivers/video/fbdev/pmag-aa-fb.c b/drivers/video/fbdev/pmag-aa-fb.c
> index d1e78ce3a9c2..7b33b52b2526 100644
> --- a/drivers/video/fbdev/pmag-aa-fb.c
> +++ b/drivers/video/fbdev/pmag-aa-fb.c
> @@ -147,7 +147,7 @@ static int aafb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops aafb_ops = {
> +static const struct fb_ops aafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_blank	= aafb_blank,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/pmag-ba-fb.c b/drivers/video/fbdev/pmag-ba-fb.c
> index 56b912bb28de..a60e56d8980b 100644
> --- a/drivers/video/fbdev/pmag-ba-fb.c
> +++ b/drivers/video/fbdev/pmag-ba-fb.c
> @@ -117,7 +117,7 @@ static int pmagbafb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops pmagbafb_ops = {
> +static const struct fb_ops pmagbafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pmagbafb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/pmagb-b-fb.c b/drivers/video/fbdev/pmagb-b-fb.c
> index 2822b2225924..f02080f21077 100644
> --- a/drivers/video/fbdev/pmagb-b-fb.c
> +++ b/drivers/video/fbdev/pmagb-b-fb.c
> @@ -121,7 +121,7 @@ static int pmagbbfb_setcolreg(unsigned int regno, unsigned int red,
>  	return 0;
>  }
>  
> -static struct fb_ops pmagbbfb_ops = {
> +static const struct fb_ops pmagbbfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pmagbbfb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c
> index 5ed2db39d823..834f63edf700 100644
> --- a/drivers/video/fbdev/ps3fb.c
> +++ b/drivers/video/fbdev/ps3fb.c
> @@ -934,7 +934,7 @@ static irqreturn_t ps3fb_vsync_interrupt(int irq, void *ptr)
>  }
>  
>  
> -static struct fb_ops ps3fb_ops = {
> +static const struct fb_ops ps3fb_ops = {
>  	.fb_open	= ps3fb_open,
>  	.fb_release	= ps3fb_release,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/pvr2fb.c b/drivers/video/fbdev/pvr2fb.c
> index 0a3b2b7c7891..fcb16eabbb0d 100644
> --- a/drivers/video/fbdev/pvr2fb.c
> +++ b/drivers/video/fbdev/pvr2fb.c
> @@ -707,7 +707,7 @@ static ssize_t pvr2fb_write(struct fb_info *info, const char *buf,
>  }
>  #endif /* CONFIG_PVR2_DMA */
>  
> -static struct fb_ops pvr2fb_ops = {
> +static const struct fb_ops pvr2fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= pvr2fb_setcolreg,
>  	.fb_blank	= pvr2fb_blank,
> diff --git a/drivers/video/fbdev/pxa168fb.c b/drivers/video/fbdev/pxa168fb.c
> index 1410f476e135..c672c3354a2c 100644
> --- a/drivers/video/fbdev/pxa168fb.c
> +++ b/drivers/video/fbdev/pxa168fb.c
> @@ -545,7 +545,7 @@ static irqreturn_t pxa168fb_handle_irq(int irq, void *dev_id)
>  	return IRQ_NONE;
>  }
>  
> -static struct fb_ops pxa168fb_ops = {
> +static const struct fb_ops pxa168fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pxa168fb_check_var,
>  	.fb_set_par	= pxa168fb_set_par,
> diff --git a/drivers/video/fbdev/pxafb.c b/drivers/video/fbdev/pxafb.c
> index f70c9f79622e..6f7e9fb63190 100644
> --- a/drivers/video/fbdev/pxafb.c
> +++ b/drivers/video/fbdev/pxafb.c
> @@ -597,7 +597,7 @@ static int pxafb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops pxafb_ops = {
> +static const struct fb_ops pxafb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= pxafb_check_var,
>  	.fb_set_par	= pxafb_set_par,
> @@ -865,7 +865,7 @@ static int overlayfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops overlay_fb_ops = {
> +static const struct fb_ops overlay_fb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_open		= overlayfb_open,
>  	.fb_release		= overlayfb_release,
> diff --git a/drivers/video/fbdev/q40fb.c b/drivers/video/fbdev/q40fb.c
> index 0b93aa964d43..79ff14a35c85 100644
> --- a/drivers/video/fbdev/q40fb.c
> +++ b/drivers/video/fbdev/q40fb.c
> @@ -75,7 +75,7 @@ static int q40fb_setcolreg(unsigned regno, unsigned red, unsigned green,
>      return 0;
>  }
>  
> -static struct fb_ops q40fb_ops = {
> +static const struct fb_ops q40fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= q40fb_setcolreg,
>  	.fb_fillrect	= cfb_fillrect,
> diff --git a/drivers/video/fbdev/riva/fbdev.c b/drivers/video/fbdev/riva/fbdev.c
> index ca593a3e41d7..764ec3285e62 100644
> --- a/drivers/video/fbdev/riva/fbdev.c
> +++ b/drivers/video/fbdev/riva/fbdev.c
> @@ -1673,7 +1673,7 @@ static int rivafb_sync(struct fb_info *info)
>   * ------------------------------------------------------------------------- */
>  
>  /* kernel interface */
> -static struct fb_ops riva_fb_ops = {
> +static const struct fb_ops riva_fb_ops = {
>  	.owner 		= THIS_MODULE,
>  	.fb_open	= rivafb_open,
>  	.fb_release	= rivafb_release,
> diff --git a/drivers/video/fbdev/s3c-fb.c b/drivers/video/fbdev/s3c-fb.c
> index ba04d7a67829..f4871c430f8d 100644
> --- a/drivers/video/fbdev/s3c-fb.c
> +++ b/drivers/video/fbdev/s3c-fb.c
> @@ -1035,7 +1035,7 @@ static int s3c_fb_ioctl(struct fb_info *info, unsigned int cmd,
>  	return ret;
>  }
>  
> -static struct fb_ops s3c_fb_ops = {
> +static const struct fb_ops s3c_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= s3c_fb_check_var,
>  	.fb_set_par	= s3c_fb_set_par,
> diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
> index a702da89910b..2fb15a540167 100644
> --- a/drivers/video/fbdev/s3c2410fb.c
> +++ b/drivers/video/fbdev/s3c2410fb.c
> @@ -618,7 +618,7 @@ static int s3c2410fb_debug_store(struct device *dev,
>  
>  static DEVICE_ATTR(debug, 0664, s3c2410fb_debug_show, s3c2410fb_debug_store);
>  
> -static struct fb_ops s3c2410fb_ops = {
> +static const struct fb_ops s3c2410fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= s3c2410fb_check_var,
>  	.fb_set_par	= s3c2410fb_set_par,
> diff --git a/drivers/video/fbdev/s3fb.c b/drivers/video/fbdev/s3fb.c
> index be16c349c10f..60c424fae988 100644
> --- a/drivers/video/fbdev/s3fb.c
> +++ b/drivers/video/fbdev/s3fb.c
> @@ -1037,7 +1037,7 @@ static int s3fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops s3fb_ops = {
> +static const struct fb_ops s3fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= s3fb_open,
>  	.fb_release	= s3fb_release,
> diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c
> index 81ad3aa1ca06..4680cc3efb81 100644
> --- a/drivers/video/fbdev/sa1100fb.c
> +++ b/drivers/video/fbdev/sa1100fb.c
> @@ -574,7 +574,7 @@ static int sa1100fb_mmap(struct fb_info *info,
>  	return vm_iomap_memory(vma, info->fix.mmio_start, info->fix.mmio_len);
>  }
>  
> -static struct fb_ops sa1100fb_ops = {
> +static const struct fb_ops sa1100fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= sa1100fb_check_var,
>  	.fb_set_par	= sa1100fb_set_par,
> diff --git a/drivers/video/fbdev/savage/savagefb_driver.c b/drivers/video/fbdev/savage/savagefb_driver.c
> index 512789f5f884..aab312a7d9da 100644
> --- a/drivers/video/fbdev/savage/savagefb_driver.c
> +++ b/drivers/video/fbdev/savage/savagefb_driver.c
> @@ -1637,7 +1637,7 @@ static int savagefb_release(struct fb_info *info, int user)
>  	return 0;
>  }
>  
> -static struct fb_ops savagefb_ops = {
> +static const struct fb_ops savagefb_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_open        = savagefb_open,
>  	.fb_release     = savagefb_release,
> diff --git a/drivers/video/fbdev/sh7760fb.c b/drivers/video/fbdev/sh7760fb.c
> index ab8fe838c776..b8ec8d9bb4c8 100644
> --- a/drivers/video/fbdev/sh7760fb.c
> +++ b/drivers/video/fbdev/sh7760fb.c
> @@ -341,7 +341,7 @@ static int sh7760fb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops sh7760fb_ops = {
> +static const struct fb_ops sh7760fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_blank = sh7760fb_blank,
>  	.fb_check_var = sh7760fb_check_var,
> diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> index c249763dbf0b..25f119efebc0 100644
> --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
> +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> @@ -1490,7 +1490,7 @@ sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  				 ovl->dma_handle, ovl->fb_size);
>  }
>  
> -static struct fb_ops sh_mobile_lcdc_overlay_ops = {
> +static const struct fb_ops sh_mobile_lcdc_overlay_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
> @@ -1964,7 +1964,7 @@ sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  				 ch->dma_handle, ch->fb_size);
>  }
>  
> -static struct fb_ops sh_mobile_lcdc_ops = {
> +static const struct fb_ops sh_mobile_lcdc_ops = {
>  	.owner          = THIS_MODULE,
>  	.fb_setcolreg	= sh_mobile_lcdc_setcolreg,
>  	.fb_read        = fb_sys_read,
> diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
> index 7dc0105f700d..533a047d07a2 100644
> --- a/drivers/video/fbdev/simplefb.c
> +++ b/drivers/video/fbdev/simplefb.c
> @@ -78,7 +78,7 @@ static void simplefb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops simplefb_ops = {
> +static const struct fb_ops simplefb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= simplefb_destroy,
>  	.fb_setcolreg	= simplefb_setcolreg,
> diff --git a/drivers/video/fbdev/sis/sis_main.c b/drivers/video/fbdev/sis/sis_main.c
> index b443a8ed4600..ac140962b1bf 100644
> --- a/drivers/video/fbdev/sis/sis_main.c
> +++ b/drivers/video/fbdev/sis/sis_main.c
> @@ -1906,7 +1906,7 @@ sisfb_get_fix(struct fb_fix_screeninfo *fix, int con, struct fb_info *info)
>  
>  /* ----------------  fb_ops structures ----------------- */
>  
> -static struct fb_ops sisfb_ops = {
> +static const struct fb_ops sisfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= sisfb_open,
>  	.fb_release	= sisfb_release,
> diff --git a/drivers/video/fbdev/skeletonfb.c b/drivers/video/fbdev/skeletonfb.c
> index 812a36cb60c3..bcacfb6934fa 100644
> --- a/drivers/video/fbdev/skeletonfb.c
> +++ b/drivers/video/fbdev/skeletonfb.c
> @@ -634,7 +634,7 @@ int xxxfb_sync(struct fb_info *info)
>       *  Frame buffer operations
>       */
>  
> -static struct fb_ops xxxfb_ops = {
> +static const struct fb_ops xxxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= xxxfb_open,
>  	.fb_read	= xxxfb_read,
> diff --git a/drivers/video/fbdev/sm712fb.c b/drivers/video/fbdev/sm712fb.c
> index 207d0add684b..6a1b4a853d9e 100644
> --- a/drivers/video/fbdev/sm712fb.c
> +++ b/drivers/video/fbdev/sm712fb.c
> @@ -1369,7 +1369,7 @@ static int smtc_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops smtcfb_ops = {
> +static const struct fb_ops smtcfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_check_var = smtc_check_var,
>  	.fb_set_par   = smtc_set_par,
> diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
> index e362d7da87fc..bfac3ee4a642 100644
> --- a/drivers/video/fbdev/smscufx.c
> +++ b/drivers/video/fbdev/smscufx.c
> @@ -1268,7 +1268,7 @@ static int ufx_ops_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ufx_ops = {
> +static const struct fb_ops ufx_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = ufx_ops_write,
> diff --git a/drivers/video/fbdev/ssd1307fb.c b/drivers/video/fbdev/ssd1307fb.c
> index 78ca7ffc40c2..142535267fec 100644
> --- a/drivers/video/fbdev/ssd1307fb.c
> +++ b/drivers/video/fbdev/ssd1307fb.c
> @@ -280,7 +280,7 @@ static void ssd1307fb_imageblit(struct fb_info *info, const struct fb_image *ima
>  	ssd1307fb_update_display(par);
>  }
>  
> -static struct fb_ops ssd1307fb_ops = {
> +static const struct fb_ops ssd1307fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= fb_sys_read,
>  	.fb_write	= ssd1307fb_write,
> diff --git a/drivers/video/fbdev/sstfb.c b/drivers/video/fbdev/sstfb.c
> index 4e22ae383c87..82e707a48e4e 100644
> --- a/drivers/video/fbdev/sstfb.c
> +++ b/drivers/video/fbdev/sstfb.c
> @@ -1307,7 +1307,7 @@ static int sstfb_setup(char *options)
>  }
>  
>  
> -static struct fb_ops sstfb_ops = {
> +static const struct fb_ops sstfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= sstfb_check_var,
>  	.fb_set_par	= sstfb_set_par,
> diff --git a/drivers/video/fbdev/stifb.c b/drivers/video/fbdev/stifb.c
> index 9e88e3f594c2..5400ab79fbbd 100644
> --- a/drivers/video/fbdev/stifb.c
> +++ b/drivers/video/fbdev/stifb.c
> @@ -1101,7 +1101,7 @@ stifb_init_display(struct stifb_info *fb)
>  
>  /* ------------ Interfaces to hardware functions ------------ */
>  
> -static struct fb_ops stifb_ops = {
> +static const struct fb_ops stifb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_setcolreg	= stifb_setcolreg,
>  	.fb_blank	= stifb_blank,
> diff --git a/drivers/video/fbdev/sunxvr1000.c b/drivers/video/fbdev/sunxvr1000.c
> index 784c9bd5d502..15b079505a00 100644
> --- a/drivers/video/fbdev/sunxvr1000.c
> +++ b/drivers/video/fbdev/sunxvr1000.c
> @@ -59,7 +59,7 @@ static int gfb_setcolreg(unsigned regno,
>  	return 0;
>  }
>  
> -static struct fb_ops gfb_ops = {
> +static const struct fb_ops gfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= gfb_setcolreg,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/sunxvr2500.c b/drivers/video/fbdev/sunxvr2500.c
> index 31683e5a8b79..1d3bacd9d5ac 100644
> --- a/drivers/video/fbdev/sunxvr2500.c
> +++ b/drivers/video/fbdev/sunxvr2500.c
> @@ -63,7 +63,7 @@ static int s3d_setcolreg(unsigned regno,
>  	return 0;
>  }
>  
> -static struct fb_ops s3d_ops = {
> +static const struct fb_ops s3d_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= s3d_setcolreg,
>  	.fb_fillrect		= cfb_fillrect,
> diff --git a/drivers/video/fbdev/sunxvr500.c b/drivers/video/fbdev/sunxvr500.c
> index d392976126a6..9daf17b11106 100644
> --- a/drivers/video/fbdev/sunxvr500.c
> +++ b/drivers/video/fbdev/sunxvr500.c
> @@ -186,7 +186,7 @@ static void e3d_copyarea(struct fb_info *info, const struct fb_copyarea *area)
>  	spin_unlock_irqrestore(&ep->lock, flags);
>  }
>  
> -static struct fb_ops e3d_ops = {
> +static const struct fb_ops e3d_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= e3d_setcolreg,
>  	.fb_fillrect		= e3d_fillrect,
> diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c
> index 7897f86fb23e..34b2e5b6e84a 100644
> --- a/drivers/video/fbdev/tcx.c
> +++ b/drivers/video/fbdev/tcx.c
> @@ -40,7 +40,7 @@ static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops tcx_ops = {
> +static const struct fb_ops tcx_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= tcx_setcolreg,
>  	.fb_blank		= tcx_blank,
> diff --git a/drivers/video/fbdev/tdfxfb.c b/drivers/video/fbdev/tdfxfb.c
> index fdbb1ea66e6c..0349cf69652f 100644
> --- a/drivers/video/fbdev/tdfxfb.c
> +++ b/drivers/video/fbdev/tdfxfb.c
> @@ -1141,7 +1141,7 @@ static int tdfxfb_cursor(struct fb_info *info, struct fb_cursor *cursor)
>  	return 0;
>  }
>  
> -static struct fb_ops tdfxfb_ops = {
> +static const struct fb_ops tdfxfb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_check_var	= tdfxfb_check_var,
>  	.fb_set_par	= tdfxfb_set_par,
> diff --git a/drivers/video/fbdev/tgafb.c b/drivers/video/fbdev/tgafb.c
> index 286b2371c7dd..7cd262858241 100644
> --- a/drivers/video/fbdev/tgafb.c
> +++ b/drivers/video/fbdev/tgafb.c
> @@ -70,7 +70,7 @@ static struct tc_driver tgafb_tc_driver;
>   *  Frame buffer operations
>   */
>  
> -static struct fb_ops tgafb_ops = {
> +static const struct fb_ops tgafb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_check_var		= tgafb_check_var,
>  	.fb_set_par		= tgafb_set_par,
> diff --git a/drivers/video/fbdev/tmiofb.c b/drivers/video/fbdev/tmiofb.c
> index 4f2fcea10d2b..50111966c981 100644
> --- a/drivers/video/fbdev/tmiofb.c
> +++ b/drivers/video/fbdev/tmiofb.c
> @@ -646,7 +646,7 @@ static int tmiofb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops tmiofb_ops = {
> +static const struct fb_ops tmiofb_ops = {
>  	.owner		= THIS_MODULE,
>  
>  	.fb_ioctl	= tmiofb_ioctl,
> diff --git a/drivers/video/fbdev/tridentfb.c b/drivers/video/fbdev/tridentfb.c
> index da74bf6c5996..715509917eaa 100644
> --- a/drivers/video/fbdev/tridentfb.c
> +++ b/drivers/video/fbdev/tridentfb.c
> @@ -1443,7 +1443,7 @@ static int tridentfb_blank(int blank_mode, struct fb_info *info)
>  	return (blank_mode == FB_BLANK_NORMAL) ? 1 : 0;
>  }
>  
> -static struct fb_ops tridentfb_ops = {
> +static const struct fb_ops tridentfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_setcolreg = tridentfb_setcolreg,
>  	.fb_pan_display = tridentfb_pan_display,
> diff --git a/drivers/video/fbdev/valkyriefb.c b/drivers/video/fbdev/valkyriefb.c
> index e04fde9c1fcd..ca8d7343aaa1 100644
> --- a/drivers/video/fbdev/valkyriefb.c
> +++ b/drivers/video/fbdev/valkyriefb.c
> @@ -113,7 +113,7 @@ static int valkyrie_init_info(struct fb_info *info, struct fb_info_valkyrie *p);
>  static void valkyrie_par_to_fix(struct fb_par_valkyrie *par, struct fb_fix_screeninfo *fix);
>  static void valkyrie_init_fix(struct fb_fix_screeninfo *fix, struct fb_info_valkyrie *p);
>  
> -static struct fb_ops valkyriefb_ops = {
> +static const struct fb_ops valkyriefb_ops = {
>  	.owner =	THIS_MODULE,
>  	.fb_check_var =	valkyriefb_check_var,
>  	.fb_set_par =	valkyriefb_set_par,
> diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c
> index 54127905bfe7..95d3c59867d0 100644
> --- a/drivers/video/fbdev/vfb.c
> +++ b/drivers/video/fbdev/vfb.c
> @@ -78,7 +78,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var,
>  static int vfb_mmap(struct fb_info *info,
>  		    struct vm_area_struct *vma);
>  
> -static struct fb_ops vfb_ops = {
> +static const struct fb_ops vfb_ops = {
>  	.fb_read        = fb_sys_read,
>  	.fb_write       = fb_sys_write,
>  	.fb_check_var	= vfb_check_var,
> diff --git a/drivers/video/fbdev/vga16fb.c b/drivers/video/fbdev/vga16fb.c
> index 2c6a576ed84c..a20eeb8308ff 100644
> --- a/drivers/video/fbdev/vga16fb.c
> +++ b/drivers/video/fbdev/vga16fb.c
> @@ -1270,7 +1270,7 @@ static void vga16fb_destroy(struct fb_info *info)
>  	framebuffer_release(info);
>  }
>  
> -static struct fb_ops vga16fb_ops = {
> +static const struct fb_ops vga16fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open        = vga16fb_open,
>  	.fb_release     = vga16fb_release,
> diff --git a/drivers/video/fbdev/vt8500lcdfb.c b/drivers/video/fbdev/vt8500lcdfb.c
> index be8d9702cbb2..f744479dc7df 100644
> --- a/drivers/video/fbdev/vt8500lcdfb.c
> +++ b/drivers/video/fbdev/vt8500lcdfb.c
> @@ -238,7 +238,7 @@ static int vt8500lcd_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vt8500lcd_ops = {
> +static const struct fb_ops vt8500lcd_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_set_par	= vt8500lcd_set_par,
>  	.fb_setcolreg	= vt8500lcd_setcolreg,
> diff --git a/drivers/video/fbdev/vt8623fb.c b/drivers/video/fbdev/vt8623fb.c
> index c339a8fbad81..7b3eef1b893f 100644
> --- a/drivers/video/fbdev/vt8623fb.c
> +++ b/drivers/video/fbdev/vt8623fb.c
> @@ -634,7 +634,7 @@ static int vt8623fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *i
>  
>  /* Frame buffer operations */
>  
> -static struct fb_ops vt8623fb_ops = {
> +static const struct fb_ops vt8623fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_open	= vt8623fb_open,
>  	.fb_release	= vt8623fb_release,
> diff --git a/drivers/video/fbdev/w100fb.c b/drivers/video/fbdev/w100fb.c
> index 3be07807edcd..fe628ec20149 100644
> --- a/drivers/video/fbdev/w100fb.c
> +++ b/drivers/video/fbdev/w100fb.c
> @@ -549,7 +549,7 @@ static int w100fb_set_par(struct fb_info *info)
>  /*
>   *  Frame buffer operations
>   */
> -static struct fb_ops w100fb_ops = {
> +static const struct fb_ops w100fb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_check_var = w100fb_check_var,
>  	.fb_set_par   = w100fb_set_par,
> diff --git a/drivers/video/fbdev/wm8505fb.c b/drivers/video/fbdev/wm8505fb.c
> index 17c780315ca5..b656eff58c23 100644
> --- a/drivers/video/fbdev/wm8505fb.c
> +++ b/drivers/video/fbdev/wm8505fb.c
> @@ -246,7 +246,7 @@ static int wm8505fb_blank(int blank, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops wm8505fb_ops = {
> +static const struct fb_ops wm8505fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_set_par	= wm8505fb_set_par,
>  	.fb_setcolreg	= wm8505fb_setcolreg,
> diff --git a/drivers/video/fbdev/xen-fbfront.c b/drivers/video/fbdev/xen-fbfront.c
> index a3d6b6db221b..00307b8693bf 100644
> --- a/drivers/video/fbdev/xen-fbfront.c
> +++ b/drivers/video/fbdev/xen-fbfront.c
> @@ -328,7 +328,7 @@ static int xenfb_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops xenfb_fb_ops = {
> +static const struct fb_ops xenfb_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_read	= fb_sys_read,
>  	.fb_write	= xenfb_write,
> diff --git a/drivers/video/fbdev/xilinxfb.c b/drivers/video/fbdev/xilinxfb.c
> index 8628829b470d..ca4ff658cad0 100644
> --- a/drivers/video/fbdev/xilinxfb.c
> +++ b/drivers/video/fbdev/xilinxfb.c
> @@ -247,7 +247,7 @@ xilinx_fb_blank(int blank_mode, struct fb_info *fbi)
>  	return 0; /* success */
>  }
>  
> -static struct fb_ops xilinxfb_ops = {
> +static const struct fb_ops xilinxfb_ops = {
>  	.owner			= THIS_MODULE,
>  	.fb_setcolreg		= xilinx_fb_setcolreg,
>  	.fb_blank		= xilinx_fb_blank,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
  2019-12-04 11:33     ` Sakari Ailus
  (?)
  (?)
@ 2019-12-05  9:40       ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:40 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: dri-devel, linux-fbdev, intel-gfx, Hans Verkuil, Andy Walls,
	linux-media, ivtv-devel, Daniel Vetter

On Wed, 04 Dec 2019, Sakari Ailus <sakari.ailus@iki.fi> wrote:
> On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Thanks for the review!

Andy, Hans, may I have your ack to merge this through drm-misc please?

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-05  9:40       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:40 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: linux-fbdev, Andy Walls, Daniel Vetter, intel-gfx, dri-devel,
	Hans Verkuil, ivtv-devel, linux-media

On Wed, 04 Dec 2019, Sakari Ailus <sakari.ailus@iki.fi> wrote:
> On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Thanks for the review!

Andy, Hans, may I have your ack to merge this through drm-misc please?

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-05  9:40       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:40 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: linux-fbdev, Andy Walls, Daniel Vetter, intel-gfx, dri-devel,
	Hans Verkuil, ivtv-devel, linux-media

On Wed, 04 Dec 2019, Sakari Ailus <sakari.ailus@iki.fi> wrote:
> On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Thanks for the review!

Andy, Hans, may I have your ack to merge this through drm-misc please?

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-05  9:40       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-05  9:40 UTC (permalink / raw)
  To: Sakari Ailus
  Cc: linux-fbdev, Andy Walls, Daniel Vetter, intel-gfx, dri-devel,
	Hans Verkuil, ivtv-devel, linux-media

On Wed, 04 Dec 2019, Sakari Ailus <sakari.ailus@iki.fi> wrote:
> On Tue, Dec 03, 2019 at 06:38:52PM +0200, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Thanks for the review!

Andy, Hans, may I have your ack to merge this through drm-misc please?

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer
  2019-12-03 16:38   ` Jani Nikula
                     ` (2 preceding siblings ...)
  (?)
@ 2019-12-05 22:25   ` kbuild test robot
  -1 siblings, 0 replies; 121+ messages in thread
From: kbuild test robot @ 2019-12-05 22:25 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 11845 bytes --]

Hi Jani,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on drm-exynos/exynos-drm-next linus/master v5.4 next-20191205]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Jani-Nikula/video-drm-etc-constify-fbops-in-struct-fb_info/20191204-055320
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-91-g817270f-dirty
        make ARCH=x86_64 allmodconfig
        make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

   drivers/video/fbdev/smscufx.c:821:27: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/video/fbdev/smscufx.c:821:27: sparse:    expected unsigned int [usertype]
   drivers/video/fbdev/smscufx.c:821:27: sparse:    got restricted __le32 [usertype]
   drivers/video/fbdev/smscufx.c:824:27: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/video/fbdev/smscufx.c:824:27: sparse:    expected unsigned int [usertype]
   drivers/video/fbdev/smscufx.c:824:27: sparse:    got restricted __le32 [usertype]
   drivers/video/fbdev/smscufx.c:826:16: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] @@    got resunsigned short [usertype] @@
   drivers/video/fbdev/smscufx.c:826:16: sparse:    expected unsigned short [usertype]
   drivers/video/fbdev/smscufx.c:826:16: sparse:    got restricted __le16 [usertype]
   drivers/video/fbdev/smscufx.c:827:16: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] @@    got resunsigned short [usertype] @@
   drivers/video/fbdev/smscufx.c:827:16: sparse:    expected unsigned short [usertype]
   drivers/video/fbdev/smscufx.c:827:16: sparse:    got restricted __le16 [usertype]
   drivers/video/fbdev/smscufx.c:828:16: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] @@    got resunsigned short [usertype] @@
   drivers/video/fbdev/smscufx.c:828:16: sparse:    expected unsigned short [usertype]
   drivers/video/fbdev/smscufx.c:828:16: sparse:    got restricted __le16 [usertype]
   drivers/video/fbdev/smscufx.c:829:16: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] @@    got resunsigned short [usertype] @@
   drivers/video/fbdev/smscufx.c:829:16: sparse:    expected unsigned short [usertype]
   drivers/video/fbdev/smscufx.c:829:16: sparse:    got restricted __le16 [usertype]
   drivers/video/fbdev/smscufx.c:832:27: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] @@    got restrunsigned int [usertype] @@
   drivers/video/fbdev/smscufx.c:832:27: sparse:    expected unsigned int [usertype]
   drivers/video/fbdev/smscufx.c:832:27: sparse:    got restricted __le32 [usertype]
   drivers/video/fbdev/smscufx.c:835:17: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] @@    got resunsigned short [usertype] @@
   drivers/video/fbdev/smscufx.c:835:17: sparse:    expected unsigned short [usertype]
   drivers/video/fbdev/smscufx.c:835:17: sparse:    got restricted __le16 [usertype]
   drivers/video/fbdev/smscufx.c:838:17: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] @@    got resunsigned short [usertype] @@
   drivers/video/fbdev/smscufx.c:838:17: sparse:    expected unsigned short [usertype]
   drivers/video/fbdev/smscufx.c:838:17: sparse:    got restricted __le16 [usertype]
   drivers/video/fbdev/smscufx.c:1141:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const *addr @@    got char [noderevoid const *addr @@
   drivers/video/fbdev/smscufx.c:1141:19: sparse:    expected void const *addr
   drivers/video/fbdev/smscufx.c:1141:19: sparse:    got char [noderef] <asn:2> *screen_base
>> drivers/video/fbdev/smscufx.c:1173:28: sparse: sparse: assignment to const expression
   drivers/video/fbdev/smscufx.c:1250:36: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/video/fbdev/smscufx.c:1295:37: sparse: sparse: incorrect type in initializer (different address spaces) @@    expected unsigned char *old_fb @@    got char [nodunsigned char *old_fb @@
   drivers/video/fbdev/smscufx.c:1295:37: sparse:    expected unsigned char *old_fb
   drivers/video/fbdev/smscufx.c:1295:37: sparse:    got char [noderef] <asn:2> *screen_base
   drivers/video/fbdev/smscufx.c:1312:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const *addr @@    got char [noderevoid const *addr @@
   drivers/video/fbdev/smscufx.c:1312:35: sparse:    expected void const *addr
   drivers/video/fbdev/smscufx.c:1312:35: sparse:    got char [noderef] <asn:2> *screen_base
   drivers/video/fbdev/smscufx.c:1315:35: sparse: sparse: incorrect type in assignment (different address spaces) @@    expected char [noderef] <asn:2> *screen_base @@    got unchar [noderef] <asn:2> *screen_base @@
   drivers/video/fbdev/smscufx.c:1315:35: sparse:    expected char [noderef] <asn:2> *screen_base
   drivers/video/fbdev/smscufx.c:1315:35: sparse:    got unsigned char *[assigned] new_fb
   drivers/video/fbdev/smscufx.c:1558:49: sparse: sparse: Using plain integer as NULL pointer
   drivers/video/fbdev/smscufx.c:1728:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const *addr @@    got char [noderevoid const *addr @@
   drivers/video/fbdev/smscufx.c:1728:19: sparse:    expected void const *addr
   drivers/video/fbdev/smscufx.c:1728:19: sparse:    got char [noderef] <asn:2> *screen_base
--
   drivers/video/fbdev/udlfb.c:1008:19: sparse: sparse: incorrect type in argument 1 (different address spaces) @@    expected void const *addr @@    got char [noderevoid const *addr @@
   drivers/video/fbdev/udlfb.c:1008:19: sparse:    expected void const *addr
   drivers/video/fbdev/udlfb.c:1008:19: sparse:    got char [noderef] <asn:2> *screen_base
>> drivers/video/fbdev/udlfb.c:1040:28: sparse: sparse: assignment to const expression
   drivers/video/fbdev/udlfb.c:1122:36: sparse: sparse: cast removes address space '<asn:2>' of expression
   drivers/video/fbdev/udlfb.c:1374:49: sparse: sparse: Using plain integer as NULL pointer
--
>> drivers/video/fbdev/vesafb.c:457:28: sparse: sparse: assignment to const expression
--
>> drivers/video/fbdev/core/fbmem.c:1164:20: sparse: sparse: incorrect type in assignment (different modifiers) @@    expected struct fb_ops *fb @@    got structstruct fb_ops *fb @@
>> drivers/video/fbdev/core/fbmem.c:1164:20: sparse:    expected struct fb_ops *fb
>> drivers/video/fbdev/core/fbmem.c:1164:20: sparse:    got struct fb_ops const *fbops
   drivers/video/fbdev/core/fbmem.c:1300:12: sparse: sparse: incorrect type in assignment (different modifiers) @@    expected struct fb_ops *fb @@    got structstruct fb_ops *fb @@
   drivers/video/fbdev/core/fbmem.c:1300:12: sparse:    expected struct fb_ops *fb
   drivers/video/fbdev/core/fbmem.c:1300:12: sparse:    got struct fb_ops const *fbops
   drivers/video/fbdev/core/fbmem.c:1342:12: sparse: sparse: incorrect type in assignment (different modifiers) @@    expected struct fb_ops *fb @@    got structstruct fb_ops *fb @@
   drivers/video/fbdev/core/fbmem.c:1342:12: sparse:    expected struct fb_ops *fb
   drivers/video/fbdev/core/fbmem.c:1342:12: sparse:    got struct fb_ops const *fbops
--
>> drivers/video/fbdev/core/fb_defio.c:209:20: sparse: sparse: assignment to const expression
   drivers/video/fbdev/core/fb_defio.c:240:20: sparse: sparse: assignment to const expression

vim +1173 drivers/video/fbdev/smscufx.c

3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1155  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1156  /*
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1157   * Assumes caller is holding info->lock mutex (for open and release at least)
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1158   */
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1159  static int ufx_ops_release(struct fb_info *info, int user)
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1160  {
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1161  	struct ufx_data *dev = info->par;
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1162  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1163  	dev->fb_count--;
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1164  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1165  	/* We can't free fb_info here - fbmem will touch it when we return */
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1166  	if (dev->virtualized && (dev->fb_count == 0))
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1167  		schedule_delayed_work(&dev->free_framebuffer_work, HZ);
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1168  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1169  	if ((dev->fb_count == 0) && (info->fbdefio)) {
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1170  		fb_deferred_io_cleanup(info);
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1171  		kfree(info->fbdefio);
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1172  		info->fbdefio = NULL;
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18 @1173  		info->fbops->fb_mmap = ufx_ops_mmap;
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1174  	}
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1175  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1176  	pr_debug("released /dev/fb%d user=%d count=%d",
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1177  		  info->node, user, dev->fb_count);
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1178  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1179  	kref_put(&dev->kref, ufx_free);
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1180  
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1181  	return 0;
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1182  }
3c8a63e22a0802 drivers/video/smscufx.c Steve Glendinning 2011-08-18  1183  

:::::: The code at line 1173 was first introduced by commit
:::::: 3c8a63e22a0802fd56380f6ab305b419f18eb6f5 Add support for SMSC UFX6000/7000 USB display adapters

:::::: TO: Steve Glendinning <steve.glendinning@smsc.com>
:::::: CC: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

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

* Re: [Intel-gfx] [PATCH v3 09/12] HID: picoLCD: constify fb ops
  2019-12-03 16:38   ` Jani Nikula
  (?)
  (?)
@ 2019-12-09 13:59     ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 13:59 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Bruno Prémont, linux-input, Jiri Kosina

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: linux-input@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed to drm-misc-next, with Jiri's ack from the other thread [1],
thanks for the reviews and acks.

BR,
Jani.

[1] http://lore.kernel.org/r/nycvar.YFH.7.76.1912080106260.4603@cbobk.fhfr.pm


> ---
>  drivers/hid/hid-picolcd_fb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
> index e162a668fb7e..a549c42e8c90 100644
> --- a/drivers/hid/hid-picolcd_fb.c
> +++ b/drivers/hid/hid-picolcd_fb.c
> @@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -/* Note this can't be const because of struct fb_info definition */
> -static struct fb_ops picolcdfb_ops = {
> +static const struct fb_ops picolcdfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_destroy   = picolcd_fb_destroy,
>  	.fb_read      = fb_sys_read,

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 09/12] HID: picoLCD: constify fb ops
@ 2019-12-09 13:59     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 13:59 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Jiri Kosina, Bruno Prémont, linux-input

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: linux-input@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed to drm-misc-next, with Jiri's ack from the other thread [1],
thanks for the reviews and acks.

BR,
Jani.

[1] http://lore.kernel.org/r/nycvar.YFH.7.76.1912080106260.4603@cbobk.fhfr.pm


> ---
>  drivers/hid/hid-picolcd_fb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
> index e162a668fb7e..a549c42e8c90 100644
> --- a/drivers/hid/hid-picolcd_fb.c
> +++ b/drivers/hid/hid-picolcd_fb.c
> @@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -/* Note this can't be const because of struct fb_info definition */
> -static struct fb_ops picolcdfb_ops = {
> +static const struct fb_ops picolcdfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_destroy   = picolcd_fb_destroy,
>  	.fb_read      = fb_sys_read,

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 09/12] HID: picoLCD: constify fb ops
@ 2019-12-09 13:59     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 13:59 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Jiri Kosina, Bruno Prémont, linux-input

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: linux-input@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed to drm-misc-next, with Jiri's ack from the other thread [1],
thanks for the reviews and acks.

BR,
Jani.

[1] http://lore.kernel.org/r/nycvar.YFH.7.76.1912080106260.4603@cbobk.fhfr.pm


> ---
>  drivers/hid/hid-picolcd_fb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
> index e162a668fb7e..a549c42e8c90 100644
> --- a/drivers/hid/hid-picolcd_fb.c
> +++ b/drivers/hid/hid-picolcd_fb.c
> @@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -/* Note this can't be const because of struct fb_info definition */
> -static struct fb_ops picolcdfb_ops = {
> +static const struct fb_ops picolcdfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_destroy   = picolcd_fb_destroy,
>  	.fb_read      = fb_sys_read,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 09/12] HID: picoLCD: constify fb ops
@ 2019-12-09 13:59     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 13:59 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Jiri Kosina, Bruno Prémont, linux-input

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Bruno Prémont <bonbons@linux-vserver.org>
> Cc: linux-input@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Acked-by: Bruno Prémont <bonbons@linux-vserver.org>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Pushed to drm-misc-next, with Jiri's ack from the other thread [1],
thanks for the reviews and acks.

BR,
Jani.

[1] http://lore.kernel.org/r/nycvar.YFH.7.76.1912080106260.4603@cbobk.fhfr.pm


> ---
>  drivers/hid/hid-picolcd_fb.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c
> index e162a668fb7e..a549c42e8c90 100644
> --- a/drivers/hid/hid-picolcd_fb.c
> +++ b/drivers/hid/hid-picolcd_fb.c
> @@ -417,8 +417,7 @@ static int picolcd_set_par(struct fb_info *info)
>  	return 0;
>  }
>  
> -/* Note this can't be const because of struct fb_info definition */
> -static struct fb_ops picolcdfb_ops = {
> +static const struct fb_ops picolcdfb_ops = {
>  	.owner        = THIS_MODULE,
>  	.fb_destroy   = picolcd_fb_destroy,
>  	.fb_read      = fb_sys_read,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
  2019-12-03 16:38   ` Jani Nikula
  (?)
  (?)
@ 2019-12-09 14:01     ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:01 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: kvm@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Kirti, may I have your ack to merge this through drm-misc please?

BR,
Jani.

> ---
>  samples/vfio-mdev/mdpy-fb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
> index 2719bb259653..21dbf63d6e41 100644
> --- a/samples/vfio-mdev/mdpy-fb.c
> +++ b/samples/vfio-mdev/mdpy-fb.c
> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops mdpy_fb_ops = {
> +static const struct fb_ops mdpy_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= mdpy_fb_destroy,
>  	.fb_setcolreg	= mdpy_fb_setcolreg,

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-09 14:01     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:01 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: kvm@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Kirti, may I have your ack to merge this through drm-misc please?

BR,
Jani.

> ---
>  samples/vfio-mdev/mdpy-fb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
> index 2719bb259653..21dbf63d6e41 100644
> --- a/samples/vfio-mdev/mdpy-fb.c
> +++ b/samples/vfio-mdev/mdpy-fb.c
> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops mdpy_fb_ops = {
> +static const struct fb_ops mdpy_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= mdpy_fb_destroy,
>  	.fb_setcolreg	= mdpy_fb_setcolreg,

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-09 14:01     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:01 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: kvm@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Kirti, may I have your ack to merge this through drm-misc please?

BR,
Jani.

> ---
>  samples/vfio-mdev/mdpy-fb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
> index 2719bb259653..21dbf63d6e41 100644
> --- a/samples/vfio-mdev/mdpy-fb.c
> +++ b/samples/vfio-mdev/mdpy-fb.c
> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops mdpy_fb_ops = {
> +static const struct fb_ops mdpy_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= mdpy_fb_destroy,
>  	.fb_setcolreg	= mdpy_fb_setcolreg,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-09 14:01     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:01 UTC (permalink / raw)
  To: dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, Kirti Wankhede, kvm

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> v2: fix	typo (Christophe de Dinechin)
>
> Cc: Kirti Wankhede <kwankhede@nvidia.com>
> Cc: kvm@vger.kernel.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Kirti, may I have your ack to merge this through drm-misc please?

BR,
Jani.

> ---
>  samples/vfio-mdev/mdpy-fb.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
> index 2719bb259653..21dbf63d6e41 100644
> --- a/samples/vfio-mdev/mdpy-fb.c
> +++ b/samples/vfio-mdev/mdpy-fb.c
> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>  		iounmap(info->screen_base);
>  }
>  
> -static struct fb_ops mdpy_fb_ops = {
> +static const struct fb_ops mdpy_fb_ops = {
>  	.owner		= THIS_MODULE,
>  	.fb_destroy	= mdpy_fb_destroy,
>  	.fb_setcolreg	= mdpy_fb_setcolreg,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
  2019-12-03 16:38   ` Jani Nikula
  (?)
@ 2019-12-09 14:03     ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:03 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Miguel Ojeda Sandonis, intel-gfx, Robin van der Gracht, Daniel Vetter

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> Acked-by: Robin van der Gracht <robin@protonic.nl>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Miguel, Robin, just to err on the safe side, were you both okay with me
merging this through drm-misc? Not very likely to conflict badly.

BR,
Jani.

> ---
>  drivers/auxdisplay/cfag12864bfb.c | 2 +-
>  drivers/auxdisplay/ht16k33.c      | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
> index 4074886b7bc8..2002291ab338 100644
> --- a/drivers/auxdisplay/cfag12864bfb.c
> +++ b/drivers/auxdisplay/cfag12864bfb.c
> @@ -57,7 +57,7 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  	return vm_map_pages_zero(vma, &pages, 1);
>  }
>  
> -static struct fb_ops cfag12864bfb_ops = {
> +static const struct fb_ops cfag12864bfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = fb_sys_write,
> diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
> index a2fcde582e2a..d951d54b26f5 100644
> --- a/drivers/auxdisplay/ht16k33.c
> +++ b/drivers/auxdisplay/ht16k33.c
> @@ -228,7 +228,7 @@ static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  	return vm_map_pages_zero(vma, &pages, 1);
>  }
>  
> -static struct fb_ops ht16k33_fb_ops = {
> +static const struct fb_ops ht16k33_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = fb_sys_write,

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-09 14:03     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:03 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Miguel Ojeda Sandonis, intel-gfx, Robin van der Gracht, Daniel Vetter

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> Acked-by: Robin van der Gracht <robin@protonic.nl>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Miguel, Robin, just to err on the safe side, were you both okay with me
merging this through drm-misc? Not very likely to conflict badly.

BR,
Jani.

> ---
>  drivers/auxdisplay/cfag12864bfb.c | 2 +-
>  drivers/auxdisplay/ht16k33.c      | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
> index 4074886b7bc8..2002291ab338 100644
> --- a/drivers/auxdisplay/cfag12864bfb.c
> +++ b/drivers/auxdisplay/cfag12864bfb.c
> @@ -57,7 +57,7 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  	return vm_map_pages_zero(vma, &pages, 1);
>  }
>  
> -static struct fb_ops cfag12864bfb_ops = {
> +static const struct fb_ops cfag12864bfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = fb_sys_write,
> diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
> index a2fcde582e2a..d951d54b26f5 100644
> --- a/drivers/auxdisplay/ht16k33.c
> +++ b/drivers/auxdisplay/ht16k33.c
> @@ -228,7 +228,7 @@ static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  	return vm_map_pages_zero(vma, &pages, 1);
>  }
>  
> -static struct fb_ops ht16k33_fb_ops = {
> +static const struct fb_ops ht16k33_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = fb_sys_write,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-09 14:03     ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-09 14:03 UTC (permalink / raw)
  To: dri-devel, linux-fbdev
  Cc: Miguel Ojeda Sandonis, intel-gfx, Robin van der Gracht, Daniel Vetter

On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
>
> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> Cc: Robin van der Gracht <robin@protonic.nl>
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> Acked-by: Robin van der Gracht <robin@protonic.nl>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Miguel, Robin, just to err on the safe side, were you both okay with me
merging this through drm-misc? Not very likely to conflict badly.

BR,
Jani.

> ---
>  drivers/auxdisplay/cfag12864bfb.c | 2 +-
>  drivers/auxdisplay/ht16k33.c      | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c
> index 4074886b7bc8..2002291ab338 100644
> --- a/drivers/auxdisplay/cfag12864bfb.c
> +++ b/drivers/auxdisplay/cfag12864bfb.c
> @@ -57,7 +57,7 @@ static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  	return vm_map_pages_zero(vma, &pages, 1);
>  }
>  
> -static struct fb_ops cfag12864bfb_ops = {
> +static const struct fb_ops cfag12864bfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = fb_sys_write,
> diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c
> index a2fcde582e2a..d951d54b26f5 100644
> --- a/drivers/auxdisplay/ht16k33.c
> +++ b/drivers/auxdisplay/ht16k33.c
> @@ -228,7 +228,7 @@ static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma)
>  	return vm_map_pages_zero(vma, &pages, 1);
>  }
>  
> -static struct fb_ops ht16k33_fb_ops = {
> +static const struct fb_ops ht16k33_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_read = fb_sys_read,
>  	.fb_write = fb_sys_write,

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
  2019-12-09 14:01     ` Jani Nikula
  (?)
  (?)
@ 2019-12-09 18:43       ` Kirti Wankhede
  -1 siblings, 0 replies; 121+ messages in thread
From: Kirti Wankhede @ 2019-12-09 18:43 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm



On 12/9/2019 7:31 PM, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>>
>> v2: fix	typo (Christophe de Dinechin)
>>
>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>> Cc: kvm@vger.kernel.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Kirti, may I have your ack to merge this through drm-misc please?
> 
> BR,
> Jani.
> 
>> ---
>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>> index 2719bb259653..21dbf63d6e41 100644
>> --- a/samples/vfio-mdev/mdpy-fb.c
>> +++ b/samples/vfio-mdev/mdpy-fb.c
>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>   		iounmap(info->screen_base);
>>   }
>>   
>> -static struct fb_ops mdpy_fb_ops = {
>> +static const struct fb_ops mdpy_fb_ops = {
>>   	.owner		= THIS_MODULE,
>>   	.fb_destroy	= mdpy_fb_destroy,
>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
> 

Acked-by : Kirti Wankhede <kwankhede@nvidia.com>


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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-09 18:43       ` Kirti Wankhede
  0 siblings, 0 replies; 121+ messages in thread
From: Kirti Wankhede @ 2019-12-09 18:43 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm



On 12/9/2019 7:31 PM, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>>
>> v2: fix	typo (Christophe de Dinechin)
>>
>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>> Cc: kvm@vger.kernel.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Kirti, may I have your ack to merge this through drm-misc please?
> 
> BR,
> Jani.
> 
>> ---
>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>> index 2719bb259653..21dbf63d6e41 100644
>> --- a/samples/vfio-mdev/mdpy-fb.c
>> +++ b/samples/vfio-mdev/mdpy-fb.c
>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>   		iounmap(info->screen_base);
>>   }
>>   
>> -static struct fb_ops mdpy_fb_ops = {
>> +static const struct fb_ops mdpy_fb_ops = {
>>   	.owner		= THIS_MODULE,
>>   	.fb_destroy	= mdpy_fb_destroy,
>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
> 

Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-09 18:43       ` Kirti Wankhede
  0 siblings, 0 replies; 121+ messages in thread
From: Kirti Wankhede @ 2019-12-09 18:43 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm



On 12/9/2019 7:31 PM, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>>
>> v2: fix	typo (Christophe de Dinechin)
>>
>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>> Cc: kvm@vger.kernel.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Kirti, may I have your ack to merge this through drm-misc please?
> 
> BR,
> Jani.
> 
>> ---
>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>> index 2719bb259653..21dbf63d6e41 100644
>> --- a/samples/vfio-mdev/mdpy-fb.c
>> +++ b/samples/vfio-mdev/mdpy-fb.c
>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>   		iounmap(info->screen_base);
>>   }
>>   
>> -static struct fb_ops mdpy_fb_ops = {
>> +static const struct fb_ops mdpy_fb_ops = {
>>   	.owner		= THIS_MODULE,
>>   	.fb_destroy	= mdpy_fb_destroy,
>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
> 

Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-09 18:43       ` Kirti Wankhede
  0 siblings, 0 replies; 121+ messages in thread
From: Kirti Wankhede @ 2019-12-09 18:55 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm



On 12/9/2019 7:31 PM, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>>
>> v2: fix	typo (Christophe de Dinechin)
>>
>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>> Cc: kvm@vger.kernel.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Kirti, may I have your ack to merge this through drm-misc please?
> 
> BR,
> Jani.
> 
>> ---
>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>> index 2719bb259653..21dbf63d6e41 100644
>> --- a/samples/vfio-mdev/mdpy-fb.c
>> +++ b/samples/vfio-mdev/mdpy-fb.c
>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>   		iounmap(info->screen_base);
>>   }
>>   
>> -static struct fb_ops mdpy_fb_ops = {
>> +static const struct fb_ops mdpy_fb_ops = {
>>   	.owner		= THIS_MODULE,
>>   	.fb_destroy	= mdpy_fb_destroy,
>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
> 

Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
  2019-12-09 18:43       ` Kirti Wankhede
  (?)
  (?)
@ 2019-12-10  6:53         ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-10  6:53 UTC (permalink / raw)
  To: Kirti Wankhede, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm

On Tue, 10 Dec 2019, Kirti Wankhede <kwankhede@nvidia.com> wrote:
> On 12/9/2019 7:31 PM, Jani Nikula wrote:
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>>> Now that the fbops member of struct fb_info is const, we can start
>>> making the ops const as well.
>>>
>>> v2: fix	typo (Christophe de Dinechin)
>>>
>>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>>> Cc: kvm@vger.kernel.org
>>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> Kirti, may I have your ack to merge this through drm-misc please?
>> 
>> BR,
>> Jani.
>> 
>>> ---
>>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>>> index 2719bb259653..21dbf63d6e41 100644
>>> --- a/samples/vfio-mdev/mdpy-fb.c
>>> +++ b/samples/vfio-mdev/mdpy-fb.c
>>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>>   		iounmap(info->screen_base);
>>>   }
>>>   
>>> -static struct fb_ops mdpy_fb_ops = {
>>> +static const struct fb_ops mdpy_fb_ops = {
>>>   	.owner		= THIS_MODULE,
>>>   	.fb_destroy	= mdpy_fb_destroy,
>>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
>> 
>
> Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

Thanks, pushed to drm-misc-next.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-10  6:53         ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-10  6:53 UTC (permalink / raw)
  To: Kirti Wankhede, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm

On Tue, 10 Dec 2019, Kirti Wankhede <kwankhede@nvidia.com> wrote:
> On 12/9/2019 7:31 PM, Jani Nikula wrote:
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>>> Now that the fbops member of struct fb_info is const, we can start
>>> making the ops const as well.
>>>
>>> v2: fix	typo (Christophe de Dinechin)
>>>
>>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>>> Cc: kvm@vger.kernel.org
>>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> Kirti, may I have your ack to merge this through drm-misc please?
>> 
>> BR,
>> Jani.
>> 
>>> ---
>>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>>> index 2719bb259653..21dbf63d6e41 100644
>>> --- a/samples/vfio-mdev/mdpy-fb.c
>>> +++ b/samples/vfio-mdev/mdpy-fb.c
>>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>>   		iounmap(info->screen_base);
>>>   }
>>>   
>>> -static struct fb_ops mdpy_fb_ops = {
>>> +static const struct fb_ops mdpy_fb_ops = {
>>>   	.owner		= THIS_MODULE,
>>>   	.fb_destroy	= mdpy_fb_destroy,
>>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
>> 
>
> Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

Thanks, pushed to drm-misc-next.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-10  6:53         ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-10  6:53 UTC (permalink / raw)
  To: Kirti Wankhede, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm

On Tue, 10 Dec 2019, Kirti Wankhede <kwankhede@nvidia.com> wrote:
> On 12/9/2019 7:31 PM, Jani Nikula wrote:
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>>> Now that the fbops member of struct fb_info is const, we can start
>>> making the ops const as well.
>>>
>>> v2: fix	typo (Christophe de Dinechin)
>>>
>>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>>> Cc: kvm@vger.kernel.org
>>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> Kirti, may I have your ack to merge this through drm-misc please?
>> 
>> BR,
>> Jani.
>> 
>>> ---
>>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>>> index 2719bb259653..21dbf63d6e41 100644
>>> --- a/samples/vfio-mdev/mdpy-fb.c
>>> +++ b/samples/vfio-mdev/mdpy-fb.c
>>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>>   		iounmap(info->screen_base);
>>>   }
>>>   
>>> -static struct fb_ops mdpy_fb_ops = {
>>> +static const struct fb_ops mdpy_fb_ops = {
>>>   	.owner		= THIS_MODULE,
>>>   	.fb_destroy	= mdpy_fb_destroy,
>>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
>> 
>
> Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

Thanks, pushed to drm-misc-next.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 11/12] samples: vfio-mdev: constify fb ops
@ 2019-12-10  6:53         ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-10  6:53 UTC (permalink / raw)
  To: Kirti Wankhede, dri-devel, linux-fbdev; +Cc: Daniel Vetter, intel-gfx, kvm

On Tue, 10 Dec 2019, Kirti Wankhede <kwankhede@nvidia.com> wrote:
> On 12/9/2019 7:31 PM, Jani Nikula wrote:
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>>> Now that the fbops member of struct fb_info is const, we can start
>>> making the ops const as well.
>>>
>>> v2: fix	typo (Christophe de Dinechin)
>>>
>>> Cc: Kirti Wankhede <kwankhede@nvidia.com>
>>> Cc: kvm@vger.kernel.org
>>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>> 
>> Kirti, may I have your ack to merge this through drm-misc please?
>> 
>> BR,
>> Jani.
>> 
>>> ---
>>>   samples/vfio-mdev/mdpy-fb.c | 2 +-
>>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/samples/vfio-mdev/mdpy-fb.c b/samples/vfio-mdev/mdpy-fb.c
>>> index 2719bb259653..21dbf63d6e41 100644
>>> --- a/samples/vfio-mdev/mdpy-fb.c
>>> +++ b/samples/vfio-mdev/mdpy-fb.c
>>> @@ -86,7 +86,7 @@ static void mdpy_fb_destroy(struct fb_info *info)
>>>   		iounmap(info->screen_base);
>>>   }
>>>   
>>> -static struct fb_ops mdpy_fb_ops = {
>>> +static const struct fb_ops mdpy_fb_ops = {
>>>   	.owner		= THIS_MODULE,
>>>   	.fb_destroy	= mdpy_fb_destroy,
>>>   	.fb_setcolreg	= mdpy_fb_setcolreg,
>> 
>
> Acked-by : Kirti Wankhede <kwankhede@nvidia.com>

Thanks, pushed to drm-misc-next.

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
  2019-12-09 14:03     ` Jani Nikula
@ 2019-12-10 19:08       ` Miguel Ojeda
  -1 siblings, 0 replies; 121+ messages in thread
From: Miguel Ojeda @ 2019-12-10 19:08 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Daniel Vetter, linux-fbdev, intel-gfx, dri-devel, Robin van der Gracht

On Mon, Dec 9, 2019 at 3:04 PM Jani Nikula <jani.nikula@intel.com> wrote:
>
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> > Now that the fbops member of struct fb_info is const, we can start
> > making the ops const as well.
> >
> > Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> > Cc: Robin van der Gracht <robin@protonic.nl>
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> > Acked-by: Robin van der Gracht <robin@protonic.nl>
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Miguel, Robin, just to err on the safe side, were you both okay with me
> merging this through drm-misc? Not very likely to conflict badly.

I think that is fine, go ahead! :)

Cheers,
Miguel

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-10 19:08       ` Miguel Ojeda
  0 siblings, 0 replies; 121+ messages in thread
From: Miguel Ojeda @ 2019-12-10 19:08 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Daniel Vetter, linux-fbdev, intel-gfx, dri-devel, Robin van der Gracht

On Mon, Dec 9, 2019 at 3:04 PM Jani Nikula <jani.nikula@intel.com> wrote:
>
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
> > Now that the fbops member of struct fb_info is const, we can start
> > making the ops const as well.
> >
> > Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
> > Cc: Robin van der Gracht <robin@protonic.nl>
> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
> > Acked-by: Robin van der Gracht <robin@protonic.nl>
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Miguel, Robin, just to err on the safe side, were you both okay with me
> merging this through drm-misc? Not very likely to conflict badly.

I think that is fine, go ahead! :)

Cheers,
Miguel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
  2019-12-09 14:03     ` Jani Nikula
  (?)
@ 2019-12-11  8:35       ` robin
  -1 siblings, 0 replies; 121+ messages in thread
From: robin @ 2019-12-11  8:35 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Miguel Ojeda Sandonis, linux-fbdev, intel-gfx, dri-devel, Daniel Vetter

Hello Jani,

On 2019-12-09 15:03, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
>> Cc: Robin van der Gracht <robin@protonic.nl>
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
>> Acked-by: Robin van der Gracht <robin@protonic.nl>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Miguel, Robin, just to err on the safe side, were you both okay with me
> merging this through drm-misc? Not very likely to conflict badly.

ht16k33 driver hasn't seen much change lately, should be fine.

Robin

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-11  8:35       ` robin
  0 siblings, 0 replies; 121+ messages in thread
From: robin @ 2019-12-11  8:35 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Miguel Ojeda Sandonis, linux-fbdev, intel-gfx, dri-devel, Daniel Vetter

Hello Jani,

On 2019-12-09 15:03, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
>> Cc: Robin van der Gracht <robin@protonic.nl>
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
>> Acked-by: Robin van der Gracht <robin@protonic.nl>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Miguel, Robin, just to err on the safe side, were you both okay with me
> merging this through drm-misc? Not very likely to conflict badly.

ht16k33 driver hasn't seen much change lately, should be fine.

Robin
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-11  8:35       ` robin
  0 siblings, 0 replies; 121+ messages in thread
From: robin @ 2019-12-11  8:35 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Miguel Ojeda Sandonis, linux-fbdev, intel-gfx, dri-devel, Daniel Vetter

Hello Jani,

On 2019-12-09 15:03, Jani Nikula wrote:
> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
>> Cc: Robin van der Gracht <robin@protonic.nl>
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
>> Acked-by: Robin van der Gracht <robin@protonic.nl>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> 
> Miguel, Robin, just to err on the safe side, were you both okay with me
> merging this through drm-misc? Not very likely to conflict badly.

ht16k33 driver hasn't seen much change lately, should be fine.

Robin
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
  2019-12-10 19:08       ` Miguel Ojeda
  (?)
@ 2019-12-11 11:11         ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-11 11:11 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Daniel Vetter, linux-fbdev, intel-gfx, dri-devel, Robin van der Gracht

On Tue, 10 Dec 2019, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote:
> On Mon, Dec 9, 2019 at 3:04 PM Jani Nikula <jani.nikula@intel.com> wrote:
>>
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> > Now that the fbops member of struct fb_info is const, we can start
>> > making the ops const as well.
>> >
>> > Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
>> > Cc: Robin van der Gracht <robin@protonic.nl>
>> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> > Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
>> > Acked-by: Robin van der Gracht <robin@protonic.nl>
>> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>
>> Miguel, Robin, just to err on the safe side, were you both okay with me
>> merging this through drm-misc? Not very likely to conflict badly.
>
> I think that is fine, go ahead! :)

Thanks, pushed to drm-misc-next!

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-11 11:11         ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-11 11:11 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Daniel Vetter, linux-fbdev, intel-gfx, dri-devel, Robin van der Gracht

On Tue, 10 Dec 2019, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote:
> On Mon, Dec 9, 2019 at 3:04 PM Jani Nikula <jani.nikula@intel.com> wrote:
>>
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> > Now that the fbops member of struct fb_info is const, we can start
>> > making the ops const as well.
>> >
>> > Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
>> > Cc: Robin van der Gracht <robin@protonic.nl>
>> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> > Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
>> > Acked-by: Robin van der Gracht <robin@protonic.nl>
>> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>
>> Miguel, Robin, just to err on the safe side, were you both okay with me
>> merging this through drm-misc? Not very likely to conflict badly.
>
> I think that is fine, go ahead! :)

Thanks, pushed to drm-misc-next!

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 12/12] auxdisplay: constify fb ops
@ 2019-12-11 11:11         ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-11 11:11 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Daniel Vetter, linux-fbdev, intel-gfx, dri-devel, Robin van der Gracht

On Tue, 10 Dec 2019, Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> wrote:
> On Mon, Dec 9, 2019 at 3:04 PM Jani Nikula <jani.nikula@intel.com> wrote:
>>
>> On Tue, 03 Dec 2019, Jani Nikula <jani.nikula@intel.com> wrote:
>> > Now that the fbops member of struct fb_info is const, we can start
>> > making the ops const as well.
>> >
>> > Cc: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
>> > Cc: Robin van der Gracht <robin@protonic.nl>
>> > Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> > Reviewed-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
>> > Acked-by: Robin van der Gracht <robin@protonic.nl>
>> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>>
>> Miguel, Robin, just to err on the safe side, were you both okay with me
>> merging this through drm-misc? Not very likely to conflict badly.
>
> I think that is fine, go ahead! :)

Thanks, pushed to drm-misc-next!

BR,
Jani.

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
  2019-12-03 16:38   ` Jani Nikula
  (?)
  (?)
@ 2019-12-12  9:02     ` Hans Verkuil
  -1 siblings, 0 replies; 121+ messages in thread
From: Hans Verkuil @ 2019-12-12  9:02 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev
  Cc: intel-gfx, Andy Walls, linux-media, Daniel Vetter

On 12/3/19 5:38 PM, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Thanks!

	Hans

> ---
>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
> index 95a56cce9b65..f2922b554b09 100644
> --- a/drivers/media/pci/ivtv/ivtvfb.c
> +++ b/drivers/media/pci/ivtv/ivtvfb.c
> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ivtvfb_ops = {
> +static const struct fb_ops ivtvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_write       = ivtvfb_write,
>  	.fb_check_var   = ivtvfb_check_var,
> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>  
>  	oi->ivtvfb_info.node = -1;
>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>  	oi->ivtvfb_info.par = itv;
>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
> index f2e789bdf4a6..fbaec8acc161 100644
> --- a/drivers/media/platform/vivid/vivid-osd.c
> +++ b/drivers/media/platform/vivid/vivid-osd.c
> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vivid_fb_ops = {
> +static const struct fb_ops vivid_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var   = vivid_fb_check_var,
>  	.fb_set_par     = vivid_fb_set_par,
> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>  
>  	dev->fb_info.node = -1;
>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
> -	dev->fb_info.fbops = &vivid_fb_ops;
>  	dev->fb_info.par = dev;
>  	dev->fb_info.var = dev->fb_defined;
>  	dev->fb_info.fix = dev->fb_fix;
> 


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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-12  9:02     ` Hans Verkuil
  0 siblings, 0 replies; 121+ messages in thread
From: Hans Verkuil @ 2019-12-12  9:02 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Andy Walls, linux-media

On 12/3/19 5:38 PM, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Thanks!

	Hans

> ---
>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
> index 95a56cce9b65..f2922b554b09 100644
> --- a/drivers/media/pci/ivtv/ivtvfb.c
> +++ b/drivers/media/pci/ivtv/ivtvfb.c
> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ivtvfb_ops = {
> +static const struct fb_ops ivtvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_write       = ivtvfb_write,
>  	.fb_check_var   = ivtvfb_check_var,
> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>  
>  	oi->ivtvfb_info.node = -1;
>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>  	oi->ivtvfb_info.par = itv;
>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
> index f2e789bdf4a6..fbaec8acc161 100644
> --- a/drivers/media/platform/vivid/vivid-osd.c
> +++ b/drivers/media/platform/vivid/vivid-osd.c
> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vivid_fb_ops = {
> +static const struct fb_ops vivid_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var   = vivid_fb_check_var,
>  	.fb_set_par     = vivid_fb_set_par,
> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>  
>  	dev->fb_info.node = -1;
>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
> -	dev->fb_info.fbops = &vivid_fb_ops;
>  	dev->fb_info.par = dev;
>  	dev->fb_info.var = dev->fb_defined;
>  	dev->fb_info.fix = dev->fb_fix;
> 

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-12  9:02     ` Hans Verkuil
  0 siblings, 0 replies; 121+ messages in thread
From: Hans Verkuil @ 2019-12-12  9:02 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Andy Walls, linux-media

On 12/3/19 5:38 PM, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Thanks!

	Hans

> ---
>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
> index 95a56cce9b65..f2922b554b09 100644
> --- a/drivers/media/pci/ivtv/ivtvfb.c
> +++ b/drivers/media/pci/ivtv/ivtvfb.c
> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ivtvfb_ops = {
> +static const struct fb_ops ivtvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_write       = ivtvfb_write,
>  	.fb_check_var   = ivtvfb_check_var,
> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>  
>  	oi->ivtvfb_info.node = -1;
>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>  	oi->ivtvfb_info.par = itv;
>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
> index f2e789bdf4a6..fbaec8acc161 100644
> --- a/drivers/media/platform/vivid/vivid-osd.c
> +++ b/drivers/media/platform/vivid/vivid-osd.c
> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vivid_fb_ops = {
> +static const struct fb_ops vivid_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var   = vivid_fb_check_var,
>  	.fb_set_par     = vivid_fb_set_par,
> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>  
>  	dev->fb_info.node = -1;
>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
> -	dev->fb_info.fbops = &vivid_fb_ops;
>  	dev->fb_info.par = dev;
>  	dev->fb_info.var = dev->fb_defined;
>  	dev->fb_info.fix = dev->fb_fix;
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-12  9:02     ` Hans Verkuil
  0 siblings, 0 replies; 121+ messages in thread
From: Hans Verkuil @ 2019-12-12  9:02 UTC (permalink / raw)
  To: Jani Nikula, dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Andy Walls, linux-media

On 12/3/19 5:38 PM, Jani Nikula wrote:
> Now that the fbops member of struct fb_info is const, we can start
> making the ops const as well.
> 
> Remove the redundant fbops assignments while at it.
> 
> v2:
> - actually add const in vivid
> - fix typo (Christophe de Dinechin)
> 
> Cc: Hans Verkuil <hverkuil@xs4all.nl>
> Cc: Andy Walls <awalls@md.metrocast.net>
> Cc: linux-media@vger.kernel.org
> Cc: ivtv-devel@ivtvdriver.org
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Thanks!

	Hans

> ---
>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>  2 files changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
> index 95a56cce9b65..f2922b554b09 100644
> --- a/drivers/media/pci/ivtv/ivtvfb.c
> +++ b/drivers/media/pci/ivtv/ivtvfb.c
> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops ivtvfb_ops = {
> +static const struct fb_ops ivtvfb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_write       = ivtvfb_write,
>  	.fb_check_var   = ivtvfb_check_var,
> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>  
>  	oi->ivtvfb_info.node = -1;
>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>  	oi->ivtvfb_info.par = itv;
>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
> index f2e789bdf4a6..fbaec8acc161 100644
> --- a/drivers/media/platform/vivid/vivid-osd.c
> +++ b/drivers/media/platform/vivid/vivid-osd.c
> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>  	return 0;
>  }
>  
> -static struct fb_ops vivid_fb_ops = {
> +static const struct fb_ops vivid_fb_ops = {
>  	.owner = THIS_MODULE,
>  	.fb_check_var   = vivid_fb_check_var,
>  	.fb_set_par     = vivid_fb_set_par,
> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>  
>  	dev->fb_info.node = -1;
>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
> -	dev->fb_info.fbops = &vivid_fb_ops;
>  	dev->fb_info.par = dev;
>  	dev->fb_info.var = dev->fb_defined;
>  	dev->fb_info.fix = dev->fb_fix;
> 

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
  2019-12-12  9:02     ` Hans Verkuil
  (?)
  (?)
@ 2019-12-13 10:41       ` Jani Nikula
  -1 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-13 10:41 UTC (permalink / raw)
  To: Hans Verkuil, dri-devel, linux-fbdev
  Cc: intel-gfx, Andy Walls, linux-media, Daniel Vetter, Sakari Ailus

On Thu, 12 Dec 2019, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 12/3/19 5:38 PM, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Pushed to drm-misc-next, thanks for the reviews and acks.

BR,
Jani.

>
> Thanks!
>
> 	Hans
>
>> ---
>>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>>  2 files changed, 2 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
>> index 95a56cce9b65..f2922b554b09 100644
>> --- a/drivers/media/pci/ivtv/ivtvfb.c
>> +++ b/drivers/media/pci/ivtv/ivtvfb.c
>> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops ivtvfb_ops = {
>> +static const struct fb_ops ivtvfb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_write       = ivtvfb_write,
>>  	.fb_check_var   = ivtvfb_check_var,
>> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>>  
>>  	oi->ivtvfb_info.node = -1;
>>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>>  	oi->ivtvfb_info.par = itv;
>>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
>> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
>> index f2e789bdf4a6..fbaec8acc161 100644
>> --- a/drivers/media/platform/vivid/vivid-osd.c
>> +++ b/drivers/media/platform/vivid/vivid-osd.c
>> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops vivid_fb_ops = {
>> +static const struct fb_ops vivid_fb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_check_var   = vivid_fb_check_var,
>>  	.fb_set_par     = vivid_fb_set_par,
>> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>>  
>>  	dev->fb_info.node = -1;
>>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	dev->fb_info.fbops = &vivid_fb_ops;
>>  	dev->fb_info.par = dev;
>>  	dev->fb_info.var = dev->fb_defined;
>>  	dev->fb_info.fix = dev->fb_fix;
>> 
>

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-13 10:41       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-13 10:41 UTC (permalink / raw)
  To: Hans Verkuil, dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Andy Walls, Sakari Ailus, linux-media

On Thu, 12 Dec 2019, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 12/3/19 5:38 PM, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Pushed to drm-misc-next, thanks for the reviews and acks.

BR,
Jani.

>
> Thanks!
>
> 	Hans
>
>> ---
>>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>>  2 files changed, 2 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
>> index 95a56cce9b65..f2922b554b09 100644
>> --- a/drivers/media/pci/ivtv/ivtvfb.c
>> +++ b/drivers/media/pci/ivtv/ivtvfb.c
>> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops ivtvfb_ops = {
>> +static const struct fb_ops ivtvfb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_write       = ivtvfb_write,
>>  	.fb_check_var   = ivtvfb_check_var,
>> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>>  
>>  	oi->ivtvfb_info.node = -1;
>>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>>  	oi->ivtvfb_info.par = itv;
>>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
>> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
>> index f2e789bdf4a6..fbaec8acc161 100644
>> --- a/drivers/media/platform/vivid/vivid-osd.c
>> +++ b/drivers/media/platform/vivid/vivid-osd.c
>> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops vivid_fb_ops = {
>> +static const struct fb_ops vivid_fb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_check_var   = vivid_fb_check_var,
>>  	.fb_set_par     = vivid_fb_set_par,
>> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>>  
>>  	dev->fb_info.node = -1;
>>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	dev->fb_info.fbops = &vivid_fb_ops;
>>  	dev->fb_info.par = dev;
>>  	dev->fb_info.var = dev->fb_defined;
>>  	dev->fb_info.fix = dev->fb_fix;
>> 
>

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-13 10:41       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-13 10:41 UTC (permalink / raw)
  To: Hans Verkuil, dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Andy Walls, Sakari Ailus, linux-media

On Thu, 12 Dec 2019, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 12/3/19 5:38 PM, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Pushed to drm-misc-next, thanks for the reviews and acks.

BR,
Jani.

>
> Thanks!
>
> 	Hans
>
>> ---
>>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>>  2 files changed, 2 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
>> index 95a56cce9b65..f2922b554b09 100644
>> --- a/drivers/media/pci/ivtv/ivtvfb.c
>> +++ b/drivers/media/pci/ivtv/ivtvfb.c
>> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops ivtvfb_ops = {
>> +static const struct fb_ops ivtvfb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_write       = ivtvfb_write,
>>  	.fb_check_var   = ivtvfb_check_var,
>> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>>  
>>  	oi->ivtvfb_info.node = -1;
>>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>>  	oi->ivtvfb_info.par = itv;
>>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
>> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
>> index f2e789bdf4a6..fbaec8acc161 100644
>> --- a/drivers/media/platform/vivid/vivid-osd.c
>> +++ b/drivers/media/platform/vivid/vivid-osd.c
>> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops vivid_fb_ops = {
>> +static const struct fb_ops vivid_fb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_check_var   = vivid_fb_check_var,
>>  	.fb_set_par     = vivid_fb_set_par,
>> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>>  
>>  	dev->fb_info.node = -1;
>>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	dev->fb_info.fbops = &vivid_fb_ops;
>>  	dev->fb_info.par = dev;
>>  	dev->fb_info.var = dev->fb_defined;
>>  	dev->fb_info.fix = dev->fb_fix;
>> 
>

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

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

* Re: [Intel-gfx] [PATCH v3 10/12] media: constify fb ops across all drivers
@ 2019-12-13 10:41       ` Jani Nikula
  0 siblings, 0 replies; 121+ messages in thread
From: Jani Nikula @ 2019-12-13 10:41 UTC (permalink / raw)
  To: Hans Verkuil, dri-devel, linux-fbdev
  Cc: Daniel Vetter, intel-gfx, Andy Walls, Sakari Ailus, linux-media

On Thu, 12 Dec 2019, Hans Verkuil <hverkuil@xs4all.nl> wrote:
> On 12/3/19 5:38 PM, Jani Nikula wrote:
>> Now that the fbops member of struct fb_info is const, we can start
>> making the ops const as well.
>> 
>> Remove the redundant fbops assignments while at it.
>> 
>> v2:
>> - actually add const in vivid
>> - fix typo (Christophe de Dinechin)
>> 
>> Cc: Hans Verkuil <hverkuil@xs4all.nl>
>> Cc: Andy Walls <awalls@md.metrocast.net>
>> Cc: linux-media@vger.kernel.org
>> Cc: ivtv-devel@ivtvdriver.org
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
>
> Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Pushed to drm-misc-next, thanks for the reviews and acks.

BR,
Jani.

>
> Thanks!
>
> 	Hans
>
>> ---
>>  drivers/media/pci/ivtv/ivtvfb.c          | 3 +--
>>  drivers/media/platform/vivid/vivid-osd.c | 3 +--
>>  2 files changed, 2 insertions(+), 4 deletions(-)
>> 
>> diff --git a/drivers/media/pci/ivtv/ivtvfb.c b/drivers/media/pci/ivtv/ivtvfb.c
>> index 95a56cce9b65..f2922b554b09 100644
>> --- a/drivers/media/pci/ivtv/ivtvfb.c
>> +++ b/drivers/media/pci/ivtv/ivtvfb.c
>> @@ -925,7 +925,7 @@ static int ivtvfb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops ivtvfb_ops = {
>> +static const struct fb_ops ivtvfb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_write       = ivtvfb_write,
>>  	.fb_check_var   = ivtvfb_check_var,
>> @@ -1049,7 +1049,6 @@ static int ivtvfb_init_vidmode(struct ivtv *itv)
>>  
>>  	oi->ivtvfb_info.node = -1;
>>  	oi->ivtvfb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	oi->ivtvfb_info.fbops = &ivtvfb_ops;
>>  	oi->ivtvfb_info.par = itv;
>>  	oi->ivtvfb_info.var = oi->ivtvfb_defined;
>>  	oi->ivtvfb_info.fix = oi->ivtvfb_fix;
>> diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
>> index f2e789bdf4a6..fbaec8acc161 100644
>> --- a/drivers/media/platform/vivid/vivid-osd.c
>> +++ b/drivers/media/platform/vivid/vivid-osd.c
>> @@ -244,7 +244,7 @@ static int vivid_fb_blank(int blank_mode, struct fb_info *info)
>>  	return 0;
>>  }
>>  
>> -static struct fb_ops vivid_fb_ops = {
>> +static const struct fb_ops vivid_fb_ops = {
>>  	.owner = THIS_MODULE,
>>  	.fb_check_var   = vivid_fb_check_var,
>>  	.fb_set_par     = vivid_fb_set_par,
>> @@ -311,7 +311,6 @@ static int vivid_fb_init_vidmode(struct vivid_dev *dev)
>>  
>>  	dev->fb_info.node = -1;
>>  	dev->fb_info.flags = FBINFO_FLAG_DEFAULT;
>> -	dev->fb_info.fbops = &vivid_fb_ops;
>>  	dev->fb_info.par = dev;
>>  	dev->fb_info.var = dev->fb_defined;
>>  	dev->fb_info.fix = dev->fb_fix;
>> 
>

-- 
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2019-12-13 10:41 UTC | newest]

Thread overview: 121+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-03 16:38 [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info Jani Nikula
2019-12-03 16:38 ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38 ` Jani Nikula
2019-12-03 16:38 ` Jani Nikula
2019-12-03 16:38 ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 01/12] video: fbdev: atyfb: modify the static fb_ops directly Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:46   ` Daniel Vetter
2019-12-03 16:46     ` [Intel-gfx] " Daniel Vetter
2019-12-03 16:46     ` Daniel Vetter
2019-12-03 16:38 ` [PATCH v3 02/12] video: fbdev: mb862xx: " Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:50   ` Daniel Vetter
2019-12-03 16:50     ` [Intel-gfx] " Daniel Vetter
2019-12-03 16:50     ` Daniel Vetter
2019-12-03 16:38 ` [PATCH v3 03/12] video: fbdev: nvidia: " Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:54   ` [Intel-gfx] " Daniel Vetter
2019-12-03 16:54     ` Daniel Vetter
2019-12-03 16:54     ` Daniel Vetter
2019-12-03 16:38 ` [PATCH v3 04/12] video: fbdev: uvesafb: " Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 17:03   ` [Intel-gfx] " Daniel Vetter
2019-12-03 17:03     ` Daniel Vetter
2019-12-03 17:03     ` Daniel Vetter
2019-12-04  6:31     ` Jani Nikula
2019-12-04  6:31       ` Jani Nikula
2019-12-04  6:31       ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 05/12] video: fbdev: make fbops member of struct fb_info a const pointer Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-05  0:12   ` kbuild test robot
2019-12-05  0:12     ` kbuild test robot
2019-12-05  0:12     ` [Intel-gfx] " kbuild test robot
2019-12-05  0:12     ` kbuild test robot
2019-12-05 22:25   ` kbuild test robot
2019-12-03 16:38 ` [PATCH v3 06/12] drm: constify fb ops across all drivers Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 07/12] video: fbdev: intelfb: use const pointer for fb_ops Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 17:09   ` Daniel Vetter
2019-12-03 17:09     ` [Intel-gfx] " Daniel Vetter
2019-12-03 17:09     ` Daniel Vetter
2019-12-03 16:38 ` [PATCH v3 08/12] video: constify fb ops across all drivers Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-05  9:37   ` [Intel-gfx] " Jani Nikula
2019-12-05  9:37     ` Jani Nikula
2019-12-05  9:37     ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 09/12] HID: picoLCD: constify fb ops Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-09 13:59   ` [Intel-gfx] " Jani Nikula
2019-12-09 13:59     ` Jani Nikula
2019-12-09 13:59     ` Jani Nikula
2019-12-09 13:59     ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 10/12] media: constify fb ops across all drivers Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-04 11:33   ` Sakari Ailus
2019-12-04 11:33     ` [Intel-gfx] " Sakari Ailus
2019-12-04 11:33     ` Sakari Ailus
2019-12-04 11:33     ` Sakari Ailus
2019-12-05  9:40     ` Jani Nikula
2019-12-05  9:40       ` [Intel-gfx] " Jani Nikula
2019-12-05  9:40       ` Jani Nikula
2019-12-05  9:40       ` Jani Nikula
2019-12-12  9:02   ` Hans Verkuil
2019-12-12  9:02     ` [Intel-gfx] " Hans Verkuil
2019-12-12  9:02     ` Hans Verkuil
2019-12-12  9:02     ` Hans Verkuil
2019-12-13 10:41     ` Jani Nikula
2019-12-13 10:41       ` [Intel-gfx] " Jani Nikula
2019-12-13 10:41       ` Jani Nikula
2019-12-13 10:41       ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 11/12] samples: vfio-mdev: constify fb ops Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-09 14:01   ` Jani Nikula
2019-12-09 14:01     ` [Intel-gfx] " Jani Nikula
2019-12-09 14:01     ` Jani Nikula
2019-12-09 14:01     ` Jani Nikula
2019-12-09 18:43     ` Kirti Wankhede
2019-12-09 18:55       ` Kirti Wankhede
2019-12-09 18:43       ` [Intel-gfx] " Kirti Wankhede
2019-12-09 18:43       ` Kirti Wankhede
2019-12-10  6:53       ` Jani Nikula
2019-12-10  6:53         ` [Intel-gfx] " Jani Nikula
2019-12-10  6:53         ` Jani Nikula
2019-12-10  6:53         ` Jani Nikula
2019-12-03 16:38 ` [PATCH v3 12/12] auxdisplay: " Jani Nikula
2019-12-03 16:38   ` [Intel-gfx] " Jani Nikula
2019-12-03 16:38   ` Jani Nikula
2019-12-09 14:03   ` Jani Nikula
2019-12-09 14:03     ` [Intel-gfx] " Jani Nikula
2019-12-09 14:03     ` Jani Nikula
2019-12-10 19:08     ` Miguel Ojeda
2019-12-10 19:08       ` Miguel Ojeda
2019-12-11 11:11       ` Jani Nikula
2019-12-11 11:11         ` [Intel-gfx] " Jani Nikula
2019-12-11 11:11         ` Jani Nikula
2019-12-11  8:35     ` robin
2019-12-11  8:35       ` [Intel-gfx] " robin
2019-12-11  8:35       ` robin
2019-12-03 16:42 ` [Intel-gfx] [PATCH v3 00/12] video, drm, etc: constify fbops in struct fb_info Jani Nikula
2019-12-03 16:42   ` Jani Nikula
2019-12-03 16:42   ` Jani Nikula
2019-12-03 16:42   ` Jani Nikula
2019-12-03 16:42   ` [Intel-gfx] " Jani Nikula
2019-12-03 19:50 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for video, drm, etc: constify fbops in struct fb_info (rev2) Patchwork
2019-12-03 20:12 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2019-12-04  5:41 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.