Linus Torvalds [Sun, 28 Dec 2008 19:39:19 +0000 (11:39 -0800)]
Merge git://git./linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (132 commits)
sh: oprofile: Fix up the module build.
sh: add UIO support for JPU on SH7722.
serial: sh-sci: Fix up port pinmux for SH7366.
sh: mach-rsk: Use uImage generation by default for rsk7201/7203.
sh: mach-sh03: Fix up pata_platform build breakage.
sh: enable deferred io LCDC on Migo-R
video: sh_mobile_lcdcfb deferred io support
video: deferred io with physically contiguous memory
video: deferred io cleanup
video: fix deferred io fsync()
sh: add LCDC interrupt configuration to AP325 and Migo-R
sh_mobile_lcdc: use FB_SYS helpers instead of FB_CFB
sh: split coherent pages
sh: dma: Kill off ISA DMA wrapper.
sh: Conditionalize the code dumper on CONFIG_DUMP_CODE.
sh: Kill off the unused SH_ALPHANUMERIC debug option.
sh: Enable skipping of bss on debug platforms for sh32 also.
doc: Update sh cpufreq documentation.
sh: mrshpc_setup_windows() needs to be inline.
serial: sh-sci: sci_poll_get_char() is only used by CONFIG_CONSOLE_POLL.
...
Linus Torvalds [Wed, 24 Dec 2008 23:26:37 +0000 (15:26 -0800)]
Linux 2.6.28
Happy holidays..
Linus Torvalds [Wed, 24 Dec 2008 18:24:52 +0000 (10:24 -0800)]
Merge branch 'for_linus' of git://git./linux/kernel/git/mchehab/linux-2.6
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
V4L/DVB (9920): em28xx: fix NULL pointer dereference in call to VIDIOC_INT_RESET command
V4L/DVB (9908a): MAINTAINERS: mark linux-uvc-devel as subscribers only
V4L/DVB (9906): v4l2-compat: test for unlocked_ioctl as well.
V4L/DVB (9885): drivers/media Kconfig's: fix bugzilla #12204
V4L/DVB (9875): gspca - main: Fix vidioc_s_jpegcomp locking.
V4L/DVB (9781): [PATCH] Cablestar 2 I2C retries (fix CableStar2 support)
V4L/DVB (9780): dib0700: Stop repeating after user stops pushing button
Linus Torvalds [Wed, 24 Dec 2008 18:24:14 +0000 (10:24 -0800)]
Merge branch 'x86-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86: disable X86_PTRACE_BTS
Linus Torvalds [Wed, 24 Dec 2008 18:23:21 +0000 (10:23 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
ALSA: hda - Add missing terminators in patch_sigmatel.c
Herton Ronaldo Krzesinski [Tue, 23 Dec 2008 18:53:00 +0000 (16:53 -0200)]
ALSA: hda - Add missing terminators in patch_sigmatel.c
Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Ingo Molnar [Wed, 24 Dec 2008 09:49:51 +0000 (10:49 +0100)]
x86: disable X86_PTRACE_BTS
there's a new ptrace arch level feature in .28:
config X86_PTRACE_BTS
bool "Branch Trace Store"
it has broken fork() handling: the old DS area gets copied over into
a new task without clearing it.
Fixes exist but they came too late:
c5dee61: x86, bts: memory accounting
bf53de9: x86, bts: add fork and exit handling
and are queued up for v2.6.29. This shows that the facility is still not
tested well enough to release into a stable kernel - disable it for now and
reactivate in .29. In .29 the hardware-branch-tracer will use the DS/BTS
facilities too - hopefully resulting in better code.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Kyle McMartin [Tue, 23 Dec 2008 13:44:30 +0000 (08:44 -0500)]
parisc: disable UP-optimized flush_tlb_mm
flush_tlb_mm's "optimized" uniprocessor case of allocating a new
context for userspace is exposing a race where we can suddely return
to a syscall with the protection id and space id out of sync, trapping
on the next userspace access.
Debugged-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Tested-by: Helge Deller <deller@gmx.de>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Wed, 24 Dec 2008 01:01:40 +0000 (17:01 -0800)]
Merge branch 'drm-fixes' of git://git./linux/kernel/git/airlied/drm-2.6
* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm/radeon: fix correctness of irq_enabled check for radeon.
Harry Ciao [Tue, 23 Dec 2008 21:57:16 +0000 (13:57 -0800)]
edac: fix edac core deadlock when removing a device
When deleting an edac device, we have to wait for its edac_dev.work to be
completed before deleting the whole edac_dev structure. Since we have no
idea which work in current edac_poller's workqueue is the work we are
conerned about, we wait for all work in the edac_poller's workqueue to be
proceseed. This is done via flush_cpu_workqueue() which inserts a
wq_barrier into the tail of the workqueue and then sleeping on the
completion of this wq_barrier. The edac_poller will wake up sleepers when
it is found.
EDAC core creates only one kernel worker thread, edac_poller, to run the
works of all current edac devices. They share the same callback function
of edac_device_workq_function(), which would grab the mutex of
device_ctls_mutex first before it checks the device. This is exactly
where edac_poller and rmmod would have a great chance to deadlock.
In below call trace of rmmod > ... >
edac_device_del_device >
edac_device_workq_teardown > flush_workqueue > flush_cpu_workqueue,
device_ctls_mutex would have already been grabbed by
edac_device_del_device(). So, on one hand rmmod would sleep on the
completion of a wq_barrier, holding device_ctls_mutex; on the other hand
edac_poller would be blocked on the same mutex when it's running any one
of works of existing edac evices(Note, this edac_dev.work is likely to be
totally irrelevant to the one that is being removed right now)and never
would have a chance to run the work of above wq_barrier to wake rmmod up.
edac_device_workq_teardown() should not be called within the critical
region of device_ctls_mutex. Just like is done in edac_pci_del_device()
and edac_mc_del_mc(), where edac_pci_workq_teardown() and
edac_mc_workq_teardown() are called after related mutex are released.
Moreover, an edac_dev.work should check first if it is being removed. If
this is the case, then it should bail out immediately. Since not all of
existing edac devices are to be removed, this "shutting flag" should be
contained to edac device being removed. The current edac_dev.op_state can
be used to serve this purpose.
The original deadlock problem and the solution have been witnessed and
tested on actual hardware. Without the solution, rmmod an edac driver
would result in below deadlock:
root@localhost:/root> rmmod mv64x60_edac
EDAC DEBUG: mv64x60_dma_err_remove()
EDAC DEBUG: edac_device_del_device()
EDAC DEBUG: find_edac_device_by_dev()
(hang for a moment)
INFO: task edac-poller:2030 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
edac-poller D
00000000 0 2030 2
Call Trace:
[
df159dc0] [
c0071e3c] free_hot_cold_page+0x17c/0x304 (unreliable)
[
df159e80] [
c000a024] __switch_to+0x6c/0xa0
[
df159ea0] [
c03587d8] schedule+0x2f4/0x4d8
[
df159f00] [
c03598a8] __mutex_lock_slowpath+0xa0/0x174
[
df159f40] [
e1030434] edac_device_workq_function+0x28/0xd8 [edac_core]
[
df159f60] [
c003beb4] run_workqueue+0x114/0x218
[
df159f90] [
c003c674] worker_thread+0x5c/0xc8
[
df159fd0] [
c004106c] kthread+0x5c/0xa0
[
df159ff0] [
c0013538] original_kernel_thread+0x44/0x60
INFO: task rmmod:2062 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
rmmod D
0ff2c9fc 0 2062 1839
Call Trace:
[
df119c00] [
c0437a74] 0xc0437a74 (unreliable)
[
df119cc0] [
c000a024] __switch_to+0x6c/0xa0
[
df119ce0] [
c03587d8] schedule+0x2f4/0x4d8
[
df119d40] [
c03591dc] schedule_timeout+0xb0/0xf4
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Li Zefan [Tue, 23 Dec 2008 21:57:14 +0000 (13:57 -0800)]
cgroups: avoid accessing uninitialized data in failure path
If cgroup_get_rootdir() failed, free_cg_links() will be called in the
failure path, but tmp_cg_links hasn't been initialized at that time.
I introduced this bug in the 2.6.27 merge window.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Cc: Paul Menage <menage@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Sharyathi Nagesh [Tue, 23 Dec 2008 21:57:12 +0000 (13:57 -0800)]
cgroups: suppress bogus warning messages
Remove spurious warning messages that are thrown onto the console during
cgroup operations.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Sharyathi Nagesh <sharyathi@in.ibm.com>
Acked-by: Serge E. Hallyn <serge@hallyn.com>
Cc: Paul Menage <menage@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Evgeniy Polyakov [Tue, 23 Dec 2008 21:57:12 +0000 (13:57 -0800)]
w1: fix slave selection on big-endian systems
During test of the w1-gpio driver i found that in "w1.c:679
w1_slave_found()" the device id is converted to little-endian with
"cpu_to_le64()", but its not converted back to cpu format in "w1_io.c:293
w1_reset_select_slave()".
Based on a patch created by Andreas Hummel.
[akpm@linux-foundation.org: remove unneeded cast]
Reported-by: Andreas Hummel <andi_hummel@gmx.de>
Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Chris Elston [Tue, 23 Dec 2008 21:57:10 +0000 (13:57 -0800)]
rtc: rtc-isl1208: reject invalid dates
This patch for the rtc-isl1208 driver makes it reject invalid dates.
Signed-off-by: Chris Elston <celston@katalix.com>
[a.zummo@towertech.it: added comment explaining the check]
Signed-off-by: Alessandro Zummo <a.zummo@towertech.it>
Cc: Hebert Valerio Riedel <hvr@gnu.org>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Devin Heitmueller [Wed, 17 Dec 2008 02:09:35 +0000 (23:09 -0300)]
V4L/DVB (9920): em28xx: fix NULL pointer dereference in call to VIDIOC_INT_RESET command
Fix a NULL pointer dereference that would occur if the video decoder tied to
the em28xx supports the VIDIOC_INT_RESET call (for example: the cx25840 driver)
Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Dave Airlie [Mon, 22 Dec 2008 07:11:02 +0000 (17:11 +1000)]
drm/radeon: fix correctness of irq_enabled check for radeon.
This check was introduced with the logic the wrong way around.
Fixes regression: http://bugzilla.kernel.org/show_bug.cgi?id=12216
Tested-by: François Valenduc <francois.valenduc@tvcablenet.be>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Linus Torvalds [Mon, 22 Dec 2008 22:52:00 +0000 (14:52 -0800)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
ACPI: don't cond_resched() when irqs_disabled()
ACPI: fix 2.6.28 acpi.debug_level regression
Linus Torvalds [Mon, 22 Dec 2008 22:40:48 +0000 (14:40 -0800)]
Merge git://git./linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test
Julia Lawall [Mon, 22 Dec 2008 22:05:06 +0000 (23:05 +0100)]
drivers/ide/{cs5530.c,sc1200.c}: Move a dereference below a NULL test
In each case, if the NULL test is necessary, then the dereference should be
moved below the NULL test.
The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@@
type T;
expression E;
identifier i,fld;
statement S;
@@
- T i = E->fld;
+ T i;
... when != E
when != i
if (E == NULL) S
+ i = E->fld;
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Linus Torvalds [Mon, 22 Dec 2008 18:17:19 +0000 (10:17 -0800)]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
MIPS: MIPS64R2: Fix buggy __arch_swab64
MIPS: Fix preprocessor warnings flaged by GCC 4.4
Linus Torvalds [Mon, 22 Dec 2008 18:12:54 +0000 (10:12 -0800)]
Merge git://git./linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
ppp: fix segfaults introduced by netdev_priv changes
net: Fix module refcount leak in kernel_accept()
Paul Mundt [Mon, 22 Dec 2008 10:32:27 +0000 (19:32 +0900)]
sh: oprofile: Fix up the module build.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Takanari Hayama [Mon, 22 Dec 2008 02:05:03 +0000 (11:05 +0900)]
sh: add UIO support for JPU on SH7722.
Add JPU support on Migo-R via UIO. This make use of Magnus's
generic UIO platform driver. Chunk of contiguous memory to hold
intermediate image and compressed data during encode and decode.
Signed-off-by: Takanari Hayama <taki@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Sun, 21 Dec 2008 18:40:10 +0000 (03:40 +0900)]
serial: sh-sci: Fix up port pinmux for SH7366.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Sun, 21 Dec 2008 18:26:26 +0000 (03:26 +0900)]
sh: mach-rsk: Use uImage generation by default for rsk7201/7203.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Sun, 21 Dec 2008 18:25:04 +0000 (03:25 +0900)]
sh: mach-sh03: Fix up pata_platform build breakage.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Fri, 19 Dec 2008 06:34:50 +0000 (15:34 +0900)]
sh: enable deferred io LCDC on Migo-R
Enable LCDC deferred io on Migo-R using 1s delay.
As with other deferred io frame buffers user space code should
use fsync() on the frame buffer device to trigger an update.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Fri, 19 Dec 2008 06:34:41 +0000 (15:34 +0900)]
video: sh_mobile_lcdcfb deferred io support
This patch adds sh_mobile_lcdcfb deferred io support for SYS panels.
The LCDC hardware block managed by the sh_mobile_lcdcfb driver supports
RGB or SYS panel configurations. SYS panels come with an external display
controller that is resposible for refreshing the actual LCD panel. RGB
panels are controlled directly by the LCDC and they need to be refreshed
by the LCDC hardware.
In the case of SYS panels we can save some power by configuring the LCDC
hardware block in one-shot mode. In this one-shot mode panel refresh is
managed by software. This works well together with deferred io since it
allows us to stop clocks for most of the time and only enable clocks when
we actually want to trigger an update. When there is no fbdev activity
the clocks are kept stopped which allows us to deep sleep.
The refresh rate in deferred io mode is set using platform data. The same
platform data can also be used to disable deferred io mode.
As with other deferred io frame buffers user space code should use fsync()
on the frame buffer device to trigger an update.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Fri, 19 Dec 2008 06:34:32 +0000 (15:34 +0900)]
video: deferred io with physically contiguous memory
Extend the deferred io code from only supporting vmalloc()ed frame
buffer memory to support both vmalloc()ed and physically contiguous
frame buffer memory.
The sh_mobile_lcdcfb hardware does not support scatter gather so
we need physically contiguous memory to back our frame buffer.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Fri, 19 Dec 2008 06:34:23 +0000 (15:34 +0900)]
video: deferred io cleanup
Make sure the mmap callback is set to NULL in the deferred io
cleanup function. This way we can enable and disable deferred
io on the fly.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Fri, 19 Dec 2008 06:34:09 +0000 (15:34 +0900)]
video: fix deferred io fsync()
If CONFIG_FB_DEFERRED_IO is set, but there are framebuffers
registered that does not make use of deferred io, then fsync()
on those framebuffers will result in a crash. Fix that.
This is needed for sh_mobile_lcdcfb since we always enable
deferred io at compile time but we may disable deferred io
for some types of hardware configurations.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Fri, 19 Dec 2008 03:02:16 +0000 (12:02 +0900)]
sh: add LCDC interrupt configuration to AP325 and Migo-R
Add LCDC interrupt resources for AP325 and Migo-R. The LCDC driver does
not require interrupts at this point, but changes such as one-shot SYS
mode using deferred io, and wait-for-vblank will both need this.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Wed, 17 Dec 2008 08:29:49 +0000 (17:29 +0900)]
sh_mobile_lcdc: use FB_SYS helpers instead of FB_CFB
Since the sh_mobile_lcdc hardware has the framebuffer(s) in system RAM,
use FB_SYS instead of FB_CFB. Also hook in read and write helpers.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Wed, 17 Dec 2008 08:18:45 +0000 (17:18 +0900)]
sh: split coherent pages
Split pages returned by dma_alloc_coherent() and make sure
we free them one by one.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 07:23:32 +0000 (16:23 +0900)]
sh: dma: Kill off ISA DMA wrapper.
There are no more users for this code, and it has been deprecated for
some time, so just kill it off.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 06:56:06 +0000 (15:56 +0900)]
sh: Conditionalize the code dumper on CONFIG_DUMP_CODE.
We don't really want this enabled by default, but it is still quite
useful for debugging. So, make it conditional and leave it off by
default.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 06:36:50 +0000 (15:36 +0900)]
sh: Kill off the unused SH_ALPHANUMERIC debug option.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 06:33:43 +0000 (15:33 +0900)]
sh: Enable skipping of bss on debug platforms for sh32 also.
This enables the same functionality that sh64 has for sh32. When running
on simulated hardware or via remote memory via the debug interface,
memory is gauranteed to be zero on boot already, and skipping the zeroing
of BSS has measurable boot time benefits.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 06:06:54 +0000 (15:06 +0900)]
doc: Update sh cpufreq documentation.
The sh cpufreq driver is no longer limited to just the SH-3 and SH-4,
update the documentation to reflect this fact accordingly.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 05:58:04 +0000 (14:58 +0900)]
sh: mrshpc_setup_windows() needs to be inline.
While no one should be including this file multiple times, flag it
inline anyways just in case.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 05:53:24 +0000 (14:53 +0900)]
serial: sh-sci: sci_poll_get_char() is only used by CONFIG_CONSOLE_POLL.
sci_poll_put_char() happens to also be used by the serial console,
while sci_poll_get_char() is only used by CONFIG_CONSOLE_POLL. Add
another gnarly ifdef to shut up the compiler.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 05:41:54 +0000 (14:41 +0900)]
sh: Kill off cf-enabler with extreme prejudice.
Now that the rest of the boards that were using cf-enabler "generically"
have switched to setting up their mappings on their own, only the mach-se
boards were left using it. All of the cf-enabler using mach-se boards
use a special initialization of the MRSHPC windows rather than going
through the special PTE as other SH-4 platforms do. This consolidates
the MRSHPC setup logic, hooks it up on the boards that care, and gets rid
of any and all remaining references to cf-enabler.
This has been long overdue, as cf-enabler has been the bane of
arch/sh/kernel for the last 7 years. Good riddance.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 04:57:45 +0000 (13:57 +0900)]
sh: Add a simple edosk7705_defconfig for build testing.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 04:57:15 +0000 (13:57 +0900)]
sh: mach-edosk7705: Fix up edosk7705 so it all builds again.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 04:14:22 +0000 (13:14 +0900)]
sh: mach-microdev: Split out the fdc37c93xapm initialization code.
This makes the microdev code a bit more readable, and moves the
setup for the SuperIO out on its own.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:54:09 +0000 (12:54 +0900)]
sh: mach-sh03: Use __set_io_port_base(), kill off special ioport_map().
This also fixes up a long-standing bug for this platform where the PIO
base was set to a register offset, rather than the actual PIO offset
itself.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:48:41 +0000 (12:48 +0900)]
sh: mach-sh03: Move off of cf_enabler to pata_platform, as per landisk.
This gets rid of the cf enabler use on mach-sh03 and switches to use
pata_platform with the proper address directly. cf_enabler is
subsequently disabled for mach-sh03.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:42:20 +0000 (12:42 +0900)]
sh: board-shmin: Convert shmin to use __set_io_port_base().
Drop the special mv_ioport_map() implementation, as this can simply use
__set_io_port_base() directly.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:31:32 +0000 (12:31 +0900)]
sh: Kill off dead mv_init_pci() from machvec.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:20:15 +0000 (12:20 +0900)]
sh: Simplify kernel_thread_helper() for sh32.
This can use the same implementation as sh64, the generated assembly is
the same between the new and old version, so there is not much point in
leaving it open coded in inline assembly.
This is preparatory work for future consolidation of the _32/_64
variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:19:30 +0000 (12:19 +0900)]
sh: Kill off mv_heartbeat() from the machvec.
Nothing is using this any more, so get rid of it before anyone gets the
bright idea to start using it again.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 03:17:20 +0000 (12:17 +0900)]
sh: Kill off the cayman and microdev special heartbeat code.
These can use the generic code instead.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 02:47:59 +0000 (11:47 +0900)]
sh: Kill off sh_bios_in_gdb_mode().
With the reworked kgdb support, we always detach and reinitialize the
stub. This was mostly a feature for handoffs between sh-ipl+g and the
kgdb stub, but virtually no sh-ipl+g versions ever had this working
right in the first place.
Given that the sh-ipl+g stubs in general use today don't even support
the GDB stub, and we have already killed off the special casing in the
sh-sci serial driver, kill off this now unused symbol too.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 02:39:33 +0000 (11:39 +0900)]
sh: export sh_bios_get_node_addr() symbol for stnic module.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 17 Dec 2008 02:37:51 +0000 (11:37 +0900)]
sh: Run sh_bios through a long overdue Lindent.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Tue, 16 Dec 2008 11:07:27 +0000 (20:07 +0900)]
serial: sh-sci: Generalize port pin initialization.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Tue, 16 Dec 2008 10:29:38 +0000 (19:29 +0900)]
serial: sh-sci: Tidy up fifo overrun error handling.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Tue, 16 Dec 2008 09:55:26 +0000 (18:55 +0900)]
serial: sh-sci: pr_debug() -> dev_dbg() conversion.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Tue, 16 Dec 2008 09:36:16 +0000 (18:36 +0900)]
serial: sh-sci: Fix up the cpufreq notifier to use the proper port clock.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Tue, 16 Dec 2008 00:36:25 +0000 (09:36 +0900)]
sh: oprofile: Convert op_model_sh7750 to new common interface.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Dave Peverley [Tue, 16 Dec 2008 00:35:40 +0000 (09:35 +0900)]
sh: oprofile: Backtrace support.
This patch improves the oprofile support on sh and adds backtrace
support.
Signed-off-by: Dave Peverley <dpeverley@mpc-data.co.uk>
Signed-off-by: Chris Smith <chris.smith@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Tue, 16 Dec 2008 00:33:53 +0000 (09:33 +0900)]
sh: oprofile: Refactor common setup code for multiple driver support.
This re-implements the old op_model_null code in to something more
generic, where multiple drivers, backtrace, etc. can all be interfaced.
Based largely on arch/mips/oprofile/common.c.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Matt Fleming [Tue, 16 Dec 2008 00:13:05 +0000 (09:13 +0900)]
sh: Enable GENERIC_HARDIRQS_NO__DO_IRQ for all SuperH machines
After the recent changes to switch SuperH board support over to irq_chip
it is now possible to set GENERIC_HARDIRQS_NO__DO_IRQ for all SuperH
boards.
Signed-off-by: Matt Fleming <mjf@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Matt Fleming [Sun, 14 Dec 2008 12:02:27 +0000 (12:02 +0000)]
sh: Convert Cayman boards from hw_interrupt_type to irq_chip
I've been unable to even compile-test this change because I don't have
an sh5 toolchain. All uses of hw_interrupt_type for SuperH boards have
now been converted to use irq_chip.
Signed-off-by: Matt Fleming <mjf@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Matt Fleming [Sun, 14 Dec 2008 12:02:26 +0000 (12:02 +0000)]
sh: Convert Dreamcast support from hw_interrupt_type to irq_chip
Switch the dreamcast IRQ code over to the irq_chip way of doing things,
so that we can set GENERIC_HARDIRQS_NO__DO_IRQ for all SuperH boards.
Also, whilst I'm here change some things to make checkpatch.pl happy:
- Indent with tabs, not with spaces
- Include <linux/io.h>, not <asm/io.h>
- Fix the multi-line comment style
- Fix some typos in the comments
Tested-by: Adrian McMenamin <adrian@newgolddream.dyndns.info>
Signed-off-by: Matt Fleming <mjf@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Matt Fleming [Sun, 14 Dec 2008 12:02:25 +0000 (12:02 +0000)]
sh: Convert SystemH board support from hw_interrupt_type to irq_chip
... as part of the hw_interrupt_type to irq_chip crusade.
Signed-off-by: Matt Fleming <mjf@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Matt Fleming [Sun, 14 Dec 2008 12:02:24 +0000 (12:02 +0000)]
sh: Convert Microdev boards from hw_interrupt_type to irq_chip
This is part of the SH move to irq_chip.
Signed-off-by: Matt Fleming <mjf@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Fri, 12 Dec 2008 07:53:14 +0000 (16:53 +0900)]
sh: Provide sdivsi3/udivsi3/udivdi3 for sh64, kill off libgcc linking.
This moves in the necessary libgcc bits and kills off the libgcc linking
for sh64 kernels as well.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Fri, 12 Dec 2008 07:35:40 +0000 (16:35 +0900)]
fb: SH-5 uses __raw I/O accessors now also, drop the special casing.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Fri, 12 Dec 2008 07:34:44 +0000 (16:34 +0900)]
sh: Add SH-5 optimized memcpy()/memset()/strcpy()/strlen().
Adopted from the uClibc optimized string versions.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Thu, 11 Dec 2008 10:15:14 +0000 (19:15 +0900)]
sh: Kill off remaining CONFIG_SH_KGDB bits.
Now that we use the generic stub, kill off all of the left over
references.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Thu, 11 Dec 2008 10:06:43 +0000 (19:06 +0900)]
serial: sh-sci: Implement CONSOLE_POLL support and kill off old kgdb console.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Thu, 11 Dec 2008 09:46:46 +0000 (18:46 +0900)]
sh: Generic kgdb stub support.
This migrates from the old bitrotted kgdb stub implementation and moves
to the generic stub. In the process support for SH-2/SH-2A is also added,
which the old stub never provided.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 11:17:15 +0000 (20:17 +0900)]
sh: Enable HAVE_ARCH_TRACEHOOK for all SH, now that SH-5 supports it too.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 11:14:15 +0000 (20:14 +0900)]
sh: Provide linux/regset.h interface for SH-5.
Plugs in general and FPU regsets.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 10:46:18 +0000 (19:46 +0900)]
sh: Provide asm/syscall.h for SH-5.
This provides the asm/syscall.h implementation for sh64 parts.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 10:26:44 +0000 (19:26 +0900)]
sh: Handle cases where setup{_rt,}_frame() fail on SH-5 signal delivery.
Presently these cases are not handled properly due to the return value
not being passed back. This needs to be correct to get proper behaviour
out of things like the tracehook signal notifier, amongst others.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 10:18:46 +0000 (19:18 +0900)]
sh: Fix up syscall_get_nr() comment in syscall_32.h.
Residual copy-and-paste damage, fix it up.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 09:17:19 +0000 (18:17 +0900)]
sh: Fix up the cpu_asid() return value on nommu.
This ought to be unsigned long, rather than defaulting to int.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 09:06:36 +0000 (18:06 +0900)]
sh: Convert sh64 /proc/asids to debugfs and generic sh.
This converts the sh64 /proc/asids entry to debugfs and enables it for
all SH parts that have debugfs enabled.
On MMU systems this can be used to determine which processes are using
which ASIDs which in turn can be used for finer grained cache tag
analysis.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 08:16:09 +0000 (17:16 +0900)]
sh: Kill off sh64's unused alloc/free_task_struct() definitions.
These were left over from some time ago, sh64 never got around to
defining __HAVE_ARCH_TASK_STRUCT_ALLOCATOR during the conversion, and it
has no need to. Kill these off and use the generic versions instead.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 08:09:36 +0000 (17:09 +0900)]
sh: mach-migor: Kill off unused Migo-R machvec.
This kills off the special Migo-R machvec, as nothing is using it. By
default this will switch to using the generic machvec, which provides the
same functionality. This saves us a bit of space in the machvec section.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Wed, 10 Dec 2008 08:02:13 +0000 (17:02 +0900)]
sh: add ov772x reset delay on Migo-R
Add reset delay for the ov772x device on Migo-R.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Wed, 10 Dec 2008 04:42:14 +0000 (13:42 +0900)]
sh: Drop the special qemu defconfig.
QEMU can now use rts7751r2dplus_defconfig directly, there is no more need
for a neutered defconfig.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Aoi Shinkai [Wed, 10 Dec 2008 04:30:28 +0000 (13:30 +0900)]
sh: Delete unnecessary mov in the interrupt exception entry point.
The INTEVT read at interrupt exception entry is uneccessary, as the read
is deferred until we are ready to enter do_IRQ(). The kgdb nmi path still
requires it, so move it there.
Signed-off-by: Aoi Shinkai <shinkoi2005@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 08:01:40 +0000 (17:01 +0900)]
sh: Fix an off-by-1 check in __mutex_fastpath_unlock().
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 05:53:28 +0000 (14:53 +0900)]
sh: Update rsk701_defconfig to reflect mach-rsk changes.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 05:46:55 +0000 (14:46 +0900)]
sh: Enable leds-gpio in rsk7203 defconfig.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 05:32:03 +0000 (14:32 +0900)]
sh: Consolidate rsk7203/7201 in to a new mach-rsk.
RSK+ platforms have quite a few characteristics in common, so roll them
together in to a shiny new RSK mach-type.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 03:02:28 +0000 (12:02 +0900)]
sh: Provide ftrace_make_call()/ftrace_make_nop().
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 02:49:19 +0000 (11:49 +0900)]
sh: Disable -Werror for arch/sh/oprofile/.
drivers/oprofile/ objects have proven to be problematic in this regard,
so simply disable -Werror for now.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Takashi YOSHII [Mon, 8 Dec 2008 02:33:06 +0000 (11:33 +0900)]
sh: Add plain udivsi3 (not _i4*) for gcc-4.1 and lower.
We chan't share code for udivsi3 and udivsi3_i4, because they
have a different clobber list. Copy udivsi3 from gcc-4.1.2.
As shown in arch/sh/lib/udivsi3.S (and -Os.S),
.global __udivsi3_i4i
.global __udivsi3_i4
.global __udivsi3
__udivsi3_i4i:
...
Three symbols are sharing one code, which is actually udivsi3_i4i.
But, this results unwanted code with gcc 4.1.
In gcc, these three are treated as pseudo instructions that have
their own clobber list apart from the usual calling convention.
According to sh's machine description. The clobber list is as
follows:
- udivsi3_i4i : t,r1,pr,mach,macl
- udivsi3_i4 : t,r0,r1,r4,r5,pr,dr0,dr2,dr4
- udivsi3 : t,r4,pr
The caller of udivsi3 will be left with a broken r1 and mac*.
gcc-4.1.x and older(at least to 3.4) generate udivsi3.
ST's gcc-4.1.1 seems to be OK because it has _i4i.
Signed-off-by: Takashi YOSHII <yoshii.takashi@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Nick Andrew [Fri, 5 Dec 2008 03:07:57 +0000 (14:07 +1100)]
Fix incorrect use of loose in c-checksum.c
Fix incorrect use of loose in c-checksum.c
It should be 'lose', not 'loose'.
Signed-off-by: Nick Andrew <nick@nick-andrew.net>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt [Mon, 8 Dec 2008 02:25:50 +0000 (11:25 +0900)]
sh: Fix up the SH-4A mutex fastpath semantics.
This fixes up the __mutex_fastpath_xxx() routines to match the semantics
noted in the comment. Previously these were looping rather than doing a
single-pass, which is counter-intuitive, as the slow path takes care of
the looping for us in the event of contention.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Thu, 4 Dec 2008 13:45:20 +0000 (22:45 +0900)]
sh: allow CONFIG_CPU_IDLE
Allow users to select CONFIG_CPU_IDLE regardless of processor type or board.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Thu, 4 Dec 2008 13:45:12 +0000 (22:45 +0900)]
sh: allow CONFIG_PM
Allow users to select CONFIG_PM regardless of processor type or board.
Suspend and hibernation are only allowed on supported platforms.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Thu, 4 Dec 2008 13:45:03 +0000 (22:45 +0900)]
sh: move the hp6xx pm code
Move the not-so-generic pm code from arch/sh/kernel/pm.c to the
platform directory together with the rest of the hp6xx pm code.
This is done to let non-hp6xx platforms enable CONFIG_PM.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Thu, 4 Dec 2008 09:00:39 +0000 (18:00 +0900)]
sh: update se7343 defconfig
Update the se7343 defconfig with:
- use 33MHz PCLK
- increase max number of SCIFs
- add serial console configuration to compiled-in kernel command line
- add 8250 serial port support
- add sh-mobile-i2c driver
- add uio driver to export VEU and VPU
- add usb support and isp1161 host controller
- add dm9601 ethernet-over-usb support
- remove smc91x support
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Thu, 4 Dec 2008 09:00:30 +0000 (18:00 +0900)]
sh: remove ioport cruft and smc91x from se7343
Remove out-of-date se7343 ioport code including some old support
for unknown-ne2000-pcmcia-card, cf-over-pcmcia and a mysterical
smc91x that once must have been on a special daughterboard.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Magnus Damm [Thu, 4 Dec 2008 09:00:22 +0000 (18:00 +0900)]
sh: add isp1161 usb host device to se7343
Add isp1161 platform data to get usb host working on se7343.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>