<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/video/fbmem.c, branch master</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>video: move fbdev to drivers/video/fbdev</title>
<updated>2014-04-17T05:10:19+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ti.com</email>
</author>
<published>2014-02-13T13:31:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f7018c21350204c4cf628462f229d44d03545254'/>
<id>f7018c21350204c4cf628462f229d44d03545254</id>
<content type='text'>
The drivers/video directory is a mess. It contains generic video related
files, directories for backlight, console, linux logo, lots of fbdev
device drivers, fbdev framework files.

Make some order into the chaos by creating drivers/video/fbdev
directory, and move all fbdev related files there.

No functionality is changed, although I guess it is possible that some
subtle Makefile build order related issue could be created by this
patch.

Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Acked-by: Rob Clark &lt;robdclark@gmail.com&gt;
Acked-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Acked-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The drivers/video directory is a mess. It contains generic video related
files, directories for backlight, console, linux logo, lots of fbdev
device drivers, fbdev framework files.

Make some order into the chaos by creating drivers/video/fbdev
directory, and move all fbdev related files there.

No functionality is changed, although I guess it is possible that some
subtle Makefile build order related issue could be created by this
patch.

Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Acked-by: Rob Clark &lt;robdclark@gmail.com&gt;
Acked-by: Jingoo Han &lt;jg1.han@samsung.com&gt;
Acked-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbdev: Make the switch from generic to native driver less alarming</title>
<updated>2014-04-03T09:47:16+00:00</updated>
<author>
<name>Adam Jackson</name>
<email>ajax@redhat.com</email>
</author>
<published>2014-02-12T21:02:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=13ba0ad4490c3dd08b15c430a7a01c6fb45d5bce'/>
<id>13ba0ad4490c3dd08b15c430a7a01c6fb45d5bce</id>
<content type='text'>
Calling this "conflicting" just makes people think there's a problem
when there's not.

Signed-off-by: Adam Jackson &lt;ajax@redhat.com&gt;
Reviewed-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Calling this "conflicting" just makes people think there's a problem
when there's not.

Signed-off-by: Adam Jackson &lt;ajax@redhat.com&gt;
Reviewed-by: David Herrmann &lt;dh.herrmann@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux</title>
<updated>2014-01-30T04:49:12+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-01-30T04:49:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9b0cd304f26b9fca140de15deeac2bf357d1f388'/>
<id>9b0cd304f26b9fca140de15deeac2bf357d1f388</id>
<content type='text'>
Pull drm updates from Dave Airlie:
 "Been a bit busy, first week of kids school, and waiting on other trees
  to go in before I could send this, so its a bit later than I'd
  normally like.

  Highlights:
   - core:
      timestamp fixes, lots of misc cleanups
   - new drivers:
      bochs virtual vga
   - vmwgfx:
      major overhaul for their nextgen virt gpu.
   - i915:
      runtime D3 on HSW, watermark fixes, power well work, fbc fixes,
      bdw is no longer prelim.
   - nouveau:
      gk110/208 acceleration, more pm groundwork, old overlay support
   - radeon:
      dpm rework and clockgating for CIK, pci config reset, big endian
      fixes
   - tegra:
      panel support and DSI support, build as module, prime.
   - armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast:
      fixes
   - msm:
      hdmi support for mdp5"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (595 commits)
  drm/nouveau: resume display if any later suspend bits fail
  drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip
  drm/nouveau: implement hooks for needed for drm vblank timestamping support
  drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
  drm/nv50: fill in crtc mode struct members from crtc_mode_fixup
  drm/radeon/dce8: workaround for atom BlankCrtc table
  drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
  drm/radeon: set si_notify_smc_display_change properly
  drm/radeon: fix DAC interrupt handling on DCE5+
  drm/radeon: clean up active vram sizing
  drm/radeon: skip async dma init on r6xx
  drm/radeon/runpm: don't runtime suspend non-PX cards
  drm/radeon: add ring to fence trace functions
  drm/radeon: add missing trace point
  drm/radeon: fix VMID use tracking
  drm: ast,cirrus,mgag200: use drm_can_sleep
  drm/gma500: Lock struct_mutex around cursor updates
  drm/i915: Fix the offset issue for the stolen GEM objects
  DRM: armada: fix missing DRM_KMS_FB_HELPER select
  drm/i915: Decouple GPU error reporting from ring initialisation
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull drm updates from Dave Airlie:
 "Been a bit busy, first week of kids school, and waiting on other trees
  to go in before I could send this, so its a bit later than I'd
  normally like.

  Highlights:
   - core:
      timestamp fixes, lots of misc cleanups
   - new drivers:
      bochs virtual vga
   - vmwgfx:
      major overhaul for their nextgen virt gpu.
   - i915:
      runtime D3 on HSW, watermark fixes, power well work, fbc fixes,
      bdw is no longer prelim.
   - nouveau:
      gk110/208 acceleration, more pm groundwork, old overlay support
   - radeon:
      dpm rework and clockgating for CIK, pci config reset, big endian
      fixes
   - tegra:
      panel support and DSI support, build as module, prime.
   - armada, omap, gma500, rcar, exynos, mgag200, cirrus, ast:
      fixes
   - msm:
      hdmi support for mdp5"

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (595 commits)
  drm/nouveau: resume display if any later suspend bits fail
  drm/nouveau: fix lock unbalance in nouveau_crtc_page_flip
  drm/nouveau: implement hooks for needed for drm vblank timestamping support
  drm/nouveau/disp: add a method to fetch info needed by drm vblank timestamping
  drm/nv50: fill in crtc mode struct members from crtc_mode_fixup
  drm/radeon/dce8: workaround for atom BlankCrtc table
  drm/radeon/DCE4+: clear bios scratch dpms bit (v2)
  drm/radeon: set si_notify_smc_display_change properly
  drm/radeon: fix DAC interrupt handling on DCE5+
  drm/radeon: clean up active vram sizing
  drm/radeon: skip async dma init on r6xx
  drm/radeon/runpm: don't runtime suspend non-PX cards
  drm/radeon: add ring to fence trace functions
  drm/radeon: add missing trace point
  drm/radeon: fix VMID use tracking
  drm: ast,cirrus,mgag200: use drm_can_sleep
  drm/gma500: Lock struct_mutex around cursor updates
  drm/i915: Fix the offset issue for the stolen GEM objects
  DRM: armada: fix missing DRM_KMS_FB_HELPER select
  drm/i915: Decouple GPU error reporting from ring initialisation
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>fbmem: really support wildcard video=options for all fbdev drivers</title>
<updated>2014-01-17T08:57:45+00:00</updated>
<author>
<name>Olaf Hering</name>
<email>olaf@aepfle.de</email>
</author>
<published>2013-12-15T20:40:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f5d2b7c28b67d627646b6a0142bc201a7b1516b0'/>
<id>f5d2b7c28b67d627646b6a0142bc201a7b1516b0</id>
<content type='text'>
Documentation/fb/modedb.txt states that video=option should be
considered a global option. But video_setup and fb_get_options are not
coded that way. Instead its required to boot with video=driver:option to
set a given option in drvier.  This is cumbersome because it requires to
know in advance which driver will be active for a given board/kernel.

The following patch implements the documented catchall for the fbdev
drivers. It is now possible to boot with video=XxY without the need to
know the active driver in advance. The specific case it tries to fix is
syslinux in the SUSE installer which offers a menu to set a display
resolution. Right now this just appends the vga= option the kernel. But
in addition to vga= it should be possible to pass a generic video=XxY
for all framebuffer/drm drivers. With this change forcing a certain
window size of VM displays is now much easier.

Today the video= option is stored in a global fb_mode_option. But
unfortunately only drm uses it.

Note: this change introduces a small memleak if video=option is actually
used because fb_mode_option is const. Most drivers use strsep to get to
individual options. This could be fixed in a followup patch which always
releases the option string in every caller of fb_get_options.

Signed-off-by: Olaf Hering &lt;olaf@aepfle.de&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Documentation/fb/modedb.txt states that video=option should be
considered a global option. But video_setup and fb_get_options are not
coded that way. Instead its required to boot with video=driver:option to
set a given option in drvier.  This is cumbersome because it requires to
know in advance which driver will be active for a given board/kernel.

The following patch implements the documented catchall for the fbdev
drivers. It is now possible to boot with video=XxY without the need to
know the active driver in advance. The specific case it tries to fix is
syslinux in the SUSE installer which offers a menu to set a display
resolution. Right now this just appends the vga= option the kernel. But
in addition to vga= it should be possible to pass a generic video=XxY
for all framebuffer/drm drivers. With this change forcing a certain
window size of VM displays is now much easier.

Today the video= option is stored in a global fb_mode_option. But
unfortunately only drm uses it.

Note: this change introduces a small memleak if video=option is actually
used because fb_mode_option is const. Most drivers use strsep to get to
individual options. This could be fixed in a followup patch which always
releases the option string in every caller of fb_get_options.

Signed-off-by: Olaf Hering &lt;olaf@aepfle.de&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>video/fb: Propagate error code from failing to unregister conflicting fb</title>
<updated>2013-12-18T00:56:13+00:00</updated>
<author>
<name>Chris Wilson</name>
<email>chris@chris-wilson.co.uk</email>
</author>
<published>2013-12-16T15:57:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=46eeb2c144956e88197439b5ee5cf221a91b0a81'/>
<id>46eeb2c144956e88197439b5ee5cf221a91b0a81</id>
<content type='text'>
If we fail to remove a conflicting fb driver, we need to abort the
loading of the second driver to avoid likely kernel panics.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Jean-Christophe Plagniol-Villard &lt;plagnioj@jcrosoft.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we fail to remove a conflicting fb driver, we need to abort the
loading of the second driver to avoid likely kernel panics.

Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt;
Cc: Jean-Christophe Plagniol-Villard &lt;plagnioj@jcrosoft.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Jani Nikula &lt;jani.nikula@intel.com&gt;
Signed-off-by: Dave Airlie &lt;airlied@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fb: reorder the lock sequence to fix potential dead lock</title>
<updated>2013-11-11T13:52:59+00:00</updated>
<author>
<name>Gu Zheng</name>
<email>guz.fnst@cn.fujitsu.com</email>
</author>
<published>2013-11-05T10:00:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3a41c5dbe8bc396a7fb16ca8739e945bb003342e'/>
<id>3a41c5dbe8bc396a7fb16ca8739e945bb003342e</id>
<content type='text'>
Following commits:

50e244cc79 fb: rework locking to fix lock ordering on takeover
e93a9a8687 fb: Yet another band-aid for fixing lockdep mess
054430e773 fbcon: fix locking harder

reworked locking to fix related lock ordering on takeover, and introduced console_lock
into fbmem, but it seems that the new lock sequence(fb_info-&gt;lock ---&gt; console_lock)
is against with the one in console_callback(console_lock ---&gt; fb_info-&gt;lock), and leads to
a potential dead lock as following:

[  601.079000] ======================================================
[  601.079000] [ INFO: possible circular locking dependency detected ]
[  601.079000] 3.11.0 #189 Not tainted
[  601.079000] -------------------------------------------------------
[  601.079000] kworker/0:3/619 is trying to acquire lock:
[  601.079000]  (&amp;fb_info-&gt;lock){+.+.+.}, at: [&lt;ffffffff81397566&gt;] lock_fb_info+0x26/0x60
[  601.079000]
but task is already holding lock:
[  601.079000]  (console_lock){+.+.+.}, at: [&lt;ffffffff8141aae3&gt;] console_callback+0x13/0x160
[  601.079000]
which lock already depends on the new lock.

[  601.079000]
the existing dependency chain (in reverse order) is:
[  601.079000]
-&gt; #1 (console_lock){+.+.+.}:
[  601.079000]        [&lt;ffffffff810dc971&gt;] lock_acquire+0xa1/0x140
[  601.079000]        [&lt;ffffffff810c6267&gt;] console_lock+0x77/0x80
[  601.079000]        [&lt;ffffffff81399448&gt;] register_framebuffer+0x1d8/0x320
[  601.079000]        [&lt;ffffffff81cfb4c8&gt;] efifb_probe+0x408/0x48f
[  601.079000]        [&lt;ffffffff8144a963&gt;] platform_drv_probe+0x43/0x80
[  601.079000]        [&lt;ffffffff8144853b&gt;] driver_probe_device+0x8b/0x390
[  601.079000]        [&lt;ffffffff814488eb&gt;] __driver_attach+0xab/0xb0
[  601.079000]        [&lt;ffffffff814463bd&gt;] bus_for_each_dev+0x5d/0xa0
[  601.079000]        [&lt;ffffffff81447e6e&gt;] driver_attach+0x1e/0x20
[  601.079000]        [&lt;ffffffff81447a07&gt;] bus_add_driver+0x117/0x290
[  601.079000]        [&lt;ffffffff81448fea&gt;] driver_register+0x7a/0x170
[  601.079000]        [&lt;ffffffff8144a10a&gt;] __platform_driver_register+0x4a/0x50
[  601.079000]        [&lt;ffffffff8144a12d&gt;] platform_driver_probe+0x1d/0xb0
[  601.079000]        [&lt;ffffffff81cfb0a1&gt;] efifb_init+0x273/0x292
[  601.079000]        [&lt;ffffffff81002132&gt;] do_one_initcall+0x102/0x1c0
[  601.079000]        [&lt;ffffffff81cb80a6&gt;] kernel_init_freeable+0x15d/0x1ef
[  601.079000]        [&lt;ffffffff8166d2de&gt;] kernel_init+0xe/0xf0
[  601.079000]        [&lt;ffffffff816914ec&gt;] ret_from_fork+0x7c/0xb0
[  601.079000]
-&gt; #0 (&amp;fb_info-&gt;lock){+.+.+.}:
[  601.079000]        [&lt;ffffffff810dc1d8&gt;] __lock_acquire+0x1e18/0x1f10
[  601.079000]        [&lt;ffffffff810dc971&gt;] lock_acquire+0xa1/0x140
[  601.079000]        [&lt;ffffffff816835ca&gt;] mutex_lock_nested+0x7a/0x3b0
[  601.079000]        [&lt;ffffffff81397566&gt;] lock_fb_info+0x26/0x60
[  601.079000]        [&lt;ffffffff813a4aeb&gt;] fbcon_blank+0x29b/0x2e0
[  601.079000]        [&lt;ffffffff81418658&gt;] do_blank_screen+0x1d8/0x280
[  601.079000]        [&lt;ffffffff8141ab34&gt;] console_callback+0x64/0x160
[  601.079000]        [&lt;ffffffff8108d855&gt;] process_one_work+0x1f5/0x540
[  601.079000]        [&lt;ffffffff8108e04c&gt;] worker_thread+0x11c/0x370
[  601.079000]        [&lt;ffffffff81095fbd&gt;] kthread+0xed/0x100
[  601.079000]        [&lt;ffffffff816914ec&gt;] ret_from_fork+0x7c/0xb0
[  601.079000]
other info that might help us debug this:

[  601.079000]  Possible unsafe locking scenario:

[  601.079000]        CPU0                    CPU1
[  601.079000]        ----                    ----
[  601.079000]   lock(console_lock);
[  601.079000]                                lock(&amp;fb_info-&gt;lock);
[  601.079000]                                lock(console_lock);
[  601.079000]   lock(&amp;fb_info-&gt;lock);
[  601.079000]
 *** DEADLOCK ***

so we reorder the lock sequence the same as it in console_callback() to
avoid this issue. And following Tomi's suggestion, fix these similar
issues all in fb subsystem.

Signed-off-by: Gu Zheng &lt;guz.fnst@cn.fujitsu.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following commits:

50e244cc79 fb: rework locking to fix lock ordering on takeover
e93a9a8687 fb: Yet another band-aid for fixing lockdep mess
054430e773 fbcon: fix locking harder

reworked locking to fix related lock ordering on takeover, and introduced console_lock
into fbmem, but it seems that the new lock sequence(fb_info-&gt;lock ---&gt; console_lock)
is against with the one in console_callback(console_lock ---&gt; fb_info-&gt;lock), and leads to
a potential dead lock as following:

[  601.079000] ======================================================
[  601.079000] [ INFO: possible circular locking dependency detected ]
[  601.079000] 3.11.0 #189 Not tainted
[  601.079000] -------------------------------------------------------
[  601.079000] kworker/0:3/619 is trying to acquire lock:
[  601.079000]  (&amp;fb_info-&gt;lock){+.+.+.}, at: [&lt;ffffffff81397566&gt;] lock_fb_info+0x26/0x60
[  601.079000]
but task is already holding lock:
[  601.079000]  (console_lock){+.+.+.}, at: [&lt;ffffffff8141aae3&gt;] console_callback+0x13/0x160
[  601.079000]
which lock already depends on the new lock.

[  601.079000]
the existing dependency chain (in reverse order) is:
[  601.079000]
-&gt; #1 (console_lock){+.+.+.}:
[  601.079000]        [&lt;ffffffff810dc971&gt;] lock_acquire+0xa1/0x140
[  601.079000]        [&lt;ffffffff810c6267&gt;] console_lock+0x77/0x80
[  601.079000]        [&lt;ffffffff81399448&gt;] register_framebuffer+0x1d8/0x320
[  601.079000]        [&lt;ffffffff81cfb4c8&gt;] efifb_probe+0x408/0x48f
[  601.079000]        [&lt;ffffffff8144a963&gt;] platform_drv_probe+0x43/0x80
[  601.079000]        [&lt;ffffffff8144853b&gt;] driver_probe_device+0x8b/0x390
[  601.079000]        [&lt;ffffffff814488eb&gt;] __driver_attach+0xab/0xb0
[  601.079000]        [&lt;ffffffff814463bd&gt;] bus_for_each_dev+0x5d/0xa0
[  601.079000]        [&lt;ffffffff81447e6e&gt;] driver_attach+0x1e/0x20
[  601.079000]        [&lt;ffffffff81447a07&gt;] bus_add_driver+0x117/0x290
[  601.079000]        [&lt;ffffffff81448fea&gt;] driver_register+0x7a/0x170
[  601.079000]        [&lt;ffffffff8144a10a&gt;] __platform_driver_register+0x4a/0x50
[  601.079000]        [&lt;ffffffff8144a12d&gt;] platform_driver_probe+0x1d/0xb0
[  601.079000]        [&lt;ffffffff81cfb0a1&gt;] efifb_init+0x273/0x292
[  601.079000]        [&lt;ffffffff81002132&gt;] do_one_initcall+0x102/0x1c0
[  601.079000]        [&lt;ffffffff81cb80a6&gt;] kernel_init_freeable+0x15d/0x1ef
[  601.079000]        [&lt;ffffffff8166d2de&gt;] kernel_init+0xe/0xf0
[  601.079000]        [&lt;ffffffff816914ec&gt;] ret_from_fork+0x7c/0xb0
[  601.079000]
-&gt; #0 (&amp;fb_info-&gt;lock){+.+.+.}:
[  601.079000]        [&lt;ffffffff810dc1d8&gt;] __lock_acquire+0x1e18/0x1f10
[  601.079000]        [&lt;ffffffff810dc971&gt;] lock_acquire+0xa1/0x140
[  601.079000]        [&lt;ffffffff816835ca&gt;] mutex_lock_nested+0x7a/0x3b0
[  601.079000]        [&lt;ffffffff81397566&gt;] lock_fb_info+0x26/0x60
[  601.079000]        [&lt;ffffffff813a4aeb&gt;] fbcon_blank+0x29b/0x2e0
[  601.079000]        [&lt;ffffffff81418658&gt;] do_blank_screen+0x1d8/0x280
[  601.079000]        [&lt;ffffffff8141ab34&gt;] console_callback+0x64/0x160
[  601.079000]        [&lt;ffffffff8108d855&gt;] process_one_work+0x1f5/0x540
[  601.079000]        [&lt;ffffffff8108e04c&gt;] worker_thread+0x11c/0x370
[  601.079000]        [&lt;ffffffff81095fbd&gt;] kthread+0xed/0x100
[  601.079000]        [&lt;ffffffff816914ec&gt;] ret_from_fork+0x7c/0xb0
[  601.079000]
other info that might help us debug this:

[  601.079000]  Possible unsafe locking scenario:

[  601.079000]        CPU0                    CPU1
[  601.079000]        ----                    ----
[  601.079000]   lock(console_lock);
[  601.079000]                                lock(&amp;fb_info-&gt;lock);
[  601.079000]                                lock(console_lock);
[  601.079000]   lock(&amp;fb_info-&gt;lock);
[  601.079000]
 *** DEADLOCK ***

so we reorder the lock sequence the same as it in console_callback() to
avoid this issue. And following Tomi's suggestion, fix these similar
issues all in fb subsystem.

Signed-off-by: Gu Zheng &lt;guz.fnst@cn.fujitsu.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbmem: move EXPORT_SYMBOL annotation next to symbol declarations</title>
<updated>2013-08-30T08:44:24+00:00</updated>
<author>
<name>Daniel Mack</name>
<email>zonque@gmail.com</email>
</author>
<published>2013-08-15T14:12:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9c29fba12e9657e4effccd124813639e4876971d'/>
<id>9c29fba12e9657e4effccd124813639e4876971d</id>
<content type='text'>
Just a cosmetic thing to bring that file in line with others in the
tree.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Just a cosmetic thing to bring that file in line with others in the
tree.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge tag 'fbdev-3.11-2' of git://gitorious.org/linux-omap-dss2/linux into fbdev/for-next</title>
<updated>2013-06-28T10:01:28+00:00</updated>
<author>
<name>Jean-Christophe PLAGNIOL-VILLARD</name>
<email>plagnioj@jcrosoft.com</email>
</author>
<published>2013-06-28T10:01:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=19fd7441e9cc29b6c6d73c5469b3c93aa245fbb5'/>
<id>19fd7441e9cc29b6c6d73c5469b3c93aa245fbb5</id>
<content type='text'>
Various fbdev changes for 3.11

* xilinxfb updates
* Small cleanups and fixes to multiple drivers
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Various fbdev changes for 3.11

* xilinxfb updates
* Small cleanups and fixes to multiple drivers
</pre>
</div>
</content>
</entry>
<entry>
<title>fb: make fp_get_options name argument const</title>
<updated>2013-06-27T08:53:30+00:00</updated>
<author>
<name>Vincent Stehlé</name>
<email>vincent.stehle@freescale.com</email>
</author>
<published>2013-06-18T14:23:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a66e62ae56307e587e93d7ed4d83ea34c71d2eb9'/>
<id>a66e62ae56307e587e93d7ed4d83ea34c71d2eb9</id>
<content type='text'>
drm_get_connector_name now returns a const value, which causes the following
compilation warning:

  drivers/gpu/drm/drm_fb_helper.c: In function ‘drm_fb_helper_parse_command_line’:
  drivers/gpu/drm/drm_fb_helper.c:127:3: warning: passing argument 1 of ‘fb_get_options’ discards ‘const’ qualifier from pointer target type [enabled by default]
  In file included from drivers/gpu/drm/drm_fb_helper.c:35:0:
  include/linux/fb.h:627:12: note: expected ‘char *’ but argument is of type ‘const char *’

As fb_get_options uses its name argument as read only, make it const. This
fixes the aforementioned compilation warning.

Signed-off-by: Vincent Stehlé &lt;vincent.stehle@freescale.com&gt;
Cc: Jean-Christophe Plagniol-Villard &lt;plagnioj@jcrosoft.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
Cc: trivial@kernel.org
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD &lt;plagnioj@jcrosoft.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
drm_get_connector_name now returns a const value, which causes the following
compilation warning:

  drivers/gpu/drm/drm_fb_helper.c: In function ‘drm_fb_helper_parse_command_line’:
  drivers/gpu/drm/drm_fb_helper.c:127:3: warning: passing argument 1 of ‘fb_get_options’ discards ‘const’ qualifier from pointer target type [enabled by default]
  In file included from drivers/gpu/drm/drm_fb_helper.c:35:0:
  include/linux/fb.h:627:12: note: expected ‘char *’ but argument is of type ‘const char *’

As fb_get_options uses its name argument as read only, make it const. This
fixes the aforementioned compilation warning.

Signed-off-by: Vincent Stehlé &lt;vincent.stehle@freescale.com&gt;
Cc: Jean-Christophe Plagniol-Villard &lt;plagnioj@jcrosoft.com&gt;
Cc: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
Cc: Dave Airlie &lt;airlied@redhat.com&gt;
Cc: trivial@kernel.org
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD &lt;plagnioj@jcrosoft.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbmem: return -EFAULT on copy_to_user() failure</title>
<updated>2013-06-26T13:03:36+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>dan.carpenter@oracle.com</email>
</author>
<published>2013-06-18T07:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2c30aba2b2894ceb2108f1cb2602015b121e9a81'/>
<id>2c30aba2b2894ceb2108f1cb2602015b121e9a81</id>
<content type='text'>
copy_to_user() returns the number of bytes remaining to be copied.
put_user() returns -EFAULT on error.

This function ORs a bunch of stuff together and returns jumbled non-zero
values on error.  It should return -EFAULT.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
copy_to_user() returns the number of bytes remaining to be copied.
put_user() returns -EFAULT on error.

This function ORs a bunch of stuff together and returns jumbled non-zero
values on error.  It should return -EFAULT.

Signed-off-by: Dan Carpenter &lt;dan.carpenter@oracle.com&gt;
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ti.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
