21 Aug, 2009

4 commits


20 Aug, 2009

16 commits

  • This is the only board that presently supports this rtc, so make sure it
    is enabled by default to get some build coverage.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • There were a few stray unused variables left over, kill them off.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • As an excellent indicator of how much testing the DSP code gets, a couple
    of rather glaring bugs in the DSP save/restore paths were found:

    - In the DSP restore case a0 needs to be popped off before a0g,
    or the value of a0g is clobbered by the MSB of a0 in the case
    of sign extension.

    - Beyond that, the save and restore orders were out of sync,
    so this fixes that up as well. At the same time, we switch over
    to using movs.l for both the save and restore of the general DSP
    registers as opposed to using sts.l (which was initially put in
    place to work around a bug in ancient binutils versions which
    the kernel no longer supports).

    Reported-by: Chee Soon Yip
    Cc: Chu Lih Kwek ,
    Cc: General Lai ,
    Cc: Robert Cozens
    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Signed-off-by: Michael Trimarchi
    Signed-off-by: Paul Mundt

    Michael Trimarchi
     
  • - simplifies irq set freq
    - ioctl() was duplicating functionalities of rtc-dev core
    - corrected initialization sequence
    - use platform_driver_probe

    Signed-off-by: Alessandro Zummo
    Cc: Angelo Castello
    Cc: Giuseppe Cavallaro
    Cc: Kay Sievers
    Cc: Jamie Lenehan
    Signed-off-by: Paul Mundt

    Alessandro Zummo
     
  • - removed spinlock protection, it's handled by the rtc class
    - use platform_driver_probe
    - return appropriate code for rtc_read_time
    - style issues

    Signed-off-by: Alessandro Zummo
    Signed-off-by: Paul Mundt

    Alessandro Zummo
     
  • -tip can't be bothered keeping interfaces stable long enough for anyone
    to use them without having their builds broken without notification, so
    just ifdef around the problematic symbols until the new interfaces become
    available upstream.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Paul Mundt
     
  • Add USB gadget support for port CN26 on the Solution Engine 7724
    board. The r8a66597-udc driver is hooked up as a platform device
    and some registers are configured to enable the USB in gadget mode.
    The hardware driving the USB port is the on-chip USB1 block in
    the sh7724 processor configured as USB gadget controller.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Add USB gadget support for port YC301 on the KFR2R09 board.

    The r8a66597-udc driver is hooked up as a platform device,
    clocks are enabled via I2C and some registers are configured
    to enable the USB in gadget mode. The hardware driving the
    USB port is the on-chip USB0 block in the sh7724 processor
    configured as USB gadget controller.

    This board is using external hardware to detect USB hotplug
    events and allows the processor to dynamically start and stop
    clocks. This well thought out hardware feature is unused at
    this point and plug and play is unfortunately unsupported.
    To properly support all hardware features the USB gadget
    stack may need some adjustment.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch improves the disable_controller() function in the
    r8a66597-udc driver to disable all interrupts and also clear
    status flags. With this patch in place the driver survives
    kexec.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the r8a66597-udc buffer management code.

    Use fixed buffers for bulk and isochronous pipes, also make
    sure to handle the isochronous-as-bulk case. With fixed buffers
    there is no need to keep track of used buffers with bi_bufnum.

    Also, this fixes a potential buffer offset problem where the
    base offset incorrectly varies with the number of pipes used.

    The m66592 driver recently got fixed in a similar way.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Add support for the clock framework to the r8a66597 gadget driver.
    This is needed to control the clock driving the USB block.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • While in-tree support for the R8A66597 host side has been supported for
    some time, the peripheral side has so far been unsupported. This adds a
    new USB gadget driver which bridges the gap and finally wires up the
    peripheral side as well.

    Signed-off-by: Yoshihiro Shimoda
    Tested-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Yoshihiro Shimoda
     
  • Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This adds preliminary support for the EcoVec board.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Kuninori Morimoto
     

19 Aug, 2009

2 commits


18 Aug, 2009

6 commits

  • While most platforms implement LED banks in sets of 8/16/32, some use
    different configurations. This adds a LED mask to the heartbeat platform
    data to allow platforms to constrain the bitmap, which is otherwise
    derived from the register size.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Kuninori Morimoto
     
  • This patch updates the FRQCRA.IFC divisor values for SH7724. Despite
    not being initially documented, the / 3 mode is also support for the IFC
    division.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Kuninori Morimoto
     
  • FLLFRQ setting is needed to use correct PLL clock for kfr2409.

    Signed-off-by: Kuninori Morimoto
    Signed-off-by: Paul Mundt

    Kuninori Morimoto
     
  • save_regs contains an SR modification without an irqflags annotation,
    which resulted in a missing TRACE_IRQS_OFF in the interrupt exception
    path on SH-3/SH4.

    I've also moved the TRACE_IRQS_OFF/ON annotation when returning from the
    interrupt to just before we call __restore_all. This seems like the most
    logical place to put this because the annotation is for when we restore
    the SR register so we should delay the annotation until as last as
    possible.

    We were also missing a TRACE_IRQS_OFF in resume_kernel when
    CONFIG_PREEMPT is enabled.

    The end result is that this fixes up the lockdep engine debugging support
    with CONFIG_PREEMPT enabled on all SH-3/4 parts.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • This patch adds "SuperH Mobile Standby Mode [SF]" to the list
    of cpuidle sleep modes. If the software latency requirements
    from cpuidle are met together with fulfilled hardware
    requirements then deep sleep modes can be entered.

    Tested on sh7722 and sh7724 with "Sleep Mode", "Sleep Mode + SF"
    and "Software Standby Mode + SF" together with a multimedia
    work load and flood ping without packet drop.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the exception handling in the sleep code
    for SuperH Mobile. With the patch applied the sleep code
    always rewrites the VBR and resumes from the exception vector,
    re-initializes hardware and jumps straight to the original
    interrupt vector.

    Tested on sh7722 and sh7724 with "Sleep Mode", "Sleep Mode + SF"
    and "Software Standby Mode + SF" with CONFIG_SUSPEND.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

16 Aug, 2009

3 commits

  • Also, remove the "fix" to DW_CFA_def_cfa_register where we reset the
    frame's cfa_offset to 0. This action is incorrect when handling
    DW_CFA_def_cfa_register as the DWARF spec specifically states that the
    previous contents of cfa_offset should be used with the new
    register. The reason that I thought cfa_offset should be reset to 0 was
    because it was being assigned a bogus value prior to executing the
    DW_CFA_def_cfa_register op. It turns out that the bogus cfa_offset value
    came from interpreting .cfi_escape pseudo-ops (those used by the GNU
    extensions) as CFA_DW_def_cfa ops.

    Signed-off-by: Matt Fleming

    Matt Fleming
     
  • The previous hack for calculating the return address for the first frame
    we unwind (dwarf_unwinder_dump) didn't always work. The problem was that
    it assumed once it read the rule for calculating the return address,
    there would be no new rules for calculating it. This isn't true because
    the way in which the CFA is calculated can change as you progress
    through a function and the return address is figured out using the
    CFA. Therefore, the way to calculate the return address can change.

    So, instead of using some offset from the beginning of
    dwarf_unwind_stack which is just a flakey approach, and instead of
    executing instructions from the FDE until the return address is setup,
    we now figure out the pc in dwarf_unwind_stack() just before we call
    dwarf_cfa_execute_insns().

    Signed-off-by: Matt Fleming

    Matt Fleming
     
  • This uses the BITS export as per x86 in order to allow the same Makefile
    to be used.

    Signed-off-by: Paul Mundt

    Paul Mundt
     

15 Aug, 2009

9 commits

  • Paul Mundt
     
  • This patch updates the SuperH Mobile sleep assembly code with
    support for DBSC memory controller found in the sh7724 processor.

    Without this fix the memory hooked up to the sh7724 processor
    will never enter self-refresh mode before suspending to ram. The
    effect of this is that the memory contents most likeley will be
    lost upon resume which may or may not be what you want.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the Solution Engine 7724 board code to use
    in-SoC KEYSC resources for the keyboard platform device. Using
    the in-SoC key scan controller fixes a crash-during-resume issue.

    Without this patch the KEYSC hardware block located in the board
    specific FPGA is used together with an external IRQ which is
    routed through the FPGA and handled by some board specific demux
    code. This board specific FPGA interrupt code does not implement
    desc->set_wake() so the enable_irq_wake() call in the sh_keysc
    driver will fail at suspend-to-ram time and the disable_irq_wake()
    will bomb out when resuming.

    Changing the platform data to use the in-SoC KEYSC hardware makes
    the se7724 board support code less special which is a good thing.
    Also, the board specific KEYSC pin setup code selects in-SoC pin
    functions already which makes the current FPGA platform device data
    look like a typo.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the SuperH CMT driver with suspend and resume
    callbacks for the suspend-to-ram case. This patch stops the CMT
    channel at suspend time to avoid unwanted wake up events.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • This patch updates the SuperH Mobile LCDC driver to skip
    over disabled channels. Without this patch suspend-to-ram
    operation will crash if deferred io is enabled.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • The way that the CFA is calculated can change as we progress through a
    function. If we see a DW_CFA_def_cfa_register op we need to reset the
    frame's cfa_offset value which may have been previously setup.

    Signed-off-by: Matt Fleming
    Signed-off-by: Paul Mundt

    Matt Fleming
     
  • This implements EXPMASK initialization code for SH-4A parts, where it is
    possible to disable compat features that will go away in newer cores.
    Presently this includes disabling support for non-nop instructions in the
    rte delay slot, as well as a sleep instruction being placed in a delay
    slot (neither of which the kernel does any longer). As a result of this,
    any future offenders will have illegal slot exceptions generated for
    them.

    Associative writes for the memory-mapped cache array are still left
    enabled, until such a point that special cache operations for SH-4A are
    provided to move off of the current (and rather dated) SH-4 versions.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • Future SH parts do not support any instruction but a nop in the rte delay
    slot, so make the change for all offending parts. SH-5 is excluded from
    this, and already has its own set of restrictions with regards to rte
    delay slot handling.

    Signed-off-by: Paul Mundt

    Paul Mundt
     
  • This inserts a ULONG_MAX entry at the end of the valid entries in the
    stack trace buffer so the default code doesn't need to scan to the end of
    available slots. This also makes the trace buffer termination behaviour
    consistent with the other architectures.

    Signed-off-by: Paul Mundt

    Paul Mundt