Permalink
Commits on May 20, 2014
  1. ispvideo: add missing v4l2 ioctls

    strassek authored and ashcharles committed Sep 14, 2012
Commits on Dec 2, 2013
  1. OMAP2/3 clock: fix sprz319 erratum 2.1

    pabigot authored and ashcharles committed 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. ARM: 7670/1: fix the memset fix

    Nicolas Pitre authored and ashcharles committed 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. ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) …

    idjelic authored and ashcharles committed 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. 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. OMAP3: overo: increase linux partition to 8 MiB

    pabigot authored and ashcharles committed 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. Fix sprz319 erratum 2.1

    rrw1000w authored and ashcharles committed 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. drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe

    Kevin Hilman authored and sakoman committed Sep 14, 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. ARM: OMAP: USB: Fix omap3xxx EHCI regression caused by i693 errata fix

    Russ Dill authored and sakoman committed 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. ARM: OMAP: USB: Fixup ehci_hcd_omap_probe error path

    Russ Dill authored and sakoman committed 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. board-overo: Add Caspa camera link frequencies

    pinchartl authored and sakoman committed Jul 26, 2012
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  2. mt9v032: Export horizontal and vertical blanking as V4L2 controls

    pinchartl authored and sakoman committed Jul 23, 2012
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  3. mt9v032: Provide link frequency control

    pinchartl authored and sakoman committed Jul 26, 2012
    Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  4. mt9v032: Provide pixel rate control

    Sakari Ailus authored and sakoman committed 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. v4l2-ctrls: Add v4l2_ctrl_[gs]_ctrl_int64()

    pinchartl authored and sakoman committed 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. mmc: omap: add sdio interrupt support

    sakoman committed May 8, 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. 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. 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. 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. 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>
Commits on Aug 6, 2012
  1. omap3: Add basic support for 720MHz part

    Sanjeev Premi authored and sakoman committed 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. omap: overo: Add opp init

    sakoman committed May 24, 2011
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  3. omap: overo: Add support for spidev

    scottellis authored and sakoman committed Jan 24, 2011
  4. omap: overo: Add twl4030 madc support

    sakoman committed Dec 17, 2009
    Signed-off-by: Steve Sakoman <steve@sakoman.com>
  5. Enabling Hwmon driver for twl4030-madc

    Keerthy authored and sakoman committed May 3, 2011
    Signed-off-by: Keerthy <j-keerthy@ti.com>
  6. Add power-off support for the TWL4030 companion

    berniwa authored and sakoman committed May 15, 2010
    This patch adds support for the power-off on shutdown feature of the TWL4030
  7. drivers: input: touchscreen: ads7846: return ENODEV if device is not …

    Steve Sakoman authored and sakoman committed Dec 15, 2009
    …found
    
    Signed-off-by: Steve Sakoman <sakoman@gmail.com>
  8. drivers: net: smsc911x: return ENODEV if device is not found

    Steve Sakoman authored and sakoman committed Dec 15, 2009
    Signed-off-by: Steve Sakoman <sakoman@gmail.com>
  9. video: add timings for hd720

    sakoman committed Dec 19, 2009
  10. OMAP: DSS2: add bootarg for selecting svideo or composite for tv output

    sakoman committed Jan 20, 2010
    also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp
  11. 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>