aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* sh: fix clock-sh7757 for the latest sh_mobile_sdhi driverShimoda, Yoshihiro2012-04-04
| | | | | | | | | | | | | The commit 996bc8aebd2cd5b6d4c5d85085f171fa2447f364 (mmc: sh_mobile_sdhi: do not manage PM clocks manually) modified the sh_mobile_sdhi driver to remove the clk_enable/clk_disable. So, we need to change the "CLKDEV_CON_ID" to "CLKDEV_DEV_ID". If we don't change this, we will see the following error from the driver: sh_mobile_sdhi sh_mobile_sdhi.0: timeout waiting for hardware interrupt (CMD52) Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
*-. Merge branches 'sh/urgent', 'sh/vsyscall' and 'common/serial-rework' into ↵Paul Mundt2012-03-30
|\ \ | | | | | | | | | sh-latest
| | * serial: sh-sci: use serial_port_in/out vs sci_in/out.Paul Mundt2012-03-30
| | | | | | | | | | | | | | | | | | | | | | | | Follows the 8250 change for pretty much the same rationale. See commit "serial: use serial_port_in/out vs serial_in/out in 8250". Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | sh: vsyscall: Fix up .eh_frame generation.Paul Mundt2012-03-30
| |/ | | | | | | | | | | | | | | | | Some improper formatting caused the .eh_frame generation to fail, resulting in gcc/g++ testsuite failures with regards to unwinding through the vDSO. Now that someone is actually working on this on the gcc side it's time to fix up the kernel side, too. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: dma: Fix up device attribute mismatch from sysdev fallout.Paul Mundt2012-03-30
| | | | | | | | | | | | | | This fixes up an attribute mismatch that was introduced in the sysdev->struct device migration. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: dwarf unwinder depends on SHcompact.Paul Mundt2012-03-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Presently there's no SHmedia support plugged in for the dwarf unwinder. While it's trivial to provide an SHmedia version of dwarf_read_arch_reg(), the general sh64 case is more complicated in that the TLB miss handler uses a locked down set of registers for optimization (including the frame pointer) which we need for the unwind table generation. While freeing up the frame pointer for use in the TLB miss handler is reasonably straightforward, it's still more trouble than it's worth, so we simply restrict the unwinder to 32-bit for now. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | sh: fix up fallout from system.h disintegration.Paul Mundt2012-03-30
|/ | | | | | Quite a bit of fallout all over the place, nothing terribly exciting. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-shLinus Torvalds2012-03-30
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull SuperH updates from Paul Mundt. * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (25 commits) sh: Support I/O space swapping where needed. sh: use set_current_blocked() and block_sigmask() sh: no need to reset handler if SA_ONESHOT sh: intc: Fix up section mismatch for intc_ack_data sh: select ARCH_DISCARD_MEMBLOCK. sh: Consolidate duplicate _32/_64 unistd definitions. sh: ecovec: switch SDHI controllers to card polling sh: Avoid exporting unimplemented syscalls. sh: add platform_device for RSPI in setup-sh7757 SH: pci-sh7780: enable big-endian operation. serial: sh-sci: fix a race of DMA submit_tx on transfer sh: dma: Collect up CHCR of SH7763, SH7764, SH7780 and SH7785 sh: dma: Collect up CHCR of SH7723 and SH7730 sh/next: Fix build fail by asm/system.h in asm/bitops.h arch/sh/drivers/dma/{dma-g2,dmabrg}.c: ensure arguments to request_irq and free_irq are compatible sh: cpufreq: Wire up scaling_available_freqs support. sh: cpufreq: notify about rate rounding fallback. sh: cpufreq: Support CPU clock frequency table. sh: cpufreq: struct device lookup from CPU topology. sh: cpufreq: percpu struct clk accounting. ...
| * sh: Support I/O space swapping where needed.Paul Mundt2012-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | This adopts a trimmed down version of the MIPS port mangling interface limited to the I/O swabbing for platforms that can't use little endian accessors. For platforms with mixed I/O spaces involving PCI it will still be necessary to enable byte swapping at the host controller level. Attention needs to be paid to all of host controller endianness, CPU endianness, and whether I/O accesses are explicitly swapped or not via SWAP_IO_SPACE. Fortunately the platforms that need this are in the minority. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: use set_current_blocked() and block_sigmask()Matt Fleming2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As described in e6fa16ab ("signal: sigprocmask() should do retarget_shared_pending()") the modification of current->blocked is incorrect as we need to check whether the signal we're about to block is pending in the shared queue. Also, use the new helper function introduced in commit 5e6292c0f28f ("signal: add block_sigmask() for adding sigmask to current->blocked") which centralises the code for updating current->blocked after successfully delivering a signal and reduces the amount of duplicate code across architectures. In the past some architectures got this code wrong, so using this helper function should stop that from happening again. Acked-by: Oleg Nesterov <oleg@redhat.com> Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Matt Fleming <matt.fleming@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: no need to reset handler if SA_ONESHOTMatt Fleming2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | get_signal_to_deliver() already resets the signal handler if SA_ONESHOT is set in ka->sa.sa_flags, there's no need to do it again in handle_signal(). Furthermore, because we were modifying ka->sa.sa_handler (which is a copy of sighand->action[]) instead of sighand->action[] the original code had no effect on signal delivery. Acked-by: Oleg Nesterov <oleg@redhat.com> Cc: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Matt Fleming <matt.fleming@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: intc: Fix up section mismatch for intc_ack_dataPaul Mundt2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | intc_ack_data is flagged as __init when it shouldn't be, causing section mismatches in non-init paths like intc_set_ack_handle(): WARNING: drivers/built-in.o(.text+0x5d760): Section mismatch in reference from the function intc_set_ack_handle() to the function .init.text:intc_ack_data() The function intc_set_ack_handle() references the function __init intc_ack_data(). This is often because intc_set_ack_handle lacks a __init annotation or the annotation of intc_ack_data is wrong. Reported-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: select ARCH_DISCARD_MEMBLOCK.Paul Mundt2012-03-28
| | | | | | | | | | | | We don't require it outside of the __init context, so discard it. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Consolidate duplicate _32/_64 unistd definitions.Paul Mundt2012-03-28
| | | | | | | | | | | | | | This does some more tidying and converging of the header split, following the x86 example. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: ecovec: switch SDHI controllers to card pollingGuennadi Liakhovetski2012-03-28
| | | | | | | | | | | | | | | | | | Polling for card hotplug events is a better option than using SDHI native hotplug interrupt, because the latter option forces the controller to stay permanently powered up and enabled. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: Avoid exporting unimplemented syscalls.Paul Mundt2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that userspace is making use of kernel-provided sanitized headers for working out supported interfaces, we need to be a bit more diligent with matching the syscall definitions with their actual wiring/support state. In theory it shouldn't hurt anything since sys_ni_syscall will ultimately do the right thing, but there's also not much need to lie about legacy x86 syscalls that we've never supported. This tightens things up a bit for uClibc at least. Suggested-by: Carmelo Amoroso <carmelo.amoroso@st.com> Acked-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: add platform_device for RSPI in setup-sh7757Shimoda, Yoshihiro2012-03-28
| | | | | | | | | | Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * SH: pci-sh7780: enable big-endian operation.Thomas Schwinge2012-03-28
| | | | | | | | | | | | | | | | | | | | | | If in big-endian mode, switch the PCI bus, too. Tested on both litte-endian and big-endian sh7785lcr. Signed-off-by: Thomas Schwinge <thomas@codesourcery.com> Cc: Paul Mundt <lethal@linux-sh.org> Cc: linux-sh@vger.kernel.org Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * serial: sh-sci: fix a race of DMA submit_tx on transferYoshii Takashi2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When DMA is enabled, sh-sci transfer begins with uart_start() sci_start_tx() if (cookie_tx < 0) schedule_work() Then, starts DMA when wq scheduled, -- (A) process_one_work() work_fn_rx() cookie_tx = desc->submit_tx() And finishes when DMA transfer ends, -- (B) sci_dma_tx_complete() async_tx_ack() cookie_tx = -EINVAL (possible another schedule_work()) This A to B sequence is not reentrant, since controlling variables (for example, cookie_tx above) are not queues nor lists. So, they must be invoked as A B A B..., otherwise results in kernel crash. To ensure the sequence, sci_start_tx() seems to test if cookie_tx < 0 (represents "not used") to call schedule_work(). But cookie_tx will not be set (to a cookie, also means "used") until in the middle of work queue scheduled function work_fn_tx(). This gap between the test and set allows the breakage of the sequence under the very frequently call of uart_start(). Another gap between async_tx_ack() and another schedule_work() results in the same issue, too. This patch introduces a new condition "cookie_tx == 0" just to mark it is "busy" and assign it within spin-locked region to fill the gaps. Signed-off-by: Takashi Yoshii <takashi.yoshii.zj@renesas.com> Reviewed-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Cc: stable@vger.kernel.org Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: dma: Collect up CHCR of SH7763, SH7764, SH7780 and SH7785Nobuhiro Iwamatsu2012-03-28
| | | | | | | | | | | | | | | | CHCR of SH7763, SH7764, SH7780 and SH7785 is constitution same as SH7757. Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> Reviewed-by: Simon Horman <horms@verge.net.au> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * sh: dma: Collect up CHCR of SH7723 and SH7730Nobuhiro Iwamatsu2012-03-28
| | | | | | | | | | | | | | | | CHCR of SH7723 and SH7730 is constitution same as SH7724. Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com> Reviewed-by: Simon Horman <horms@verge.net.au> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * Merge branch 'common/intc-extension' into sh-latestPaul Mundt2012-03-28
| |\
| | * sh: intc: optimize intc IRQ lookupPaul Mundt2012-01-24
| | | | | | | | | | | | | | | | | | | | | | | | This ensures that the sense/prio lists are sorted at registration time, enabling us to use a simple binary search for an optimized lookup (something that had been on the TODO for some time). Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * sh: intc: Use IRQ_SET_MASK_OK_NOCOPY for intc_set_affinity.Paul Mundt2012-01-24
| | | | | | | | | | | | | | | | | | | | | intc_set_affinity() updates the cpumask in place, so there's no need for the upper layer to do this itself. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * sh: intc: Kill off superfluous irq_shutdown hooking.Paul Mundt2012-01-24
| | | | | | | | | | | | | | | | | | This already gets handled via disable, as per the notes in linux/irq.h. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * sh: intc: Prefer IRQCHIP_SKIP_SET_WAKE over a dummy set_wake callback.Paul Mundt2012-01-24
| | | | | | | | | | | | | | | | | | | | | | | | It's possible to use IRQCHIP_SKIP_SET_WAKE to get the behaviour that we're after, without having to bother with a dummy ->set_wake() callback for the IRQ chip. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * sh: intc: Make global intc controller counter static.Paul Mundt2012-01-24
| | | | | | | | | | | | | | | | | | No need to expose this globally since it's only used for core accounting. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | Merge branch 'sh/cpufreq' into sh-latestPaul Mundt2012-03-28
| |\ \
| | * | sh: cpufreq: Wire up scaling_available_freqs support.Paul Mundt2012-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | scaling_available_freqs is provided generically for drivers that are using frequency table based rounding. This will be optional for our case, but the generic code already takes that in to consideration, so we can simply wire it up outright. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: cpufreq: notify about rate rounding fallback.Paul Mundt2012-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The general case for platforms that support the clock framework fully will be rate table rounding, while others will have to fall back on much coarser general rate rounding. Notify about it during boot so the limited functionality for the given subtype is appropriately noted. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: cpufreq: Support CPU clock frequency table.Paul Mundt2012-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for the frequency table provided by the clock framework under the struct clk definition (if available). In cases where no table is generated or otherwise supported, we fall back on coarse grained scaling via clock framework rounding, as before. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: cpufreq: struct device lookup from CPU topology.Paul Mundt2012-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The struct device pointer associated with the CPU we're on can be fetched via the topology information. Tie this in to localize the CPU clock lookup. While we're at it, tidy up some of the debug/info printing notices too. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| | * | sh: cpufreq: percpu struct clk accounting.Paul Mundt2012-01-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment there is simply a global struct clk pointer for the CPU frequency, which is fundamentally broken in the SMP case. This moves to fix it up by switching to a percpu case. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | | sh/next: Fix build fail by asm/system.h in asm/bitops.hNobuhiro Iwamatsu2012-03-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |