<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/video, branch v3.1.1</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>viafb: improve pitch handling</title>
<updated>2011-11-11T17:43:26+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.toradex.cn/cgit/linux-toradex.git/commit/?id=9578e52e8847be8b342e0dbc61409d940e73666c'/>
<id>9578e52e8847be8b342e0dbc61409d940e73666c</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:43:25+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.toradex.cn/cgit/linux-toradex.git/commit/?id=51bbfa9ef00ac1773d8bf121d2b5e1dcc85d3406'/>
<id>51bbfa9ef00ac1773d8bf121d2b5e1dcc85d3406</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:43:25+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.toradex.cn/cgit/linux-toradex.git/commit/?id=f39f31b7c70cb84805b4dcae76a9161510c0b01c'/>
<id>f39f31b7c70cb84805b4dcae76a9161510c0b01c</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:43:24+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.toradex.cn/cgit/linux-toradex.git/commit/?id=b4dac1778497fc43092231647833e32f68fdf54d'/>
<id>b4dac1778497fc43092231647833e32f68fdf54d</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:43:24+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.toradex.cn/cgit/linux-toradex.git/commit/?id=4817ab23763560a00d8f0fb9937c439cb1e221ac'/>
<id>4817ab23763560a00d8f0fb9937c439cb1e221ac</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>backlight: Declare backlight_types[] const</title>
<updated>2011-09-10T21:00:02+00:00</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2011-09-10T18:13:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c338bfb5ecf6c36b2112479691d69db4c2b5a78a'/>
<id>c338bfb5ecf6c36b2112479691d69db4c2b5a78a</id>
<content type='text'>
Since backlight_types[] isn't modified, let's declare it const.  That
was probably the intention of the author of commit bb7ca747f8d6
("backlight: add backlight type"), via which the "const char const *"
construct was introduced.  The duplicate const was detected by sparse.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Cc: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since backlight_types[] isn't modified, let's declare it const.  That
was probably the intention of the author of commit bb7ca747f8d6
("backlight: add backlight type"), via which the "const char const *"
construct was introduced.  The duplicate const was detected by sparse.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Cc: Matthew Garrett &lt;mjg@redhat.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Cc: Florian Tobias Schandinat &lt;FlorianSchandinat@gmx.de&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>backlight: fix module alias prefix for adp8870_bl</title>
<updated>2011-08-25T23:25:34+00:00</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2011-08-25T22:59:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c53252b780e26c73c6a4e40bc14179447504cccd'/>
<id>c53252b780e26c73c6a4e40bc14179447504cccd</id>
<content type='text'>
This is an i2c driver, not a platform driver, thus use "i2c" prefix for
the module alias.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is an i2c driver, not a platform driver, thus use "i2c" prefix for
the module alias.

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>backlight: add a callback 'notify_after' for backlight control</title>
<updated>2011-08-25T23:25:34+00:00</updated>
<author>
<name>Dilan Lee</name>
<email>dilee@nvidia.com</email>
</author>
<published>2011-08-25T22:59:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cc7993f6439b49909a8792660c4d0741fec9d584'/>
<id>cc7993f6439b49909a8792660c4d0741fec9d584</id>
<content type='text'>
We need a callback to do some things after pwm_enable, pwm_disable
and pwm_config.

Signed-off-by: Dilan Lee &lt;dilee@nvidia.com&gt;
Reviewed-by: Robert Morell &lt;rmorell@nvidia.com&gt;
Reviewed-by: Arun Murthy &lt;arun.murthy@stericsson.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need a callback to do some things after pwm_enable, pwm_disable
and pwm_config.

Signed-off-by: Dilan Lee &lt;dilee@nvidia.com&gt;
Reviewed-by: Robert Morell &lt;rmorell@nvidia.com&gt;
Reviewed-by: Arun Murthy &lt;arun.murthy@stericsson.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Cc: Paul Mundt &lt;lethal@linux-sh.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/video/backlight/ep93xx_bl.c: add missing include of linux/module.h</title>
<updated>2011-08-25T23:25:34+00:00</updated>
<author>
<name>Axel Lin</name>
<email>axel.lin@gmail.com</email>
</author>
<published>2011-08-25T22:59:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=15b1a8f2b990c0c1dacfad0e5ccaf05c32c52147'/>
<id>15b1a8f2b990c0c1dacfad0e5ccaf05c32c52147</id>
<content type='text'>
ep93xx_bl.c uses interfaces from linux/module.h, so it should include
that file.  This patch fixes build errors:

    CC [M]  drivers/video/backlight/ep93xx_bl.o
  drivers/video/backlight/ep93xx_bl.c:138: error: 'THIS_MODULE' undeclared here (not in a function)
  drivers/video/backlight/ep93xx_bl.c:158: error: expected declaration specifiers or '...' before string constant
  drivers/video/backlight/ep93xx_bl.c:158: warning: data definition has no type or storage class
  ...

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Cc: Ryan Mallon &lt;rmallon@gmail.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ep93xx_bl.c uses interfaces from linux/module.h, so it should include
that file.  This patch fixes build errors:

    CC [M]  drivers/video/backlight/ep93xx_bl.o
  drivers/video/backlight/ep93xx_bl.c:138: error: 'THIS_MODULE' undeclared here (not in a function)
  drivers/video/backlight/ep93xx_bl.c:158: error: expected declaration specifiers or '...' before string constant
  drivers/video/backlight/ep93xx_bl.c:158: warning: data definition has no type or storage class
  ...

Signed-off-by: Axel Lin &lt;axel.lin@gmail.com&gt;
Acked-by: H Hartley Sweeten &lt;hsweeten@visionengravers.com&gt;
Cc: Ryan Mallon &lt;rmallon@gmail.com&gt;
Cc: Richard Purdie &lt;rpurdie@rpsys.net&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>savagedb: Fix typo causing regression in savage4 series video chip detection</title>
<updated>2011-08-06T19:02:40+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.toradex.cn/cgit/linux-toradex.git/commit/?id=4b00e4b3940eabb38adeec0823751820fe2d6fda'/>
<id>4b00e4b3940eabb38adeec0823751820fe2d6fda</id>
<content type='text'>
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;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
</feed>
