<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/video/console, branch v2.6.27.12</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>fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles</title>
<updated>2008-10-22T21:20:56+00:00</updated>
<author>
<name>Oleg Nesterov</name>
<email>oleg@tv-sign.ru</email>
</author>
<published>2008-10-16T19:05:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e6e5cdaae090c6c5c5bfe7d058983cd464269ca6'/>
<id>e6e5cdaae090c6c5c5bfe7d058983cd464269ca6</id>
<content type='text'>
commit 232fb69a53a5ec3f22a8104d447abe4806848a8f upstream

echo 3 &gt;&gt; /sys/class/graphics/fbcon/rotate_all, then switch to another
console. Result:

	BUG: unable to handle kernel paging request at ffffc20005d00000
	IP: [bitfill_aligned+149/265] bitfill_aligned+0x95/0x109
	PGD 7e228067 PUD 7e229067 PMD 7bc1f067 PTE 0
	Oops: 0002 [1] SMP
	CPU 1
	Modules linked in: [...a lot...]
	Pid: 10, comm: events/1 Not tainted 2.6.26.5-45.fc9.x86_64 #1
	RIP: 0010:[bitfill_aligned+149/265]  [bitfill_aligned+149/265] bitfill_aligned+0x95/0x109
	RSP: 0018:ffff81007d811bc8  EFLAGS: 00010216
	RAX: ffffc20005d00000 RBX: 0000000000000000 RCX: 0000000000000400
	RDX: 0000000000000000 RSI: ffffc20005d00000 RDI: ffffffffffffffff
	RBP: ffff81007d811be0 R08: 0000000000000400 R09: 0000000000000040
	R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000010000
	R13: ffffffff811632f0 R14: 0000000000000006 R15: ffff81007cb85400
	FS:  0000000000000000(0000) GS:ffff81007e004780(0000) knlGS:0000000000000000
	CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
	CR2: ffffc20005d00000 CR3: 0000000000201000 CR4: 00000000000006e0
	DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
	DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
	Process events/1 (pid: 10, threadinfo ffff81007d810000, task ffff81007d808000)
	Stack:  ffff81007c9d75a0 0000000000000000 0000000000000000 ffff81007d811c80
	 ffffffff81163a61 ffff810000000000 ffffffff8115f9c8 0000001000000000
	 0000000100aaaaaa 000000007cd0d4a0 fffffd8a00000800 0001000000000000
	Call Trace:
	 [cfb_fillrect+523/798] cfb_fillrect+0x20b/0x31e
	 [soft_cursor+416/436] ? soft_cursor+0x1a0/0x1b4
	 [ccw_clear_margins+205/263] ccw_clear_margins+0xcd/0x107
	 [fbcon_clear_margins+59/61] fbcon_clear_margins+0x3b/0x3d
	 [fbcon_switch+1291/1466] fbcon_switch+0x50b/0x5ba
	 [redraw_screen+261/481] redraw_screen+0x105/0x1e1
	 [ccw_cursor+0/1869] ? ccw_cursor+0x0/0x74d
	 [complete_change_console+48/190] complete_change_console+0x30/0xbe
	 [change_console+115/120] change_console+0x73/0x78
	 [console_callback+0/292] ? console_callback+0x0/0x124
	 [console_callback+97/292] console_callback+0x61/0x124
	 [schedule_delayed_work+25/30] ? schedule_delayed_work+0x19/0x1e
	 [run_workqueue+139/282] run_workqueue+0x8b/0x11a
	 [worker_thread+221/238] worker_thread+0xdd/0xee
	 [autoremove_wake_function+0/56] ? autoremove_wake_function+0x0/0x38
	 [worker_thread+0/238] ? worker_thread+0x0/0xee
	 [kthread+73/118] kthread+0x49/0x76
	 [child_rip+10/18] child_rip+0xa/0x12
	 [kthread+0/118] ? kthread+0x0/0x76
	 [child_rip+0/18] ? child_rip+0x0/0x12

Because fbcon_set_all_vcs()-&gt;FBCON_SWAP() uses display-&gt;rotate == 0 instead
of fbcon_ops-&gt;rotate, and vc_resize() has no effect because it is called with
new_cols/rows == -&gt;vc_cols/rows.

Tested on 2.6.26.5-45.fc9.x86_64, but
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git seems to
have the same problem.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
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 232fb69a53a5ec3f22a8104d447abe4806848a8f upstream

echo 3 &gt;&gt; /sys/class/graphics/fbcon/rotate_all, then switch to another
console. Result:

	BUG: unable to handle kernel paging request at ffffc20005d00000
	IP: [bitfill_aligned+149/265] bitfill_aligned+0x95/0x109
	PGD 7e228067 PUD 7e229067 PMD 7bc1f067 PTE 0
	Oops: 0002 [1] SMP
	CPU 1
	Modules linked in: [...a lot...]
	Pid: 10, comm: events/1 Not tainted 2.6.26.5-45.fc9.x86_64 #1
	RIP: 0010:[bitfill_aligned+149/265]  [bitfill_aligned+149/265] bitfill_aligned+0x95/0x109
	RSP: 0018:ffff81007d811bc8  EFLAGS: 00010216
	RAX: ffffc20005d00000 RBX: 0000000000000000 RCX: 0000000000000400
	RDX: 0000000000000000 RSI: ffffc20005d00000 RDI: ffffffffffffffff
	RBP: ffff81007d811be0 R08: 0000000000000400 R09: 0000000000000040
	R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000010000
	R13: ffffffff811632f0 R14: 0000000000000006 R15: ffff81007cb85400
	FS:  0000000000000000(0000) GS:ffff81007e004780(0000) knlGS:0000000000000000
	CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
	CR2: ffffc20005d00000 CR3: 0000000000201000 CR4: 00000000000006e0
	DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
	DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
	Process events/1 (pid: 10, threadinfo ffff81007d810000, task ffff81007d808000)
	Stack:  ffff81007c9d75a0 0000000000000000 0000000000000000 ffff81007d811c80
	 ffffffff81163a61 ffff810000000000 ffffffff8115f9c8 0000001000000000
	 0000000100aaaaaa 000000007cd0d4a0 fffffd8a00000800 0001000000000000
	Call Trace:
	 [cfb_fillrect+523/798] cfb_fillrect+0x20b/0x31e
	 [soft_cursor+416/436] ? soft_cursor+0x1a0/0x1b4
	 [ccw_clear_margins+205/263] ccw_clear_margins+0xcd/0x107
	 [fbcon_clear_margins+59/61] fbcon_clear_margins+0x3b/0x3d
	 [fbcon_switch+1291/1466] fbcon_switch+0x50b/0x5ba
	 [redraw_screen+261/481] redraw_screen+0x105/0x1e1
	 [ccw_cursor+0/1869] ? ccw_cursor+0x0/0x74d
	 [complete_change_console+48/190] complete_change_console+0x30/0xbe
	 [change_console+115/120] change_console+0x73/0x78
	 [console_callback+0/292] ? console_callback+0x0/0x124
	 [console_callback+97/292] console_callback+0x61/0x124
	 [schedule_delayed_work+25/30] ? schedule_delayed_work+0x19/0x1e
	 [run_workqueue+139/282] run_workqueue+0x8b/0x11a
	 [worker_thread+221/238] worker_thread+0xdd/0xee
	 [autoremove_wake_function+0/56] ? autoremove_wake_function+0x0/0x38
	 [worker_thread+0/238] ? worker_thread+0x0/0xee
	 [kthread+73/118] kthread+0x49/0x76
	 [child_rip+10/18] child_rip+0xa/0x12
	 [kthread+0/118] ? kthread+0x0/0x76
	 [child_rip+0/18] ? child_rip+0x0/0x12

Because fbcon_set_all_vcs()-&gt;FBCON_SWAP() uses display-&gt;rotate == 0 instead
of fbcon_ops-&gt;rotate, and vc_resize() has no effect because it is called with
new_cols/rows == -&gt;vc_cols/rows.

Tested on 2.6.26.5-45.fc9.x86_64, but
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git seems to
have the same problem.

Signed-off-by: Oleg Nesterov &lt;oleg@tv-sign.ru&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
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>fbdev: fix recursive notifier and locking when fbdev console is blanked</title>
<updated>2008-10-04T01:22:17+00:00</updated>
<author>
<name>Krzysztof Helt</name>
<email>krzysztof.h1@wp.pl</email>
</author>
<published>2008-10-03T22:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=aef7db4bd5a3b6068dfa05919a3d685199eed116'/>
<id>aef7db4bd5a3b6068dfa05919a3d685199eed116</id>
<content type='text'>
Fix infinite recursive notifier in the fbdev layer.  This causes recursive
locking.  Dmitry Baryshkov found the problem and confirmed that the patch
fixes the bug.

After doing
# echo 1 &gt; /sys/class/graphics/fb0/blank
I got the following in my kernel log:

=============================================
[ INFO: possible recursive locking detected ]
2.6.27-rc6-00086-gda63874-dirty #97
---------------------------------------------
echo/1564 is trying to acquire lock:
 ((fb_notifier_list).rwsem){..--}, at: [&lt;c005a384&gt;] __blocking_notifier_call_chain+0x38/0x6c

but task is already holding lock:
 ((fb_notifier_list).rwsem){..--}, at: [&lt;c005a384&gt;] __blocking_notifier_call_chain+0x38/0x6c

other info that might help us debug this:
2 locks held by echo/1564:
 #0:  (&amp;buffer-&gt;mutex){--..}, at: [&lt;c00ddde0&gt;] sysfs_write_file+0x30/0x80
 #1:  ((fb_notifier_list).rwsem){..--}, at: [&lt;c005a384&gt;] __blocking_notifier_call_chain+0x38/0x6c

stack backtrace:
[&lt;c0029fe4&gt;] (dump_stack+0x0/0x14) from [&lt;c0060ce0&gt;] (print_deadlock_bug+0xa4/0xd0)
[&lt;c0060c3c&gt;] (print_deadlock_bug+0x0/0xd0) from [&lt;c0060e54&gt;] (check_deadlock+0x148/0x17c)
 r6:c397a1e0 r5:c397a530 r4:c04fcf98
[&lt;c0060d0c&gt;] (check_deadlock+0x0/0x17c) from [&lt;c00637e8&gt;] (validate_chain+0x3c4/0x4f0)
[&lt;c0063424&gt;] (validate_chain+0x0/0x4f0) from [&lt;c0063efc&gt;] (__lock_acquire+0x5e8/0x6b4)
[&lt;c0063914&gt;] (__lock_acquire+0x0/0x6b4) from [&lt;c006402c&gt;] (lock_acquire+0x64/0x78)
[&lt;c0063fc8&gt;] (lock_acquire+0x0/0x78) from [&lt;c0316ca8&gt;] (down_read+0x4c/0x60)
 r7:00000009 r6:ffffffff r5:c0427a40 r4:c005a384
[&lt;c0316c5c&gt;] (down_read+0x0/0x60) from [&lt;c005a384&gt;] (__blocking_notifier_call_chain+0x38/0x6c)
 r5:c0427a40 r4:c0427a74
[&lt;c005a34c&gt;] (__blocking_notifier_call_chain+0x0/0x6c) from [&lt;c005a3d8&gt;] (blocking_notifier_call_chain+0x20/0x28)
 r8:00000009 r7:c086d640 r6:c3967940 r5:00000000 r4:c38984b8
[&lt;c005a3b8&gt;] (blocking_notifier_call_chain+0x0/0x28) from [&lt;c014baa0&gt;] (fb_notifier_call_chain+0x1c/0x24)
[&lt;c014ba84&gt;] (fb_notifier_call_chain+0x0/0x24) from [&lt;c014c18c&gt;] (fb_blank+0x64/0x70)
[&lt;c014c128&gt;] (fb_blank+0x0/0x70) from [&lt;c0155978&gt;] (fbcon_blank+0x114/0x1bc)
 r5:00000001 r4:c38984b8
[&lt;c0155864&gt;] (fbcon_blank+0x0/0x1bc) from [&lt;c0170ea8&gt;] (do_blank_screen+0x1e0/0x2a0)
[&lt;c0170cc8&gt;] (do_blank_screen+0x0/0x2a0) from [&lt;c0154024&gt;] (fbcon_fb_blanked+0x74/0x94)
 r5:c3967940 r4:00000001
[&lt;c0153fb0&gt;] (fbcon_fb_blanked+0x0/0x94) from [&lt;c0154228&gt;] (fbcon_event_notify+0x100/0x12c)
 r5:fffffffe r4:c39bc194
[&lt;c0154128&gt;] (fbcon_event_notify+0x0/0x12c) from [&lt;c005a0d4&gt;] (notifier_call_chain+0x38/0x7c)
[&lt;c005a09c&gt;] (notifier_call_chain+0x0/0x7c) from [&lt;c005a3a0&gt;] (__blocking_notifier_call_chain+0x54/0x6c)
 r8:c3b51ea0 r7:00000009 r6:ffffffff r5:c0427a40 r4:c0427a74
[&lt;c005a34c&gt;] (__blocking_notifier_call_chain+0x0/0x6c) from [&lt;c005a3d8&gt;] (blocking_notifier_call_chain+0x20/0x28)
 r8:00000001 r7:c3a7e000 r6:00000000 r5:00000000 r4:c38984b8
[&lt;c005a3b8&gt;] (blocking_notifier_call_chain+0x0/0x28) from [&lt;c014baa0&gt;] (fb_notifier_call_chain+0x1c/0x24)
[&lt;c014ba84&gt;] (fb_notifier_call_chain+0x0/0x24) from [&lt;c014c18c&gt;] (fb_blank+0x64/0x70)
[&lt;c014c128&gt;] (fb_blank+0x0/0x70) from [&lt;c014e450&gt;] (store_blank+0x54/0x7c)
 r5:c38984b8 r4:c3b51ec4
[&lt;c014e3fc&gt;] (store_blank+0x0/0x7c) from [&lt;c017981c&gt;] (dev_attr_store+0x28/0x2c)
 r8:00000001 r7:c042bf80 r6:c39eba10 r5:c3967c30 r4:c38e0140
[&lt;c01797f4&gt;] (dev_attr_store+0x0/0x2c) from [&lt;c00ddaac&gt;] (flush_write_buffer+0x54/0x68)
[&lt;c00dda58&gt;] (flush_write_buffer+0x0/0x68) from [&lt;c00dde08&gt;] (sysfs_write_file+0x58/0x80)
 r8:c3b51f78 r7:c3bcb070 r6:c39eba10 r5:00000001 r4:00000001
[&lt;c00dddb0&gt;] (sysfs_write_file+0x0/0x80) from [&lt;c009de04&gt;] (vfs_write+0xb8/0x148)
[&lt;c009dd4c&gt;] (vfs_write+0x0/0x148) from [&lt;c009e384&gt;] (sys_write+0x44/0x70)
 r7:00000004 r6:c3bcb070 r5:00000000 r4:00000000
[&lt;c009e340&gt;] (sys_write+0x0/0x70) from [&lt;c0025d00&gt;] (ret_fast_syscall+0x0/0x2c)
 r6:4001b000 r5:00000001 r4:401dc658

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&gt;
Reported-by: Dmitry Baryshkov &lt;dbaryshkov@gmail.com&gt;
Testted-by: Dmitry Baryshkov &lt;dbaryshkov@gmail.com&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>
Fix infinite recursive notifier in the fbdev layer.  This causes recursive
locking.  Dmitry Baryshkov found the problem and confirmed that the patch
fixes the bug.

After doing
# echo 1 &gt; /sys/class/graphics/fb0/blank
I got the following in my kernel log:

=============================================
[ INFO: possible recursive locking detected ]
2.6.27-rc6-00086-gda63874-dirty #97
---------------------------------------------
echo/1564 is trying to acquire lock:
 ((fb_notifier_list).rwsem){..--}, at: [&lt;c005a384&gt;] __blocking_notifier_call_chain+0x38/0x6c

but task is already holding lock:
 ((fb_notifier_list).rwsem){..--}, at: [&lt;c005a384&gt;] __blocking_notifier_call_chain+0x38/0x6c

other info that might help us debug this:
2 locks held by echo/1564:
 #0:  (&amp;buffer-&gt;mutex){--..}, at: [&lt;c00ddde0&gt;] sysfs_write_file+0x30/0x80
 #1:  ((fb_notifier_list).rwsem){..--}, at: [&lt;c005a384&gt;] __blocking_notifier_call_chain+0x38/0x6c

stack backtrace:
[&lt;c0029fe4&gt;] (dump_stack+0x0/0x14) from [&lt;c0060ce0&gt;] (print_deadlock_bug+0xa4/0xd0)
[&lt;c0060c3c&gt;] (print_deadlock_bug+0x0/0xd0) from [&lt;c0060e54&gt;] (check_deadlock+0x148/0x17c)
 r6:c397a1e0 r5:c397a530 r4:c04fcf98
[&lt;c0060d0c&gt;] (check_deadlock+0x0/0x17c) from [&lt;c00637e8&gt;] (validate_chain+0x3c4/0x4f0)
[&lt;c0063424&gt;] (validate_chain+0x0/0x4f0) from [&lt;c0063efc&gt;] (__lock_acquire+0x5e8/0x6b4)
[&lt;c0063914&gt;] (__lock_acquire+0x0/0x6b4) from [&lt;c006402c&gt;] (lock_acquire+0x64/0x78)
[&lt;c0063fc8&gt;] (lock_acquire+0x0/0x78) from [&lt;c0316ca8&gt;] (down_read+0x4c/0x60)
 r7:00000009 r6:ffffffff r5:c0427a40 r4:c005a384
[&lt;c0316c5c&gt;] (down_read+0x0/0x60) from [&lt;c005a384&gt;] (__blocking_notifier_call_chain+0x38/0x6c)
 r5:c0427a40 r4:c0427a74
[&lt;c005a34c&gt;] (__blocking_notifier_call_chain+0x0/0x6c) from [&lt;c005a3d8&gt;] (blocking_notifier_call_chain+0x20/0x28)
 r8:00000009 r7:c086d640 r6:c3967940 r5:00000000 r4:c38984b8
[&lt;c005a3b8&gt;] (blocking_notifier_call_chain+0x0/0x28) from [&lt;c014baa0&gt;] (fb_notifier_call_chain+0x1c/0x24)
[&lt;c014ba84&gt;] (fb_notifier_call_chain+0x0/0x24) from [&lt;c014c18c&gt;] (fb_blank+0x64/0x70)
[&lt;c014c128&gt;] (fb_blank+0x0/0x70) from [&lt;c0155978&gt;] (fbcon_blank+0x114/0x1bc)
 r5:00000001 r4:c38984b8
[&lt;c0155864&gt;] (fbcon_blank+0x0/0x1bc) from [&lt;c0170ea8&gt;] (do_blank_screen+0x1e0/0x2a0)
[&lt;c0170cc8&gt;] (do_blank_screen+0x0/0x2a0) from [&lt;c0154024&gt;] (fbcon_fb_blanked+0x74/0x94)
 r5:c3967940 r4:00000001
[&lt;c0153fb0&gt;] (fbcon_fb_blanked+0x0/0x94) from [&lt;c0154228&gt;] (fbcon_event_notify+0x100/0x12c)
 r5:fffffffe r4:c39bc194
[&lt;c0154128&gt;] (fbcon_event_notify+0x0/0x12c) from [&lt;c005a0d4&gt;] (notifier_call_chain+0x38/0x7c)
[&lt;c005a09c&gt;] (notifier_call_chain+0x0/0x7c) from [&lt;c005a3a0&gt;] (__blocking_notifier_call_chain+0x54/0x6c)
 r8:c3b51ea0 r7:00000009 r6:ffffffff r5:c0427a40 r4:c0427a74
[&lt;c005a34c&gt;] (__blocking_notifier_call_chain+0x0/0x6c) from [&lt;c005a3d8&gt;] (blocking_notifier_call_chain+0x20/0x28)
 r8:00000001 r7:c3a7e000 r6:00000000 r5:00000000 r4:c38984b8
[&lt;c005a3b8&gt;] (blocking_notifier_call_chain+0x0/0x28) from [&lt;c014baa0&gt;] (fb_notifier_call_chain+0x1c/0x24)
[&lt;c014ba84&gt;] (fb_notifier_call_chain+0x0/0x24) from [&lt;c014c18c&gt;] (fb_blank+0x64/0x70)
[&lt;c014c128&gt;] (fb_blank+0x0/0x70) from [&lt;c014e450&gt;] (store_blank+0x54/0x7c)
 r5:c38984b8 r4:c3b51ec4
[&lt;c014e3fc&gt;] (store_blank+0x0/0x7c) from [&lt;c017981c&gt;] (dev_attr_store+0x28/0x2c)
 r8:00000001 r7:c042bf80 r6:c39eba10 r5:c3967c30 r4:c38e0140
[&lt;c01797f4&gt;] (dev_attr_store+0x0/0x2c) from [&lt;c00ddaac&gt;] (flush_write_buffer+0x54/0x68)
[&lt;c00dda58&gt;] (flush_write_buffer+0x0/0x68) from [&lt;c00dde08&gt;] (sysfs_write_file+0x58/0x80)
 r8:c3b51f78 r7:c3bcb070 r6:c39eba10 r5:00000001 r4:00000001
[&lt;c00dddb0&gt;] (sysfs_write_file+0x0/0x80) from [&lt;c009de04&gt;] (vfs_write+0xb8/0x148)
[&lt;c009dd4c&gt;] (vfs_write+0x0/0x148) from [&lt;c009e384&gt;] (sys_write+0x44/0x70)
 r7:00000004 r6:c3bcb070 r5:00000000 r4:00000000
[&lt;c009e340&gt;] (sys_write+0x0/0x70) from [&lt;c0025d00&gt;] (ret_fast_syscall+0x0/0x2c)
 r6:4001b000 r5:00000001 r4:401dc658

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&gt;
Reported-by: Dmitry Baryshkov &lt;dbaryshkov@gmail.com&gt;
Testted-by: Dmitry Baryshkov &lt;dbaryshkov@gmail.com&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>fbcon: fix monochrome color value calculation</title>
<updated>2008-10-02T22:53:13+00:00</updated>
<author>
<name>David Winn</name>
<email>q-newsgroup@qypea.com</email>
</author>
<published>2008-10-02T21:50:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=08650869e0ec581f8d88cfdb563d37f5383abfe2'/>
<id>08650869e0ec581f8d88cfdb563d37f5383abfe2</id>
<content type='text'>
Commit 22af89aa0c0b4012a7431114a340efd3665a7617 ("fbcon: replace mono_col
macro with static inline") changed the order of operations for computing
monochrome color values.  This generates 0xffff000f instead of 0x0000000f
for a 4 bit monochrome color, leading to image corruption if it is passed
to cfb_imageblit or other similar functions.  Fix it up.

Cc: Harvey Harrison &lt;harvey.harrison@gmail.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Cc: &lt;stable@kernel.org&gt;		[2.6.26.x]
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>
Commit 22af89aa0c0b4012a7431114a340efd3665a7617 ("fbcon: replace mono_col
macro with static inline") changed the order of operations for computing
monochrome color values.  This generates 0xffff000f instead of 0x0000000f
for a 4 bit monochrome color, leading to image corruption if it is passed
to cfb_imageblit or other similar functions.  Fix it up.

Cc: Harvey Harrison &lt;harvey.harrison@gmail.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Cc: &lt;stable@kernel.org&gt;		[2.6.26.x]
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>fbcon: prevent cursor disappearance after switching to 512 character font</title>
<updated>2008-08-12T23:07:29+00:00</updated>
<author>
<name>Krzysztof Helt</name>
<email>krzysztof.h1@wp.pl</email>
</author>
<published>2008-08-12T22:08:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=afa9b649aa699297258dbb67aaae651c9ad4245f'/>
<id>afa9b649aa699297258dbb67aaae651c9ad4245f</id>
<content type='text'>
Adjust and honor the vc_scrl_erase_char for 256 and 512 character fonts.

It fixes the issue with disappearing cursor during scrolling
(http://bugzilla.kernel.org/show_bug.cgi?id=11258).  The issue was
reported and tracked by Peter Hanzel.

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&gt;
Reported-by: Peter Hanzel &lt;hanzelpeter@gmail.com&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>
Adjust and honor the vc_scrl_erase_char for 256 and 512 character fonts.

It fixes the issue with disappearing cursor during scrolling
(http://bugzilla.kernel.org/show_bug.cgi?id=11258).  The issue was
reported and tracked by Peter Hanzel.

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&gt;
Reported-by: Peter Hanzel &lt;hanzelpeter@gmail.com&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>Revert "fbcon: bgcolor fix"</title>
<updated>2008-08-11T17:29:11+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-08-11T17:29:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3838f59fc2ea9821f3ea13adb555bfc6ea43c74c'/>
<id>3838f59fc2ea9821f3ea13adb555bfc6ea43c74c</id>
<content type='text'>
This reverts commit 2d04a4a72d7e1519b4838f24bdd4b5d0f3f426dc, which made
it impossible to make the softcursor use the highlight colors.

Yes, the fourth bit should be "blinking", but since we cannot reasonably
blink in fbcon, highlighting it with a bright background is preferable.

Reported-by: Pavel Machek &lt;pavel@suse.cz&gt;
Cc: Stefano Stabellini &lt;stefano.stabellini@eu.citrix.com&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Cc: Antonino A. Daplas &lt;adaplas@pol.net&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 reverts commit 2d04a4a72d7e1519b4838f24bdd4b5d0f3f426dc, which made
it impossible to make the softcursor use the highlight colors.

Yes, the fourth bit should be "blinking", but since we cannot reasonably
blink in fbcon, highlighting it with a bright background is preferable.

Reported-by: Pavel Machek &lt;pavel@suse.cz&gt;
Cc: Stefano Stabellini &lt;stefano.stabellini@eu.citrix.com&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Cc: Antonino A. Daplas &lt;adaplas@pol.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fbcon: fix scrolling after logo is cleared</title>
<updated>2008-08-05T21:33:49+00:00</updated>
<author>
<name>Krzysztof Helt</name>
<email>krzysztof.h1@wp.pl</email>
</author>
<published>2008-08-05T20:01:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c213ddf330e29f9d141705444dc45683adbb99b0'/>
<id>c213ddf330e29f9d141705444dc45683adbb99b0</id>
<content type='text'>
If the 'clear' command is used on the frame buffer with a logo the upper
area is filled by few lines but not scrolled anymore.

Fix this by removing the protected area for the logo if any part of the
logo is cleared.

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&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>
If the 'clear' command is used on the frame buffer with a logo the upper
area is filled by few lines but not scrolled anymore.

Fix this by removing the protected area for the logo if any part of the
logo is cleared.

Signed-off-by: Krzysztof Helt &lt;krzysztof.h1@wp.pl&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>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6</title>
<updated>2008-08-02T16:14:23+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2008-08-02T16:14:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d9c566198bfdf72a041322a093fdc1a2dc231170'/>
<id>d9c566198bfdf72a041322a093fdc1a2dc231170</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Do not clobber %g7 in setcontext() trap.
  sparc64: Kill __show_regs().
  sparc: Add __KERNEL__ ifdef protection to pt_regs helpers.
  sparc64: Kill smp_report_regs().
  sparc64: Kill VERBOSE_SHOWREGS code.
  sparc64: Hook up trigger_all_cpu_backtrace().
  sparc64: Make global reg dumping even more useful.
  sparc: Ignore drivers/video/console/promcon_tbl.c conmakehash generated file
  sparc64: FUTEX_OP_ANDN fix
  sparc: merge of_platform_{32,64}.h
  sparc64: Kill isa_bus_type.
  sparc64: Fix global reg snapshotting on self-cpu.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: Do not clobber %g7 in setcontext() trap.
  sparc64: Kill __show_regs().
  sparc: Add __KERNEL__ ifdef protection to pt_regs helpers.
  sparc64: Kill smp_report_regs().
  sparc64: Kill VERBOSE_SHOWREGS code.
  sparc64: Hook up trigger_all_cpu_backtrace().
  sparc64: Make global reg dumping even more useful.
  sparc: Ignore drivers/video/console/promcon_tbl.c conmakehash generated file
  sparc64: FUTEX_OP_ANDN fix
  sparc: merge of_platform_{32,64}.h
  sparc64: Kill isa_bus_type.
  sparc64: Fix global reg snapshotting on self-cpu.
</pre>
</div>
</content>
</entry>
<entry>
<title>sparc: Ignore drivers/video/console/promcon_tbl.c conmakehash generated file</title>
<updated>2008-07-30T23:49:52+00:00</updated>
<author>
<name>Florian Fainelli</name>
<email>florian.fainelli@telecomint.eu</email>
</author>
<published>2008-07-30T23:49:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c9b23e0c302377ccff700bee663b878d04e4ef3a'/>
<id>c9b23e0c302377ccff700bee663b878d04e4ef3a</id>
<content type='text'>
Add drivers/video/console/promcon_tbl.c to the list of ignored files.
This file is generated by conmakehash against drivers/video/console/prom.uni.

Signed-off-by: Florian Fainelli &lt;florian.fainelli@telecomint.eu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add drivers/video/console/promcon_tbl.c to the list of ignored files.
This file is generated by conmakehash against drivers/video/console/prom.uni.

Signed-off-by: Florian Fainelli &lt;florian.fainelli@telecomint.eu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>sticore: don't activate unsupported GSC STI cards on HPPA</title>
<updated>2008-07-30T16:41:43+00:00</updated>
<author>
<name>Helge Deller</name>
<email>deller@gmx.de</email>
</author>
<published>2008-07-30T05:33:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fdac4e69a1fc181652b37ce6a32ab8a56b0f3bcf'/>
<id>fdac4e69a1fc181652b37ce6a32ab8a56b0f3bcf</id>
<content type='text'>
On HPPA there exists some older GSC graphics cards, which need special
graphic-card-BIOS patching to become supported.  Since we don't have yet
implemented the patching, it's better to detect such cards in advance,
inform to the user that there are known problems and to not activate the
card.

Problematic GSC cards and BIOS versions are:
* Hyperdrive/Hyperbowl (A4071A) graphics card series:
   * ID = 0x2BCB015A (Version 8.04/8)
   * ID = 0x2BCB015A (Version 8.04/11)
* Thunder 1 VISUALIZE 48 card:
   * ID = 0x2F23E5FC (Version 8.05/9)
* Thunder 2 VISUALIZE 48 XP card:
   * ID = 0x2F8D570E (Version 8.05/12)
* Some Hyperion and ThunderHawk GSC cards

Further details are described here:
http://parisc-linux.org/faq/graphics-howto.html

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Grant Grundler &lt;grundler@parisc-linux.org&gt;
Cc: Matthew Wilcox &lt;matthew@wil.cx&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>
On HPPA there exists some older GSC graphics cards, which need special
graphic-card-BIOS patching to become supported.  Since we don't have yet
implemented the patching, it's better to detect such cards in advance,
inform to the user that there are known problems and to not activate the
card.

Problematic GSC cards and BIOS versions are:
* Hyperdrive/Hyperbowl (A4071A) graphics card series:
   * ID = 0x2BCB015A (Version 8.04/8)
   * ID = 0x2BCB015A (Version 8.04/11)
* Thunder 1 VISUALIZE 48 card:
   * ID = 0x2F23E5FC (Version 8.05/9)
* Thunder 2 VISUALIZE 48 XP card:
   * ID = 0x2F8D570E (Version 8.05/12)
* Some Hyperion and ThunderHawk GSC cards

Further details are described here:
http://parisc-linux.org/faq/graphics-howto.html

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Cc: Kyle McMartin &lt;kyle@mcmartin.ca&gt;
Cc: Krzysztof Helt &lt;krzysztof.h1@poczta.fm&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Grant Grundler &lt;grundler@parisc-linux.org&gt;
Cc: Matthew Wilcox &lt;matthew@wil.cx&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>video/console/stico{n,re}.c: make code static</title>
<updated>2008-07-26T19:00:12+00:00</updated>
<author>
<name>Adrian Bunk</name>
<email>bunk@kernel.org</email>
</author>
<published>2008-07-26T02:46:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3d1e412ac5570a669e1b1fc5fd0f6859250c3d76'/>
<id>3d1e412ac5570a669e1b1fc5fd0f6859250c3d76</id>
<content type='text'>
This patch makes the following needlessly global code static:
 - sticon.c: sticonsole_init()
 - sticore.c: struct default_sti
 - sticore.c: sti_init_graph()
 - sticore.c: sti_inq_conf()
 - sticore.c: sti_rom_copy()
 - sticore.c: sti_select_fbfont()
 - sticore.c: sti_select_font()
 - sticore.c: sti_get_wmode_rom()
 - sticore.c: sti_read_rom()

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Adrian Bunk &lt;bunk@kernel.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>
This patch makes the following needlessly global code static:
 - sticon.c: sticonsole_init()
 - sticore.c: struct default_sti
 - sticore.c: sti_init_graph()
 - sticore.c: sti_inq_conf()
 - sticore.c: sti_rom_copy()
 - sticore.c: sti_select_fbfont()
 - sticore.c: sti_select_font()
 - sticore.c: sti_get_wmode_rom()
 - sticore.c: sti_read_rom()

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Adrian Bunk &lt;bunk@kernel.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>
</feed>
