<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/video, branch v3.0.9</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>viafb: improve pitch handling</title>
<updated>2011-11-11T17:36:13+00:00</updated>
<author>
<name>Florian Tobias Schandinat</name>
<email>FlorianSchandinat@gmx.de</email>
</author>
<published>2011-06-06T01:27:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=76ec8cdcca9f8fa8e2546ed96a2715a6654487ad'/>
<id>76ec8cdcca9f8fa8e2546ed96a2715a6654487ad</id>
<content type='text'>
commit 936a3f770b8de7042d793272f008ef1bb08522e9 upstream.

This patch adds checks for minimum and maximum pitch size to prevent
invalid settings which could otherwise crash the machine. Also the
alignment is done in a slightly more readable way.

Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 936a3f770b8de7042d793272f008ef1bb08522e9 upstream.

This patch adds checks for minimum and maximum pitch size to prevent
invalid settings which could otherwise crash the machine. Also the
alignment is done in a slightly more readable way.

Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>viafb: use display information in info not in var for panning</title>
<updated>2011-11-11T17:36:12+00:00</updated>
<author>
<name>Florian Tobias Schandinat</name>
<email>FlorianSchandinat@gmx.de</email>
</author>
<published>2011-05-23T21:39:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cdf3e3448744d14b6307dfc7f7203cba6fecf199'/>
<id>cdf3e3448744d14b6307dfc7f7203cba6fecf199</id>
<content type='text'>
commit d933990c57b498c092ceef591c7c5d69dbfe9f30 upstream.

As Laurent pointed out we must not use any information in the passed
var besides xoffset, yoffset and vmode as otherwise applications
might abuse it. Also use the aligned fix.line_length and not the
(possible) unaligned xres_virtual.

Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Reported-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit d933990c57b498c092ceef591c7c5d69dbfe9f30 upstream.

As Laurent pointed out we must not use any information in the passed
var besides xoffset, yoffset and vmode as otherwise applications
might abuse it. Also use the aligned fix.line_length and not the
(possible) unaligned xres_virtual.

Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Reported-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>fb: sh-mobile: Fix deadlock risk between lock_fb_info() and console_lock()</title>
<updated>2011-11-11T17:36:11+00:00</updated>
<author>
<name>Bruno Prémont</name>
<email>bonbons@linux-vserver.org</email>
</author>
<published>2011-09-02T17:24:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3f199a7d6f2c769131f1c0dda2eb9b30d1e21617'/>
<id>3f199a7d6f2c769131f1c0dda2eb9b30d1e21617</id>
<content type='text'>
commit 4a47a0e09c504e3ce0ccdb405411aefc5b09deb8 upstream.

Following on Herton's patch "fb: avoid possible deadlock caused by
fb_set_suspend" which moves lock_fb_info() out of fb_set_suspend()
to its callers, correct sh-mobile's locking around call to
fb_set_suspend() and the same sort of deaklocks with console_lock()
due to order of taking the lock.

console_lock() must be taken while fb_info is already locked and fb_info
must be locked while calling fb_set_suspend().

Signed-off-by: Bruno Prémont &lt;bonbons@linux-vserver.org&gt;
Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4a47a0e09c504e3ce0ccdb405411aefc5b09deb8 upstream.

Following on Herton's patch "fb: avoid possible deadlock caused by
fb_set_suspend" which moves lock_fb_info() out of fb_set_suspend()
to its callers, correct sh-mobile's locking around call to
fb_set_suspend() and the same sort of deaklocks with console_lock()
due to order of taking the lock.

console_lock() must be taken while fb_info is already locked and fb_info
must be locked while calling fb_set_suspend().

Signed-off-by: Bruno Prémont &lt;bonbons@linux-vserver.org&gt;
Signed-off-by: Guennadi Liakhovetski &lt;g.liakhovetski@gmx.de&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>fb: avoid possible deadlock caused by fb_set_suspend</title>
<updated>2011-11-11T17:36:10+00:00</updated>
<author>
<name>Herton Ronaldo Krzesinski</name>
<email>herton@mandriva.com.br</email>
</author>
<published>2011-06-17T19:02:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=627afd48f8d28f14271b9ccf3b1f5d3e77237e2c'/>
<id>627afd48f8d28f14271b9ccf3b1f5d3e77237e2c</id>
<content type='text'>
commit 9e769ff3f585db8f978f9113be83d36c7e3965dd upstream.

A lock ordering issue can cause deadlocks: in framebuffer/console code,
all needed struct fb_info locks are taken before acquire_console_sem(),
in places which need to take console semaphore.

But fb_set_suspend is always called with console semaphore held, and
inside it we call lock_fb_info which gets the fb_info lock, inverse
locking order of what the rest of the code does. This causes a real
deadlock issue, when we write to state fb sysfs attribute (which calls
fb_set_suspend) while a framebuffer is being unregistered by
remove_conflicting_framebuffers, as can be shown by following show
blocked state trace on a test program which loads i915 and runs another
forked processes writing to state attribute:

Test process with semaphore held and trying to get fb_info lock:
..
fb-test2      D 0000000000000000     0   237    228 0x00000000
 ffff8800774f3d68 0000000000000082 00000000000135c0 00000000000135c0
 ffff880000000000 ffff8800774f3fd8 ffff8800774f3fd8 ffff880076ee4530
 00000000000135c0 ffff8800774f3fd8 ffff8800774f2000 00000000000135c0
Call Trace:
 [&lt;ffffffff8141287a&gt;] __mutex_lock_slowpath+0x11a/0x1e0
 [&lt;ffffffff814142f2&gt;] ? _raw_spin_lock_irq+0x22/0x40
 [&lt;ffffffff814123d3&gt;] mutex_lock+0x23/0x50
 [&lt;ffffffff8125dfc5&gt;] lock_fb_info+0x25/0x60
 [&lt;ffffffff8125e3f0&gt;] fb_set_suspend+0x20/0x80
 [&lt;ffffffff81263e2f&gt;] store_fbstate+0x4f/0x70
 [&lt;ffffffff812e7f70&gt;] dev_attr_store+0x20/0x30
 [&lt;ffffffff811c46b4&gt;] sysfs_write_file+0xd4/0x160
 [&lt;ffffffff81155a26&gt;] vfs_write+0xc6/0x190
 [&lt;ffffffff81155d51&gt;] sys_write+0x51/0x90
 [&lt;ffffffff8100c012&gt;] system_call_fastpath+0x16/0x1b
..
modprobe process stalled because has the fb_info lock (got inside
unregister_framebuffer) but waiting for the semaphore held by the
test process which is waiting to get the fb_info lock:
..
modprobe      D 0000000000000000     0   230    218 0x00000000
 ffff880077a4d618 0000000000000082 0000000000000001 0000000000000001
 ffff880000000000 ffff880077a4dfd8 ffff880077a4dfd8 ffff8800775a2e20
 00000000000135c0 ffff880077a4dfd8 ffff880077a4c000 00000000000135c0
Call Trace:
 [&lt;ffffffff81411fe5&gt;] schedule_timeout+0x215/0x310
 [&lt;ffffffff81058051&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff814130dd&gt;] __down+0x6d/0xb0
 [&lt;ffffffff81089f71&gt;] down+0x41/0x50
 [&lt;ffffffff810629ac&gt;] acquire_console_sem+0x2c/0x50
 [&lt;ffffffff812ca53d&gt;] unbind_con_driver+0xad/0x2d0
 [&lt;ffffffff8126f5f7&gt;] fbcon_event_notify+0x457/0x890
 [&lt;ffffffff814144ff&gt;] ? _raw_spin_unlock_irqrestore+0x1f/0x50
 [&lt;ffffffff81058051&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff8141836d&gt;] notifier_call_chain+0x4d/0x70
 [&lt;ffffffff8108a3b8&gt;] __blocking_notifier_call_chain+0x58/0x80
 [&lt;ffffffff8108a3f6&gt;] blocking_notifier_call_chain+0x16/0x20
 [&lt;ffffffff8125dabb&gt;] fb_notifier_call_chain+0x1b/0x20
 [&lt;ffffffff8125e6ac&gt;] unregister_framebuffer+0x7c/0x130
 [&lt;ffffffff8125e8b3&gt;] remove_conflicting_framebuffers+0x153/0x180
 [&lt;ffffffff8125eef3&gt;] register_framebuffer+0x93/0x2c0
 [&lt;ffffffffa0331112&gt;] drm_fb_helper_single_fb_probe+0x252/0x2f0 [drm_kms_helper]
 [&lt;ffffffffa03314a3&gt;] drm_fb_helper_initial_config+0x2f3/0x6d0 [drm_kms_helper]
 [&lt;ffffffffa03318dd&gt;] ? drm_fb_helper_single_add_all_connectors+0x5d/0x1c0 [drm_kms_helper]
 [&lt;ffffffffa037b588&gt;] intel_fbdev_init+0xa8/0x160 [i915]
 [&lt;ffffffffa0343d74&gt;] i915_driver_load+0x854/0x12b0 [i915]
 [&lt;ffffffffa02f0e7e&gt;] drm_get_pci_dev+0x19e/0x360 [drm]
 [&lt;ffffffff8141821d&gt;] ? sub_preempt_count+0x9d/0xd0
 [&lt;ffffffffa0386f91&gt;] i915_pci_probe+0x15/0x17 [i915]
 [&lt;ffffffff8124481f&gt;] local_pci_probe+0x5f/0xd0
 [&lt;ffffffff81244f89&gt;] pci_device_probe+0x119/0x120
 [&lt;ffffffff812eccaa&gt;] ? driver_sysfs_add+0x7a/0xb0
 [&lt;ffffffff812ed003&gt;] driver_probe_device+0xa3/0x290
 [&lt;ffffffff812ed1f0&gt;] ? __driver_attach+0x0/0xb0
 [&lt;ffffffff812ed29b&gt;] __driver_attach+0xab/0xb0
 [&lt;ffffffff812ed1f0&gt;] ? __driver_attach+0x0/0xb0
 [&lt;ffffffff812ebd3e&gt;] bus_for_each_dev+0x5e/0x90
 [&lt;ffffffff812ecc2e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff812ec6f2&gt;] bus_add_driver+0xe2/0x320
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffff812ed536&gt;] driver_register+0x76/0x140
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffff81245216&gt;] __pci_register_driver+0x56/0xd0
 [&lt;ffffffffa02f1264&gt;] drm_pci_init+0xe4/0xf0 [drm]
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffffa02e84a8&gt;] drm_init+0x58/0x70 [drm]
 [&lt;ffffffffa03aa094&gt;] i915_init+0x94/0x96 [i915]
 [&lt;ffffffff81002194&gt;] do_one_initcall+0x44/0x190
 [&lt;ffffffff810a066b&gt;] sys_init_module+0xcb/0x210
 [&lt;ffffffff8100c012&gt;] system_call_fastpath+0x16/0x1b
..

fb-test2 which reproduces above is available on kernel.org bug #26232.
To solve this issue, avoid calling lock_fb_info inside fb_set_suspend,
and move it out to where needed (callers of fb_set_suspend must call
lock_fb_info before if needed). So far, the only place which needs to
call lock_fb_info is store_fbstate, all other places which calls
fb_set_suspend are suspend/resume hooks that should not need the lock as
they should be run only when processes are already frozen in
suspend/resume.

References: https://bugzilla.kernel.org/show_bug.cgi?id=26232
Signed-off-by: Herton Ronaldo Krzesinski &lt;herton@mandriva.com.br&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 9e769ff3f585db8f978f9113be83d36c7e3965dd upstream.

A lock ordering issue can cause deadlocks: in framebuffer/console code,
all needed struct fb_info locks are taken before acquire_console_sem(),
in places which need to take console semaphore.

But fb_set_suspend is always called with console semaphore held, and
inside it we call lock_fb_info which gets the fb_info lock, inverse
locking order of what the rest of the code does. This causes a real
deadlock issue, when we write to state fb sysfs attribute (which calls
fb_set_suspend) while a framebuffer is being unregistered by
remove_conflicting_framebuffers, as can be shown by following show
blocked state trace on a test program which loads i915 and runs another
forked processes writing to state attribute:

Test process with semaphore held and trying to get fb_info lock:
..
fb-test2      D 0000000000000000     0   237    228 0x00000000
 ffff8800774f3d68 0000000000000082 00000000000135c0 00000000000135c0
 ffff880000000000 ffff8800774f3fd8 ffff8800774f3fd8 ffff880076ee4530
 00000000000135c0 ffff8800774f3fd8 ffff8800774f2000 00000000000135c0
Call Trace:
 [&lt;ffffffff8141287a&gt;] __mutex_lock_slowpath+0x11a/0x1e0
 [&lt;ffffffff814142f2&gt;] ? _raw_spin_lock_irq+0x22/0x40
 [&lt;ffffffff814123d3&gt;] mutex_lock+0x23/0x50
 [&lt;ffffffff8125dfc5&gt;] lock_fb_info+0x25/0x60
 [&lt;ffffffff8125e3f0&gt;] fb_set_suspend+0x20/0x80
 [&lt;ffffffff81263e2f&gt;] store_fbstate+0x4f/0x70
 [&lt;ffffffff812e7f70&gt;] dev_attr_store+0x20/0x30
 [&lt;ffffffff811c46b4&gt;] sysfs_write_file+0xd4/0x160
 [&lt;ffffffff81155a26&gt;] vfs_write+0xc6/0x190
 [&lt;ffffffff81155d51&gt;] sys_write+0x51/0x90
 [&lt;ffffffff8100c012&gt;] system_call_fastpath+0x16/0x1b
..
modprobe process stalled because has the fb_info lock (got inside
unregister_framebuffer) but waiting for the semaphore held by the
test process which is waiting to get the fb_info lock:
..
modprobe      D 0000000000000000     0   230    218 0x00000000
 ffff880077a4d618 0000000000000082 0000000000000001 0000000000000001
 ffff880000000000 ffff880077a4dfd8 ffff880077a4dfd8 ffff8800775a2e20
 00000000000135c0 ffff880077a4dfd8 ffff880077a4c000 00000000000135c0
Call Trace:
 [&lt;ffffffff81411fe5&gt;] schedule_timeout+0x215/0x310
 [&lt;ffffffff81058051&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff814130dd&gt;] __down+0x6d/0xb0
 [&lt;ffffffff81089f71&gt;] down+0x41/0x50
 [&lt;ffffffff810629ac&gt;] acquire_console_sem+0x2c/0x50
 [&lt;ffffffff812ca53d&gt;] unbind_con_driver+0xad/0x2d0
 [&lt;ffffffff8126f5f7&gt;] fbcon_event_notify+0x457/0x890
 [&lt;ffffffff814144ff&gt;] ? _raw_spin_unlock_irqrestore+0x1f/0x50
 [&lt;ffffffff81058051&gt;] ? get_parent_ip+0x11/0x50
 [&lt;ffffffff8141836d&gt;] notifier_call_chain+0x4d/0x70
 [&lt;ffffffff8108a3b8&gt;] __blocking_notifier_call_chain+0x58/0x80
 [&lt;ffffffff8108a3f6&gt;] blocking_notifier_call_chain+0x16/0x20
 [&lt;ffffffff8125dabb&gt;] fb_notifier_call_chain+0x1b/0x20
 [&lt;ffffffff8125e6ac&gt;] unregister_framebuffer+0x7c/0x130
 [&lt;ffffffff8125e8b3&gt;] remove_conflicting_framebuffers+0x153/0x180
 [&lt;ffffffff8125eef3&gt;] register_framebuffer+0x93/0x2c0
 [&lt;ffffffffa0331112&gt;] drm_fb_helper_single_fb_probe+0x252/0x2f0 [drm_kms_helper]
 [&lt;ffffffffa03314a3&gt;] drm_fb_helper_initial_config+0x2f3/0x6d0 [drm_kms_helper]
 [&lt;ffffffffa03318dd&gt;] ? drm_fb_helper_single_add_all_connectors+0x5d/0x1c0 [drm_kms_helper]
 [&lt;ffffffffa037b588&gt;] intel_fbdev_init+0xa8/0x160 [i915]
 [&lt;ffffffffa0343d74&gt;] i915_driver_load+0x854/0x12b0 [i915]
 [&lt;ffffffffa02f0e7e&gt;] drm_get_pci_dev+0x19e/0x360 [drm]
 [&lt;ffffffff8141821d&gt;] ? sub_preempt_count+0x9d/0xd0
 [&lt;ffffffffa0386f91&gt;] i915_pci_probe+0x15/0x17 [i915]
 [&lt;ffffffff8124481f&gt;] local_pci_probe+0x5f/0xd0
 [&lt;ffffffff81244f89&gt;] pci_device_probe+0x119/0x120
 [&lt;ffffffff812eccaa&gt;] ? driver_sysfs_add+0x7a/0xb0
 [&lt;ffffffff812ed003&gt;] driver_probe_device+0xa3/0x290
 [&lt;ffffffff812ed1f0&gt;] ? __driver_attach+0x0/0xb0
 [&lt;ffffffff812ed29b&gt;] __driver_attach+0xab/0xb0
 [&lt;ffffffff812ed1f0&gt;] ? __driver_attach+0x0/0xb0
 [&lt;ffffffff812ebd3e&gt;] bus_for_each_dev+0x5e/0x90
 [&lt;ffffffff812ecc2e&gt;] driver_attach+0x1e/0x20
 [&lt;ffffffff812ec6f2&gt;] bus_add_driver+0xe2/0x320
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffff812ed536&gt;] driver_register+0x76/0x140
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffff81245216&gt;] __pci_register_driver+0x56/0xd0
 [&lt;ffffffffa02f1264&gt;] drm_pci_init+0xe4/0xf0 [drm]
 [&lt;ffffffffa03aa000&gt;] ? i915_init+0x0/0x96 [i915]
 [&lt;ffffffffa02e84a8&gt;] drm_init+0x58/0x70 [drm]
 [&lt;ffffffffa03aa094&gt;] i915_init+0x94/0x96 [i915]
 [&lt;ffffffff81002194&gt;] do_one_initcall+0x44/0x190
 [&lt;ffffffff810a066b&gt;] sys_init_module+0xcb/0x210
 [&lt;ffffffff8100c012&gt;] system_call_fastpath+0x16/0x1b
..

fb-test2 which reproduces above is available on kernel.org bug #26232.
To solve this issue, avoid calling lock_fb_info inside fb_set_suspend,
and move it out to where needed (callers of fb_set_suspend must call
lock_fb_info before if needed). So far, the only place which needs to
call lock_fb_info is store_fbstate, all other places which calls
fb_set_suspend are suspend/resume hooks that should not need the lock as
they should be run only when processes are already frozen in
suspend/resume.

References: https://bugzilla.kernel.org/show_bug.cgi?id=26232
Signed-off-by: Herton Ronaldo Krzesinski &lt;herton@mandriva.com.br&gt;
Signed-off-by: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>carminefb: Fix module parameters permissions</title>
<updated>2011-11-11T17:36:10+00:00</updated>
<author>
<name>Jean Delvare</name>
<email>jdelvare@suse.de</email>
</author>
<published>2011-07-08T09:04:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c10d19f3ad8294dbe5d500a46891fe94558be8ea'/>
<id>c10d19f3ad8294dbe5d500a46891fe94558be8ea</id>
<content type='text'>
commit c84c14224bbca6ec60d5851fcc87be0e34df2f44 upstream.

The third parameter of module_param is supposed to be an octal value.
The missing leading "0" causes the following:

$ ls -l /sys/module/carminefb/parameters/
total 0
-rw-rwxr-- 1 root root 4096 Jul  8 08:55 fb_displays
-rw-rwxr-- 1 root root 4096 Jul  8 08:55 fb_mode
-rw-rwxr-- 1 root root 4096 Jul  8 08:55 fb_mode_str

After fixing the perm parameter, we get the expected:

$ ls -l /sys/module/carminefb/parameters/
total 0
-r--r--r-- 1 root root 4096 Jul  8 08:56 fb_displays
-r--r--r-- 1 root root 4096 Jul  8 08:56 fb_mode
-r--r--r-- 1 root root 4096 Jul  8 08:56 fb_mode_str

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Sebastian Siewior &lt;bigeasy@linutronix.de&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c84c14224bbca6ec60d5851fcc87be0e34df2f44 upstream.

The third parameter of module_param is supposed to be an octal value.
The missing leading "0" causes the following:

$ ls -l /sys/module/carminefb/parameters/
total 0
-rw-rwxr-- 1 root root 4096 Jul  8 08:55 fb_displays
-rw-rwxr-- 1 root root 4096 Jul  8 08:55 fb_mode
-rw-rwxr-- 1 root root 4096 Jul  8 08:55 fb_mode_str

After fixing the perm parameter, we get the expected:

$ ls -l /sys/module/carminefb/parameters/
total 0
-r--r--r-- 1 root root 4096 Jul  8 08:56 fb_displays
-r--r--r-- 1 root root 4096 Jul  8 08:56 fb_mode
-r--r--r-- 1 root root 4096 Jul  8 08:56 fb_mode_str

Signed-off-by: Jean Delvare &lt;jdelvare@suse.de&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Cc: Sebastian Siewior &lt;bigeasy@linutronix.de&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>savagedb: Fix typo causing regression in savage4 series video chip detection</title>
<updated>2011-10-03T18:39:57+00:00</updated>
<author>
<name>John Stanley</name>
<email>jpsinthemix@verizon.net</email>
</author>
<published>2011-08-04T00:41:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=088412ec9929d1a1aa58e30aba1304a0fee68c98'/>
<id>088412ec9929d1a1aa58e30aba1304a0fee68c98</id>
<content type='text'>
commit 4b00e4b3940eabb38adeec0823751820fe2d6fda upstream.

Two additional savage4 variants were added, but the S3_SAVAGE4_SERIES
macro was incompletely modified, resulting in a false positive detection
of a savage4 card regardless of which savage card is actually present.

For non-savage4 series cards, such as a Savage/IX-MV card, this results
in garbled video and/or a hard-hang at boot time.  Fix this by changing
an '||' to an '&amp;&amp;' in the S3_SAVAGE4_SERIES macro.

Signed-off-by: John P. Stanley &lt;jpsinthemix@verizon.net&gt;
Reviewed-by: Tormod Volden &lt;debian.tormod@gmail.com&gt;
[ The macros have incomplete parenthesis too, but whatever ..  -Linus ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4b00e4b3940eabb38adeec0823751820fe2d6fda upstream.

Two additional savage4 variants were added, but the S3_SAVAGE4_SERIES
macro was incompletely modified, resulting in a false positive detection
of a savage4 card regardless of which savage card is actually present.

For non-savage4 series cards, such as a Savage/IX-MV card, this results
in garbled video and/or a hard-hang at boot time.  Fix this by changing
an '||' to an '&amp;&amp;' in the S3_SAVAGE4_SERIES macro.

Signed-off-by: John P. Stanley &lt;jpsinthemix@verizon.net&gt;
Reviewed-by: Tormod Volden &lt;debian.tormod@gmail.com&gt;
[ The macros have incomplete parenthesis too, but whatever ..  -Linus ]
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>vesafb: fix memory leak</title>
<updated>2011-07-04T07:02:48+00:00</updated>
<author>
<name>Daniel J Blueman</name>
<email>daniel.blueman@gmail.com</email>
</author>
<published>2011-06-27T23:08:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3e86f1d8e397b1ef59a97910089e16a99e8f31f7'/>
<id>3e86f1d8e397b1ef59a97910089e16a99e8f31f7</id>
<content type='text'>
When releasing framebuffer, free colourmap allocations.

Signed-off-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When releasing framebuffer, free colourmap allocations.

Signed-off-by: Daniel J Blueman &lt;daniel.blueman@gmail.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbdev: amba: Link fb device to its parent</title>
<updated>2011-06-24T08:11:50+00:00</updated>
<author>
<name>Loïc Minier</name>
<email>loic.minier@linaro.org</email>
</author>
<published>2011-06-20T20:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=17e8c4e1ebf139743e3830439fa65fd906af4a43'/>
<id>17e8c4e1ebf139743e3830439fa65fd906af4a43</id>
<content type='text'>
Some pieces of userspace like debian-installer expect to find the fb0
driver name by readlink-ing /sys/class/graphics/fb0/device/driver but
this was broken with amba-clcd as it sets up fb_info manually and missed
the .device parent pointer.

Signed-off-by: Loïc Minier &lt;loic.minier@linaro.org&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some pieces of userspace like debian-installer expect to find the fb0
driver name by readlink-ing /sys/class/graphics/fb0/device/driver but
this was broken with amba-clcd as it sets up fb_info manually and missed
the .device parent pointer.

Signed-off-by: Loïc Minier &lt;loic.minier@linaro.org&gt;
Cc: Russell King &lt;linux@arm.linux.org.uk&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fsl-diu-fb: remove check for pixel clock ranges</title>
<updated>2011-06-24T08:08:49+00:00</updated>
<author>
<name>Timur Tabi</name>
<email>timur@freescale.com</email>
</author>
<published>2011-06-23T20:20:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=39785eb1d3e6c58cc8bf8f6990956a58037ecc75'/>
<id>39785eb1d3e6c58cc8bf8f6990956a58037ecc75</id>
<content type='text'>
The Freescale DIU framebuffer driver defines two constants, MIN_PIX_CLK and
MAX_PIX_CLK, that are supposed to represent the lower and upper limits of
the pixel clock.  These values, however, are true only for one platform
clock rate (533MHz) and only for the MPC8610.  So the actual range for
the pixel clock is chip-specific, which means the current values are almost
always wrong.  The chance of an out-of-range pixel clock being used are also
remote.

Rather than try to detect an out-of-range clock in the DIU driver, we depend
on the board-specific pixel clock function (e.g. p1022ds_set_pixel_clock)
to clamp the pixel clock to a supported value.

Signed-off-by: Timur Tabi &lt;timur@freescale.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Freescale DIU framebuffer driver defines two constants, MIN_PIX_CLK and
MAX_PIX_CLK, that are supposed to represent the lower and upper limits of
the pixel clock.  These values, however, are true only for one platform
clock rate (533MHz) and only for the MPC8610.  So the actual range for
the pixel clock is chip-specific, which means the current values are almost
always wrong.  The chance of an out-of-range pixel clock being used are also
remote.

Rather than try to detect an out-of-range clock in the DIU driver, we depend
on the board-specific pixel clock function (e.g. p1022ds_set_pixel_clock)
to clamp the pixel clock to a supported value.

Signed-off-by: Timur Tabi &lt;timur@freescale.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>udlfb: Correct sub-optimal resolution selection.</title>
<updated>2011-06-24T08:08:44+00:00</updated>
<author>
<name>William Katsak</name>
<email>william.katsak@alcatel-lucent.com</email>
</author>
<published>2011-06-23T13:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=9377c51752970c305fae29ac634501fde44378cb'/>
<id>9377c51752970c305fae29ac634501fde44378cb</id>
<content type='text'>
The situation in which the problem occurred was with a Plugable UGA-2K-A
connected to a Samsung EX2220X display. The driver indicates that
1920x1080 is a valid mode (the first mode available, in fact), but
proceeds to set the framebuffer size to 1600x1200.

The patch corrects what seems to be a logic error, regarding unsetting
the FB_MISC_1ST_DETAIL flag, if the first (top/best) mode is invalid.
The existing code unset the flag if ANY mode was invalid.

Signed-off-by: William Katsak &lt;william.katsak@alcatel-lucent.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The situation in which the problem occurred was with a Plugable UGA-2K-A
connected to a Samsung EX2220X display. The driver indicates that
1920x1080 is a valid mode (the first mode available, in fact), but
proceeds to set the framebuffer size to 1600x1200.

The patch corrects what seems to be a logic error, regarding unsetting
the FB_MISC_1ST_DETAIL flag, if the first (top/best) mode is invalid.
The existing code unset the flag if ANY mode was invalid.

Signed-off-by: William Katsak &lt;william.katsak@alcatel-lucent.com&gt;
Signed-off-by: Paul Mundt &lt;lethal@linux-sh.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
