Skip to content
Commits on May 20, 2014
  1. @strassek @ashcharles
Commits on Dec 2, 2013
  1. @pabigot @ashcharles

    OMAP2/3 clock: fix sprz319 erratum 2.1

    pabigot committed with ashcharles Aug 14, 2013
    The original patch misinterprets the tables; the N value is the divide value
    minus one, while the M value is correct as given.
    
    Upstream-Status: Pending
    
    Signed-off-by: Peter A. Bigot <pab@pabigot.com>
  2. @ashcharles

    ARM: 7670/1: fix the memset fix

    Nicolas Pitre committed with ashcharles Mar 12, 2013
    Commit 455bd4c ("ARM: 7668/1: fix memset-related crashes caused by
    recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
    with the memset return value.  However the memset itself became broken
    by that patch for misaligned pointers.
    
    This fixes the above by branching over the entry code from the
    misaligned fixup code to avoid reloading the original pointer.
    
    Also, because the function entry alignment is wrong in the Thumb mode
    compilation, that fixup code is moved to the end.
    
    While at it, the entry instructions are slightly reworked to help dual
    issue pipelines.
    
    Signed-off-by: Nicolas Pitre <nico@linaro.org>
    Tested-by: Alexander Holler <holler@ahsoftware.de>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  3. @idjelic @ashcharles

    ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) …

    idjelic committed with ashcharles Mar 6, 2013
    …optimizations
    
    Recent GCC versions (e.g. GCC-4.7.2) perform optimizations based on
    assumptions about the implementation of memset and similar functions.
    The current ARM optimized memset code does not return the value of
    its first argument, as is usually expected from standard implementations.
    
    For instance in the following function:
    
    void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter)
    {
    	memset(waiter, MUTEX_DEBUG_INIT, sizeof(*waiter));
    	waiter->magic = waiter;
    	INIT_LIST_HEAD(&waiter->list);
    }
    
    compiled as:
    
    800554d0 <debug_mutex_lock_common>:
    800554d0:       e92d4008        push    {r3, lr}
    800554d4:       e1a00001        mov     r0, r1
    800554d8:       e3a02010        mov     r2, #16 ; 0x10
    800554dc:       e3a01011        mov     r1, #17 ; 0x11
    800554e0:       eb04426e        bl      80165ea0 <memset>
    800554e4:       e1a03000        mov     r3, r0
    800554e8:       e583000c        str     r0, [r3, #12]
    800554ec:       e5830000        str     r0, [r3]
    800554f0:       e5830004        str     r0, [r3, #4]
    800554f4:       e8bd8008        pop     {r3, pc}
    
    GCC assumes memset returns the value of pointer 'waiter' in register r0; causing
    register/memory corruptions.
    
    This patch fixes the return value of the assembly version of memset.
    It adds a 'mov' instruction and merges an additional load+store into
    existing load/store instructions.
    For ease of review, here is a breakdown of the patch into 4 simple steps:
    
    Step 1
    ======
    Perform the following substitutions:
    ip -> r8, then
    r0 -> ip,
    and insert 'mov ip, r0' as the first statement of the function.
    At this point, we have a memset() implementation returning the proper result,
    but corrupting r8 on some paths (the ones that were using ip).
    
    Step 2
    ======
    Make sure r8 is saved and restored when (! CALGN(1)+0) == 1:
    
    save r8:
    -       str     lr, [sp, #-4]!
    +       stmfd   sp!, {r8, lr}
    
    and restore r8 on both exit paths:
    -       ldmeqfd sp!, {pc}               @ Now <64 bytes to go.
    +       ldmeqfd sp!, {r8, pc}           @ Now <64 bytes to go.
    (...)
            tst     r2, #16
            stmneia ip!, {r1, r3, r8, lr}
    -       ldr     lr, [sp], #4
    +       ldmfd   sp!, {r8, lr}
    
    Step 3
    ======
    Make sure r8 is saved and restored when (! CALGN(1)+0) == 0:
    
    save r8:
    -       stmfd   sp!, {r4-r7, lr}
    +       stmfd   sp!, {r4-r8, lr}
    
    and restore r8 on both exit paths:
            bgt     3b
    -       ldmeqfd sp!, {r4-r7, pc}
    +       ldmeqfd sp!, {r4-r8, pc}
    (...)
            tst     r2, #16
            stmneia ip!, {r4-r7}
    -       ldmfd   sp!, {r4-r7, lr}
    +       ldmfd   sp!, {r4-r8, lr}
    
    Step 4
    ======
    Rewrite register list "r4-r7, r8" as "r4-r8".
    
    Signed-off-by: Ivan Djelic <ivan.djelic@parrot.com>
    Reviewed-by: Nicolas Pitre <nico@linaro.org>
    Signed-off-by: Dirk Behme <dirk.behme@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Commits on Aug 25, 2013
  1. @ashcharles

    Backport patch required to allow mt9v032 module to be unloaded if

    ashcharles committed Aug 25, 2013
    the camera is not installed.
    
    Upstream-Status: Backport [317efce]
  2. @pabigot @ashcharles

    OMAP3: overo: increase linux partition to 8 MiB

    pabigot committed with ashcharles Aug 16, 2013
    Linux kernel at version 3.5 is about 3.5 MiB; test kernels for 3.10 exceed 4
    MiB.  Prepare for future upgrades by increasing the NAND partition now.
    
    Upstream-Status: Pending
    
    Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Commits on Aug 5, 2013
  1. @rrw1000w @ashcharles

    Fix sprz319 erratum 2.1

    rrw1000w committed with ashcharles Feb 20, 2012
    There is an erratum in DM3730 which results in the
    EHCI USB PLL (DPLL5) not updating sufficiently frequently; this
    leads to USB PHY clock drift and once the clock has drifted far
    enough, the PHY's ULPI interface stops responding and USB
    drops out. This is manifested on a Beagle xM by having the attached
    SMSC9514 report 'Cannot enable port 2. Maybe the USB cable is bad?'
    or similar.
    
    The fix is to carefully adjust your DPLL5 settings so as to
    keep the PHY clock as close as possible to 120MHz over the long
    term; TI SPRZ319e gives a table of such settings and this patch
    applies that table to systems with a 13MHz or a 26MHz clock,
    thus fixing the issue (inasfar as it can be fixed) on Beagle xM
    and Overo Firestorm.
    
    Signed-off-by: Richard Watts <rrw@kynesim.co.uk>
Commits on Sep 14, 2012
  1. @sakoman

    drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe

    Kevin Hilman committed with sakoman Sep 13, 2012
    On some platforms, bootloaders are known to do some interesting RTC
    programming.  Without going into the obscurities as to why this may be the
    case, suffice it to say the the driver should not make any assumptions
    about the state of the RTC when the driver loads.  In particular, the
    driver probe should be sure that all interrupts are disabled until
    otherwise programmed.
    
    This was discovered when finding bursty I2C traffic every second on Overo
    platforms.  This I2C overhead was keeping the SoC from hitting deep power
    states.  The cause was found to be the RTC firing every second on the
    I2C-connected TWL PMIC.
    
    Special thanks to Felipe Balbi for suggesting to look for a rogue driver
    as the source of the I2C traffic rather than the I2C driver itself.
    
    Special thanks to Steve Sakoman for helping track down the source of the
    continuous RTC interrups on the Overo boards.
    
    Signed-off-by: Kevin Hilman <khilman@ti.com>
    Cc: Felipe Balbi <balbi@ti.com>
    Cc: Steve Sakoman <steve@sakoman.com>
    Cc: Alessandro Zummo <a.zummo@towertech.it>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Commits on Aug 29, 2012
  1. @sakoman

    ARM: OMAP: USB: Fix omap3xxx EHCI regression caused by i693 errata fix

    Russ Dill committed with sakoman Aug 29, 2012
    Fix OMAP EHCI suspend/resume failure (i693) '354ab856' causes
    an oops on boot for all omap3xxx platforms that use usbhs_omap for
    EHCI. The actual oops comes from faulty ehci-omap cleanup, but the
    failure caused by the change is evidenced here:
    
    [    3.655059] ehci-omap ehci-omap.0: utmi_p1_gfclk failed error:-2
    [    3.661376] ehci-omap: probe of ehci-omap.0 failed with error -2
    
    utmi_p1_gfclk is a clock that exists on OMAP4, but not OMAP3. In the
    OMAP3 case, it is configured as a dummy clock. However, OMAP4 lists
    the dev_id as NULL, but OMAP3 lists it as "usbhs_omap".
    
    Attempting to get that clock from ehci-omap then fails. The solution
    is to just change the clock3xxx_data.c for dummy clocks used in the
    errata fix to match the dev_id, NULL, used in clock44xx_data.c.
    
    Tested on BB-xM.
    
    Signed-off-by: Russ Dill <Russ.Dill at ti.com>
  2. @sakoman

    ARM: OMAP: USB: Fixup ehci_hcd_omap_probe error path

    Russ Dill committed with sakoman Jun 21, 2012
    A recent commit, [PATCH] Fix OMAP EHCI suspend/resume failure
    (i693) '354ab856' causes ehci probe to fail on omap3xxx. This
    exposed bugs in the ehci_hcd_omap_probe error path causing
    an oops.
    
    On the error path, call usb_remove_hcd if usb_add_hcd has been
    called, and call usb_put_hcd if usb_alloc_hcd has been called.
    
    Tested on BB-xM.
    
    Signed-off-by: Russ.Dill@ti.com
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Commits on Aug 12, 2012
  1. @pinchartl @sakoman

    board-overo: Add Caspa camera link frequencies

    pinchartl committed with sakoman Jul 26, 2012
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  2. @pinchartl @sakoman

    mt9v032: Export horizontal and vertical blanking as V4L2 controls

    pinchartl committed with sakoman Jul 23, 2012
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  3. @pinchartl @sakoman

    mt9v032: Provide link frequency control

    pinchartl committed with sakoman Jul 26, 2012
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  4. @sakoman

    mt9v032: Provide pixel rate control

    Sakari Ailus committed with sakoman Mar 15, 2012
    Provide pixel rate control calculated from external clock and horizontal
    binning factor.
    
    Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  5. @pinchartl @sakoman

    v4l2-ctrls: Add v4l2_ctrl_[gs]_ctrl_int64()

    pinchartl committed with sakoman Jul 23, 2012
    These helper functions get and set a 64-bit control's value from within
    a driver. They are similar to v4l2_ctrl_[gs]_ctrl() but operate on
    64-bit integer controls instead of 32-bit controls.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
  6. @sakoman

    mmc: omap: add sdio interrupt support

    sakoman committed May 7, 2012
    Based on a patch from David Vrabel <david.vrabel@csr.com>
    
    Results in 13X performance improvement as measured using wget
    on a large file:
    
    2012-05-07 11:36:41 (109 KB/s) - `bigfile' saved [265821364/265821364]
    2012-05-07 11:57:23 (1.46 MB/s) - `bigfile' saved [265821364/265821364]
  7. @sakoman

    omap: overo: don't overwrite sdrc setup from u-boot/spl

    sakoman committed Mar 4, 2012
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  8. @sakoman

    omap: beagle: Don't register madc twice

    sakoman committed Dec 8, 2011
    Specifying TWL_COMMON_PDATA_MADC is adequate, don't also add
    platform device
    
    Otherwise:
    
    ------------[ cut here ]------------
    WARNING: at fs/sysfs/dir.c:481 sysfs_add_one+0x6c/0x8c()
    sysfs: cannot create duplicate filename '/bus/platform/devices/twl4030_madc_hwmon'
    Modules linked in:
    [<c0012b48>] (unwind_backtrace+0x0/0x11c) from [<c0038450>] (warn_slowpath_common+0x4c/0x64)
    [<c0038450>] (warn_slowpath_common+0x4c/0x64) from [<c00384e8>] (warn_slowpath_fmt+0x2c/0x3c)
    [<c00384e8>] (warn_slowpath_fmt+0x2c/0x3c) from [<c01043d4>] (sysfs_add_one+0x6c/0x8c)
    [<c01043d4>] (sysfs_add_one+0x6c/0x8c) from [<c0104b50>] (sysfs_do_create_link+0xec/0x1cc)
    [<c0104b50>] (sysfs_do_create_link+0xec/0x1cc) from [<c025577c>] (bus_add_device+0xd4/0x158)
    [<c025577c>] (bus_add_device+0xd4/0x158) from [<c0253e08>] (device_add+0x378/0x560)
    [<c0253e08>] (device_add+0x378/0x560) from [<c0257a40>] (platform_device_add+0x140/0x1a4)
    [<c0257a40>] (platform_device_add+0x140/0x1a4) from [<c0265624>] (add_numbered_child+0x144/0x1a4)
    [<c0265624>] (add_numbered_child+0x144/0x1a4) from [<c02657cc>] (add_children+0xc4/0x808)
    [<c02657cc>] (add_children+0xc4/0x808) from [<c040df88>] (twl_probe+0x390/0x418)
    [<c040df88>] (twl_probe+0x390/0x418) from [<c02dbb9c>] (i2c_device_probe+0xa0/0xd4)
    [<c02dbb9c>] (i2c_device_probe+0xa0/0xd4) from [<c02561dc>] (driver_probe_device+0x144/0x29c)
    [<c02561dc>] (driver_probe_device+0x144/0x29c) from [<c0254f9c>] (bus_for_each_drv+0x4c/0x84)
    [<c0254f9c>] (bus_for_each_drv+0x4c/0x84) from [<c0255f80>] (device_attach+0x74/0xa0)
    [<c0255f80>] (device_attach+0x74/0xa0) from [<c0255824>] (bus_probe_device+0x24/0x40)
    [<c0255824>] (bus_probe_device+0x24/0x40) from [<c0253e5c>] (device_add+0x3cc/0x560)
    [<c0253e5c>] (device_add+0x3cc/0x560) from [<c02dc5a8>] (i2c_new_device+0x10c/0x1b0)
    [<c02dc5a8>] (i2c_new_device+0x10c/0x1b0) from [<c02dca04>] (i2c_register_adapter+0x160/0x218)
    [<c02dca04>] (i2c_register_adapter+0x160/0x218) from [<c02dcbe4>] (i2c_add_numbered_adapter+0x9c/0xb8)
    [<c02dcbe4>] (i2c_add_numbered_adapter+0x9c/0xb8) from [<c04106fc>] (omap_i2c_probe+0x2b8/0x384)
    [<c04106fc>] (omap_i2c_probe+0x2b8/0x384) from [<c025741c>] (platform_drv_probe+0x14/0x18)
    [<c025741c>] (platform_drv_probe+0x14/0x18) from [<c02561dc>] (driver_probe_device+0x144/0x29c)
    [<c02561dc>] (driver_probe_device+0x144/0x29c) from [<c0256394>] (__driver_attach+0x60/0x84)
    [<c0256394>] (__driver_attach+0x60/0x84) from [<c025525c>] (bus_for_each_dev+0x4c/0x78)
    [<c025525c>] (bus_for_each_dev+0x4c/0x78) from [<c02559c4>] (bus_add_driver+0xc0/0x240)
    [<c02559c4>] (bus_add_driver+0xc0/0x240) from [<c02568c0>] (driver_register+0xa0/0x120)
    [<c02568c0>] (driver_register+0xa0/0x120) from [<c000863c>] (do_one_initcall+0x90/0x160)
    [<c000863c>] (do_one_initcall+0x90/0x160) from [<c05f47b4>] (kernel_init+0x78/0x11c)
    [<c05f47b4>] (kernel_init+0x78/0x11c) from [<c000e918>] (kernel_thread_exit+0x0/0x8)
    ---[ end trace 1b75b31a2719ed1c ]---
    dummy 1-004a: can't add twl4030_madc_hwmon dev
    
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  9. @sakoman

    omap: overo: Restructure code to allow customization via config options

    sakoman committed Nov 11, 2011
    The current board file for Overo sets up a number of hw features
    even if those features are not enabled in the defconfig (e.g. musb,
    ehci, dss2).  This patch inserts checks for the appropriate CONFIG
    options before doing the hardware setup.
    
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  10. @sakoman

    mfd: twl4030-madc: Enable ADC channels 3-6

    sakoman committed Dec 1, 2011
    Currently the driver does not explicitly set the TWL4030_USB_SEL_MADC_MCPC
    bit to enable madc channels 3 through 6.  This results in readings near
    zero for these channels.
    
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  11. @sakoman
Commits on Aug 6, 2012
  1. @sakoman

    omap3: Add basic support for 720MHz part

    Sanjeev Premi committed with sakoman Jan 18, 2011
    This patch adds support for new speed enhanced parts with ARM
    and IVA running at 720MHz and 520MHz respectively. These parts
    can be probed at run-time by reading PRODID.SKUID[3:0] at
    0x4830A20C [1].
    
    This patch specifically does following:
     * Detect devices capable of 720MHz.
     * Add new OPP
     * Ensure that OPP is conditionally enabled.
     * Check for presence of IVA before attempting to enable
       the corresponding OPP.
    
      [1] http://focus.ti.com/lit/ug/spruff1d/spruff1d.pdf
    
    Signed-off-by: Sanjeev Premi <premi@ti.com>
  2. @sakoman

    omap: overo: Add opp init

    sakoman committed May 24, 2011
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  3. @scottellis @sakoman
  4. @sakoman

    omap: overo: Add twl4030 madc support

    sakoman committed Dec 17, 2009
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  5. @sakoman

    Enabling Hwmon driver for twl4030-madc

    Keerthy committed with sakoman May 4, 2011
    Signed-off-by: Keerthy <j-keerthy@ti.com>
  6. @berniwa @sakoman

    Add power-off support for the TWL4030 companion

    berniwa committed with sakoman May 15, 2010
    This patch adds support for the power-off on shutdown feature of the TWL4030
  7. @sakoman
  8. @sakoman
  9. @sakoman
  10. @sakoman

    drivers: input: touchscreen: ads7846: return ENODEV if device is not …

    Steve Sakoman committed with sakoman Dec 15, 2009
    …found
    
    Signed-off-by: Steve Sakoman <sakoman@gmail.com>
  11. @sakoman

    drivers: net: smsc911x: return ENODEV if device is not found

    Steve Sakoman committed with sakoman Dec 15, 2009
    Signed-off-by: Steve Sakoman <sakoman@gmail.com>
  12. @sakoman

    video: add timings for hd720

    sakoman committed Dec 19, 2009
  13. @sakoman

    OMAP: DSS2: add bootarg for selecting svideo or composite for tv output

    sakoman committed Jan 19, 2010
    also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp
  14. @sakoman

    mtd: nand: Eliminate noisey "uncorrectable error" messages

    sakoman committed Jul 1, 2011
    Other layers of the stack give more informative messages when __nand_correct_data() fails
    
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
Something went wrong with that request. Please try again.