1. 01 Aug, 2017 40 commits
    • Daniel Vetter's avatar
      fbcon: Make fbcon a built-time depency for fbdev · 6104c370
      Daniel Vetter authored
      There's a bunch of folks who're trying to make printk less
      contended and faster, but there's a problem: printk uses the
      console_lock, and the console lock has become the BKL for all things
      fbdev/fbcon, which in turn pulled in half the drm subsystem under that
      lock. That's awkward.
      
      There reasons for that is probably just a historical accident:
      
      - fbcon is a runtime option of fbdev, i.e. at runtime you can pick
        whether your fbdev driver instances are used as kernel consoles.
        Unfortunately this wasn't implemented with some module option, but
        through some module loading magic: As long as you don't load
        fbcon.ko, there's no fbdev console support, but loading it (in any
        order wrt fbdev drivers) will create console instances for all fbdev
        drivers.
      
      - This was implemented through a notifier chain. fbcon.ko enumerates
        all fbdev instances at load time and also registers itself as
        listener in the fbdev notifier. The fbdev core tries to register new
        fbdev instances with fbcon using the notifier.
      
      - On top of that the modifier chain is also used at runtime by the
        fbdev subsystem to e.g. control backlights for panels.
      
      - The problem is that the notifier puts a mutex locking context
        between fbdev and fbcon, which mixes up the locking contexts for
        both the runtime usage and the register time usage to notify fbcon.
        And at runtime fbcon (through the fbdev core) might call into the
        notifier from a printk critical section while console_lock is held.
      
      - This means console_lock must be an outer lock for the entire fbdev
        subsystem, which also means it must be acquired when registering a
        new framebuffer driver as the outermost lock since we might call
        into fbcon (through the notifier) which would result in a locking
        inversion if fbcon would acquire the console_lock from its notifier
        callback (which it needs to register the console).
      
      - console_lock can be held anywhere, since printk can be called
        anywhere, and through the above story, plus drm/kms being an fbdev
        driver, we pull in a shocking amount of locking hiercharchy
        underneath the console_lock. Which makes cleaning up printk really
        hard (not even splitting console_lock into an rwsem is all that
        useful due to this).
      
      There's various ways to address this, but the cleanest would be to
      make fbcon a compile-time option, where fbdev directly calls the fbcon
      register functions from register_framebuffer, or dummy static inline
      versions if fbcon is disabled. Maybe augmented with a runtime knob to
      disable fbcon, if that's needed (for debugging perhaps).
      
      But this could break some users who rely on the magic "loading
      fbcon.ko enables/disables fbdev framebuffers at runtime" thing, even
      if that's unlikely. Hence we must be careful:
      
      1. Create a compile-time dependency between fbcon and fbdev in the
      least minimal way. This is what this patch does.
      
      2. Wait at least 1 year to give possible users time to scream about
      how we broke their setup. Unlikely, since all distros make fbcon
      compile-in, and embedded platforms only compile stuff they know they
      need anyway. But still.
      
      3. Convert the notifier to direct functions calls, with dummy static
      inlines if fbcon is disabled. We'll still need the fb notifier for the
      other uses (like backlights), but we can probably move it into the fb
      core (atm it must be built-into vmlinux).
      
      4. Push console_lock down the call-chain, until it is down in
      console_register again.
      
      5. Finally start to clean up and rework the printk/console locking.
      
      For context of this saga see
      
      commit 50e244cc
      Author: Alan Cox <alan@linux.intel.com>
      Date:   Fri Jan 25 10:28:15 2013 +1000
      
          fb: rework locking to fix lock ordering on takeover
      
      plus the pile of commits on top that tried to make this all work
      without terminally upsetting lockdep. We've uncovered all this when
      console_lock lockdep annotations where added in
      
      commit daee7797
      Author: Daniel Vetter <daniel.vetter@ffwll.ch>
      Date:   Sat Sep 22 19:52:11 2012 +0200
      
          console: implement lockdep support for console_lock
      
      On the patch itself:
      - Switch CONFIG_FRAMEBUFFER_CONSOLE to be a boolean, using the overall
        CONFIG_FB tristate to decided whether it should be a module or
        built-in.
      
      - At first I thought I could force the build depency with just a dummy
        symbol that fbcon.ko exports and fb.ko uses. But that leads to a
        module depency cycle (it works fine when built-in).
      
        Since this tight binding is the entire goal the simplest solution is
        to move all the fbcon modules (and there's a bunch of optinal
        source-files which are each modules of their own, for no good
        reason) into the overall fb.ko core module. That's a bit more than
        what I would have liked to do in this patch, but oh well.
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Reviewed-by: default avatarSean Paul <seanpaul@chromium.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      6104c370
    • Arvind Yadav's avatar
      video: fbdev: vt8623fb: constify pci_device_id. · 52e2fecf
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        11790	   1913	      0	  13703	   3587	drivers/video/fbdev/vt8623fb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        11854	   1849	      0	  13703	   3587	drivers/video/fbdev/vt8623fb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      52e2fecf
    • Arvind Yadav's avatar
      video: fbdev: matroxfb: constify pci_device_id. · c564dbcd
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        19884	   3036	     96	  23016	   59e8	fbdev/matrox/matroxfb_base.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        20300	   2620	     96	  23016	   59e8	fbdev/matrox/matroxfb_base.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      c564dbcd
    • Arvind Yadav's avatar
      video: fbdev: pm3fb: constify pci_device_id. · 9989518f
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        10332	    596	     16	  10944	   2ac0	drivers/video/fbdev/pm3fb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        10396	    532	     16	  10944	   2ac0	drivers/video/fbdev/pm3fb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      9989518f
    • Arvind Yadav's avatar
      video: fbdev: s3fb: constify pci_device_id. · 916f0ecf
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        20994	   2440	      8	  23442	   5b92	drivers/video/fbdev/s3fb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        21506	   1928	      8	  23442	   5b92	drivers/video/fbdev/s3fb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      916f0ecf
    • Arvind Yadav's avatar
      video: fbdev: neofb: constify pci_device_id. · 40fce960
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        12766	   1064	     21	  13851	   361b	drivers/video/fbdev/neofb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        13086	    744	     21	  13851	   361b	drivers/video/fbdev/neofb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      40fce960
    • Arvind Yadav's avatar
      video: fbdev: gxfb: constify pci_device_id. · 2d7918f3
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         2643	   1616	     16	   4275	   10b3	video/fbdev/geode/gxfb_core.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         2707	   1552	     16	   4275	   10b3	video/fbdev/geode/gxfb_core.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      2d7918f3
    • Arvind Yadav's avatar
      video: fbdev: pm2fb: constify pci_device_id. · 8bceaa32
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        11940	    660	     16	  12616	   3148	drivers/video/fbdev/pm2fb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        12068	    532	     16	  12616	   3148	drivers/video/fbdev/pm2fb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      8bceaa32
    • Arvind Yadav's avatar
      video: fbdev: imsttfb: constify pci_device_id. · 4ef34ade
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         6736	    856	      0	   7592	   1da8	drivers/video/fbdev/imsttfb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         6832	    760	      0	   7592	   1da8	drivers/video/fbdev/imsttfb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      4ef34ade
    • Arvind Yadav's avatar
      video: fbdev: sunxvr500: constify pci_device_id. · 7c2ab2ae
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
          170	    488	      0	    658	    292	drivers/video/fbdev/sunxvr500.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
          394	    264	      0	    658	    292	drivers/video/fbdev/sunxvr500.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      7c2ab2ae
    • Arvind Yadav's avatar
      video: fbdev: tdfx: constify pci_device_id. · 410bcc7a
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         8432	   1456	     16	   9904	   26b0	drivers/video/fbdev/tdfxfb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         8560	   1328	     16	   9904	   26b0	drivers/video/fbdev/tdfxfb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      410bcc7a
    • Arvind Yadav's avatar
      video: fbdev: mb862xx: constify pci_device_id. · 61f97959
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         7326	   1320	      0	   8646	   21c6	fbdev/mb862xx/mb862xxfbdrv.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         7454	   1192	      0	   8646	   21c6	fbdev/mb862xx/mb862xxfbdrv.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      61f97959
    • Arvind Yadav's avatar
      video: fbdev: nvidia: constify pci_device_id. · e40bbded
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        12149	    768	     36	  12953	   3299	video/fbdev/nvidia/nvidia.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        12213	    704	     36	  12953	   3299	video/fbdev/nvidia/nvidia.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      e40bbded
    • Arvind Yadav's avatar
      video: fbdev: vermilion: constify pci_device_id. · 347088c2
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         7953	    568	     96	   8617	   21a9 fbdev/vermilion/vermilion.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         8017	    504	     96	   8617	   21a9 fbdev/vermilion/vermilion.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      347088c2
    • Arvind Yadav's avatar
      video: fbdev: kyro: constify pci_device_id. · 344ff8da
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         3190	   2704	     24	   5918	   171e	video/fbdev/kyro/fbdev.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         3290	   2640	     24	   5918	   171e	video/fbdev/kyro/fbdev.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      344ff8da
    • Arvind Yadav's avatar
      video: fbdev: arkfb: constify pci_device_id. · c74c8b33
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        12511	   1920	      0	  14431	   385f	drivers/video/fbdev/arkfb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        12607	   1824	      0	  14431	   385f	drivers/video/fbdev/arkfb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      c74c8b33
    • Arvind Yadav's avatar
      video: fbdev: i810: constify pci_device_id. · 19a52078
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        13132	    520	     56	  13708	   358c	video/fbdev/i810/i810_main.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        13356	    296	     56	  13708	   358c	video/fbdev/i810/i810_main.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      19a52078
    • Arvind Yadav's avatar
      video: fbdev: riva: constify pci_device_id. · b5087669
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        13285	   2080	      3	  15368	   3c08	video/fbdev/riva/fbdev.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        14677	    688	      3	  15368	   3c08	video/fbdev/riva/fbdev.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      b5087669
    • Arvind Yadav's avatar
      video: fbdev: savage: constify pci_device_id. · 4d7247d1
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        19916	   1240	      8	  21164	   52ac fbdev/savage/savagefb_driver.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        20684	    472	      8	  21164	   52ac fbdev/savage/savagefb_driver.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      4d7247d1
    • Arvind Yadav's avatar
      video: fbdev: via: constify pci_device_id. · 6e8e55a9
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         3856	    968	    128	   4952	   1358	video/fbdev/via/via-core.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         4304	    520	    128	   4952	   1358	video/fbdev/via/via-core.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      6e8e55a9
    • Arvind Yadav's avatar
      video: fbdev: skeletonfb: constify pci_device_id. · 9271bc0f
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      9271bc0f
    • Arvind Yadav's avatar
      video: fbdev: tridentfb: constify pci_device_id. · bb6a1818
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        13206	   1232	     40	  14478	   388e	video/fbdev/tridentfb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        13910	    528	     40	  14478	   388e	video/fbdev/tridentfb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      bb6a1818
    • Arvind Yadav's avatar
      video: fbdev: pvr2fb: constify pci_device_id. · ba795f95
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         5155	   1312	     40	   6507	   196b	drivers/video/fbdev/pvr2fb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         5219	   1248	     40	   6507	   196b	drivers/video/fbdev/pvr2fb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      ba795f95
    • Arvind Yadav's avatar
      video: fbdev: intelfb: constify pci_device_id. · 6d92981e
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        11749	    896	     24	  12669	   317d	video/fbdev/intelfb/intelfbdrv.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        12173	    472	     24	  12669	   317d	video/fbdev/intelfb/intelfbdrv.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      6d92981e
    • Arvind Yadav's avatar
      video: fbdev: asiliantfb: constify pci_device_id. · 9189ed1e
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         4703	    512	      0	   5215	   145f	drivers/video/fbdev/asiliantfb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         4767	    448	      0	   5215	   145f	drivers/video/fbdev/asiliantfb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      9189ed1e
    • Arvind Yadav's avatar
      video: fbdev: sunxvr2500: constify pci_device_id. · c6e4f560
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
          390	    552	      0	    942	    3ae	drivers/video/fbdev/sunxvr2500.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
          686	    256	      0	    942	    3ae	drivers/video/fbdev/sunxvr2500.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      c6e4f560
    • Arvind Yadav's avatar
      video: fbdev: aty128fb: constify pci_device_id. · c622d7a3
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        11525	   2048	      8	  13581	   350d	video/fbdev/aty/aty128fb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        13061	    512	      8	  13581	   350d	video/fbdev/aty/aty128fb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      c622d7a3
    • Arvind Yadav's avatar
      video: fbdev: atyfb: constify pci_device_id. · 841fc493
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        17534	   1824	     48	  19406	   4bce	video/fbdev/aty/atyfb_base.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        18686	    672	     48	  19406	   4bce	video/fbdev/aty/atyfb_base.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      841fc493
    • Arvind Yadav's avatar
      video: fbdev: radeon: constify pci_device_id. · cac9559e
      Arvind Yadav authored
      pci_device_id are not supposed to change at runtime. All functions
      working with pci_device_id provided by <linux/pci.h> work with
      const pci_device_id. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        19709	   5024	     32	  24765	   60bd	video/fbdev/aty/radeon_base.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        22893	   1840	     32	  24765	   60bd	video/fbdev/aty/radeon_base.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Antonino Daplas <adaplas@gmail.com>
      Cc: Maik Broemme <mbroemme@libmpq.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      cac9559e
    • Arvind Yadav's avatar
      omapfb: panel-sony-acx565akm: constify attribute_group structures. · a8fb2d65
      Arvind Yadav authored
      attribute_group are not supposed to change at runtime. All functions
      working with attribute_group provided by <linux/sysfs.h> work
      with const attribute_group. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         5227	    560	      0	   5787	   169b	panel-sony-acx565akm
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         5291	    496	      0	   5787	   169b	panel-sony-acx565akm.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      a8fb2d65
    • Arvind Yadav's avatar
      omapfb: panel-tpo-td043mtea1: constify attribute_group structures. · 1b410a5a
      Arvind Yadav authored
      attribute_group are not supposed to change at runtime. All functions
      working with attribute_group provided by <linux/sysfs.h> work
      with const attribute_group. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
         2673	    368	      0	   3041	    be1	panel-tpo-td043mtea1.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
         2737	    304	      0	   3041	    be1	panel-tpo-td043mtea1.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      1b410a5a
    • Arvind Yadav's avatar
      video: fbdev: uvesafb: constify attribute_group structures. · 884e4960
      Arvind Yadav authored
      attribute_group are not supposed to change at runtime. All functions
      working with attribute_group provided by <linux/sysfs.h> work
      with const attribute_group. So mark the non-const structs as const.
      
      File size before:
         text	   data	    bss	    dec	    hex	filename
        15426	   4952	    187	  20565	   5055	drivers/video/fbdev/uvesafb.o
      
      File size after adding 'const':
         text	   data	    bss	    dec	    hex	filename
        15490	   4888	    187	  20565	   5055	drivers/video/fbdev/uvesafb.o
      Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
      Cc: Michal Januszewski <spock@gentoo.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      884e4960
    • Gustavo A. R. Silva's avatar
      video: bfin-lq035q1-fb: constify dev_pm_ops · 2ac17ef7
      Gustavo A. R. Silva authored
      This dev_pm_ops structure is only stored in the pm field of a
      device_driver structure. This field is declared const, so
      dev_pm_ops structures that have this property can be declared
      as const also.
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      2ac17ef7
    • Julia Lawall's avatar
      fbdev: da8xx-fb: Drop unnecessary static · 0ae6ee00
      Julia Lawall authored
      Drop static on a local variable, when the variable is initialized before
      any possible use.  Thus, the static has no benefit.
      
      The semantic patch that fixes this problem is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @bad exists@
      position p;
      identifier x;
      type T;
      @@
      static T x@p;
      ...
      x = <+...x...+>
      
      @@
      identifier x;
      expression e;
      type T;
      position p != bad.p;
      @@
      -static
       T x@p;
       ... when != x
           when strict
      ?x = e;
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Cc: Kees Cook <keescook@chromium.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      0ae6ee00
    • Bhumika Goyal's avatar
      drivers/video/fbdev/omap/lcd_mipid.c: add const to lcd_panel structure · a86d8d67
      Bhumika Goyal authored
      Make lcd_panel structure const as it is only copied to some object.
      As the only usage of this structure is a copy operation, so it can be
      made const.
      Signed-off-by: default avatarBhumika Goyal <bhumirks@gmail.com>
      Cc: Julia Lawall <julia.lawall@lip6.fr>
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      a86d8d67
    • Gustavo A. R. Silva's avatar
      video: cobalt_lcdfb: constify fb_fix_screeninfo structure · c9742729
      Gustavo A. R. Silva authored
      This structure is only used to copy into other structures,
      so declare it as const.
      
      This issue was detected using Coccinelle and the following semantic patch:
      
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct fb_fix_screeninfo i@p = { ... };
      
      @ok@
      identifier r.i;
      expression e;
      position p;
      @@
      e = i@p
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct fb_fix_screeninfo e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct fb_fix_screeninfo i = { ... };
      Signed-off-by: default avatarGustavo A. R. Silva <garsilva@embeddedor.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      c9742729
    • Gustavo A. R. Silva's avatar
      video: xilinxfb: constify fb_fix_screeninfo and fb_var_screeninfo structures · 40445365
      Gustavo A. R. Silva authored
      These structures are only used to copy into other structures,
      so declare them as const.
      
      This issue was detected using Coccinelle and the following semantic patch:
      
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct fb_fix_screeninfo i@p = { ... };
      
      @ok@
      identifier r.i;
      expression e;
      position p;
      @@
      e = i@p
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct fb_fix_screeninfo e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct fb_fix_screeninfo i = { ... };
      
      The semantic patch for fb_var_screeninfo is analogous.
      Signed-off-by: default avatarGustavo A. R. Silva <garsilva@embeddedor.com>
      Acked-by: default avatarMichal Simek <michal.simek@xilinx.com>
      Cc: Soren Brinkmann <soren.brinkmann@xilinx.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      40445365
    • Gustavo A. R. Silva's avatar
      video/chips: constify fb_fix_screeninfo and fb_var_screeninfo structures · 2d9e4e2b
      Gustavo A. R. Silva authored
      These structures are only used to copy into other structures,
      so declare them as const.
      
      This issue was detected using Coccinelle and the following semantic patch:
      
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct fb_fix_screeninfo i@p = { ... };
      
      @ok@
      identifier r.i;
      expression e;
      position p;
      @@
      e = i@p
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct fb_fix_screeninfo e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct fb_fix_screeninfo i = { ... };
      
      The semantic patch for fb_var_screeninfo is analogous.
      Signed-off-by: default avatarGustavo A. R. Silva <garsilva@embeddedor.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      2d9e4e2b
    • Gustavo A. R. Silva's avatar
      video/mbx: constify fb_fix_screeninfo and fb_var_screeninfo structures · 1ccca3fe
      Gustavo A. R. Silva authored
      These structures are only used to copy into other structures,
      so declare them as const.
      
      This issue was detected using Coccinelle and the following semantic patch:
      
      @r disable optional_qualifier@
      identifier i;
      position p;
      @@
      static struct fb_fix_screeninfo i@p = { ... };
      
      @ok@
      identifier r.i;
      expression e;
      position p;
      @@
      e = i@p
      
      @bad@
      position p != {r.p,ok.p};
      identifier r.i;
      struct fb_fix_screeninfo e;
      @@
      e@i@p
      
      @depends on !bad disable optional_qualifier@
      identifier r.i;
      @@
      static
      +const
       struct fb_fix_screeninfo i = { ... };
      
      The semantic patch for fb_var_screeninfo is analogous.
      Signed-off-by: default avatarGustavo A. R. Silva <garsilva@embeddedor.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      1ccca3fe
    • Lynn Lei's avatar
      video: fbdev: sm712fb.c: fixed constant-left comparison warning · 5bbee78a
      Lynn Lei authored
      Fixed a constant-left comparison warning issue check by
      scripts/checkpatch.pl:
        WARNING: Comparisons should place the constant on the right side of the test
      Signed-off-by: default avatarLynn Lei <lynnl.wit@gmail.com>
      Cc: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
      Cc: Teddy Wang <teddy.wang@siliconmotion.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      5bbee78a