02 Dec, 2009

1 commit

  • - Remove wrong and unnecessary unmask operation

    - Remove extra GEDR reading

    This fixes the loss of interrupts which occurs when two or more pins are
    triggered in close succession.

    Signed-off-by: Alek Du
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alek Du
     

12 Nov, 2009

1 commit

  • In case of failure, device_create() returns not NULL but the error code.
    The current code checks for non-NULL though which causes kernel oops in
    sysfs_create_group() when device_create() fails. Check for error using
    IS_ERR() and propagate the error value using PTR_ERR() instead of fixed
    -ENODEV code returned now...

    Signed-off-by: Sergei Shtylyov
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergei Shtylyov
     

29 Oct, 2009

1 commit

  • The gpio_twl4030_probe() function calls gpio_twl4030_remove(), and the
    former has __devinit, so the latter cannot use __devexit. Otherwise we
    hit the section mismatch warning:

    WARNING: drivers/gpio/built-in.o(.devinit.text+0x71a): Section mismatch
    in reference from the function _gpio_twl4030_probe() to the function
    .devexit.text:_gpio_twl4030_remove()
    The function __devinit _gpio_twl4030_probe() references a function
    __devexit _gpio_twl4030_remove().
    This is often seen when error handling in the init function uses
    functionality in the exit path.
    The fix is often to remove the __devexit annotation of
    _gpio_twl4030_remove() so it may be used outside an exit section.

    Signed-off-by: Mike Frysinger
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     

02 Oct, 2009

1 commit


24 Sep, 2009

1 commit

  • * 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
    i2c: Clearly mark ACPI drivers as such
    i2c: Add driver for SMBus Control Method Interface
    i2c-pnx: Correct use of request_region/request_mem_region
    MAINTAINERS: Add maintainer for AT24 and PCA9564/PCA9665
    i2c-piix4: Add AMD SB900 SMBus device ID
    i2c/chips: Remove deprecated pcf8574 driver
    i2c/chips: Remove deprecated pca9539 driver
    i2c/chips: Remove deprecated pcf8575 driver
    gpio/pcf857x: Copy i2c_device_id from old pcf8574 driver
    i2c/scx200_acb: Provide more information on bus errors
    i2c: Provide compatibility links for i2c adapters
    i2c: Convert i2c adapters to bus devices
    i2c: Convert i2c clients to a device type
    i2c/tsl2550: Use combined SMBus transactions
    i2c-taos-evm: Switch echo off to improve performance
    i2c: Drop unused i2c_driver.id field

    Linus Torvalds
     

23 Sep, 2009

9 commits

  • Signed-off-by: Michael Hennerich
    Signed-off-by: Bryan Wu
    Signed-off-by: Mike Frysinger
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Hennerich
     
  • Many gpio chips allow to generate interrupts when the value of a pin
    changes. This patch gives usermode application the opportunity to make
    use of this feature by calling poll(2) on the /sys/class/gpio/gpioN/value
    sysfs file. The edge to trigger can be set in the edge file in the same
    directory. Possible values are "none", "rising", "falling", and "both".

    Using level triggers is not possible with current sysfs since nothing
    changes the GPIO value (and the IRQ keeps triggering). Edge triggering
    will "just work". Note that if there was an event between read() and
    poll(), the poll() returns immediately.

    Also note that this version only supports true GPIO interrupts. Some
    later patch might be able to synthesize this behavior by timer-driven
    polling; some systems seem to need that.

    [dbrownell@users.sourceforge.net: align ids to 16 bit ids; whitespace]
    Signed-off-by: Daniel Glöckner
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Glöckner
     
  • Drivers should be including not .

    Signed-off-by: H Hartley Sweeten
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    H Hartley Sweeten
     
  • MAX7315 is pin and software compatible with PCA9534, so add it to the I2C
    device ID table of pca953x driver.
    http://www.datasheetcatalog.org/datasheet/maxim/MAX7315.pdf

    Signed-off-by: Alek Du
    Acked-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alek Du
     
  • The Langwell chip is the IO hub for Intel Moorestown platform which has a
    64-pin gpio block device inside. It is exposed as a dedicated PCI device.
    We use it to control outside peripheral as well as to do IRQ demuxing.
    The gpio block uses MSI to send level type interrupt to IOAPIC.

    Signed-off-by: Alek Du
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alek Du
     
  • Cc: Eric Miao
    Cc: Russell King
    Cc: David Brownell
    Cc: Samuel Ortiz
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marek Vasut
     
  • A GPIO driver for the Freescale MC33880 High/Low side switch

    Signed-off-by: Richard Röjfors
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Röjfors
     
  • Commit 926b663ce8215ba448960e1ff6e58b67a2c3b99b (gpiolib: allow GPIOs to
    be named) already provides naming on the chip level. This patch provides
    more flexibility by allowing multiple names where ever in sysfs on a per
    GPIO basis.

    Adapted from David Brownell's comments on a similar concept:
    http://lkml.org/lkml/2009/4/20/203.

    [randy.dunlap@oracle.com: fix build for CONFIG_GENERIC_GPIO=n]
    Signed-off-by: Jani Nikula
    Acked-by: David Brownell
    Cc: Daniel Silverstone
    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jani Nikula
     
  • This makes it consistent with other buses (platform, i2c, vio, ...). I'm
    not sure why we use the prefixes, but there must be a reason.

    This was easy enough to do it, and I did it.

    Signed-off-by: Anton Vorontsov
    Cc: David Brownell
    Cc: David Woodhouse
    Cc: Grant Likely
    Cc: Jean Delvare
    Cc: Ben Dooks
    Cc: Benjamin Herrenschmidt
    Cc: Dmitry Torokhov
    Cc: Samuel Ortiz
    Cc: "John W. Linville"
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     

21 Sep, 2009

1 commit


19 Sep, 2009

1 commit


17 Sep, 2009

1 commit

  • Add support for the GPIO pins on the WM831x. No direct support is
    currently supplied for configuring non-gpiolib functionality such
    as pull configuration and alternate functions, soft configuration
    of these will be provided in a future patch.

    Currently use of these pins as interrupts is not supported due to
    the ongoing issues with generic irq not support interrupt controllers
    on interrupt driven buses. Users can directly request the interrupts
    with the wm831x-specific APIs currently provided if required.

    Signed-off-by: Mark Brown
    Acked-by: David Brownell
    Signed-off-by: Samuel Ortiz

    Mark Brown
     

13 Jul, 2009

1 commit

  • * Remove smp_lock.h from files which don't need it (including some headers!)
    * Add smp_lock.h to files which do need it
    * Make smp_lock.h include conditional in hardirq.h
    It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

    This will make hardirq.h inclusion cheaper for every PREEMPT=n config
    (which includes allmodconfig/allyesconfig, BTW)

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

03 Jul, 2009

2 commits


01 Jul, 2009

2 commits


20 Jun, 2009

1 commit

  • This is a driver for the ARM PrimeCell PL061 GPIO AMBA peripheral. The
    driver is implemented using the gpiolib framework.

    This driver also includes support for the use of the PL061 as an interrupt
    controller (secondary).

    Signed-off-by: Baruch Siach
    Cc: David Brownell
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Baruch Siach
     

19 Jun, 2009

4 commits

  • PCA9556 is the software-compatible predecessor to the PCA9557, so add it
    to the supported I2C device ID table.

    Signed-off-by: Nate Case
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nate Case
     
  • On OpenFirmware platforms, it makes the most sense to get platform_data
    from the device tree. Make an attempt to translate OF node properties
    into platform_data struct before bailing out.

    Note that the implementation approach taken differs from other device
    drivers that make use of device tree information. This is because I2C
    chips are already registered automatically by of_i2c, so we can get by
    with a small translator function in the driver.

    [akpm@linux-foundation.org: coding-style fixes]
    [akpm@linux-foundation.org: kfree(NULL) is legal]
    Signed-off-by: Nate Case
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nate Case
     
  • The remove member of the spi_driver max7301_driver uses __devexit_p(), so
    the remove function itself should be marked with __devexit. Even more so
    considering the probe function is marked with __devinit.

    Signed-off-by: Mike Frysinger
    Acked-by: Juergen Beisert
    Cc: Dmitry Baryshkov
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mike Frysinger
     
  • Add support to the PCA953x driver to use the GPIOLIB naming facility for
    GPIOs.

    Signed-off-by: Daniel Silverstone
    Cc: Ben Gardner
    Cc: Jean Delvare
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Silverstone
     

21 May, 2009

1 commit


04 Apr, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)
    trivial: Update my email address
    trivial: NULL noise: drivers/mtd/tests/mtd_*test.c
    trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h
    trivial: Fix misspelling of "Celsius".
    trivial: remove unused variable 'path' in alloc_file()
    trivial: fix a pdlfush -> pdflush typo in comment
    trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL
    trivial: wusb: Storage class should be before const qualifier
    trivial: drivers/char/bsr.c: Storage class should be before const qualifier
    trivial: h8300: Storage class should be before const qualifier
    trivial: fix where cgroup documentation is not correctly referred to
    trivial: Give the right path in Documentation example
    trivial: MTD: remove EOL from MODULE_DESCRIPTION
    trivial: Fix typo in bio_split()'s documentation
    trivial: PWM: fix of #endif comment
    trivial: fix typos/grammar errors in Kconfig texts
    trivial: Fix misspelling of firmware
    trivial: cgroups: documentation typo and spelling corrections
    trivial: Update contact info for Jochen Hein
    trivial: fix typo "resgister" -> "register"
    ...

    Linus Torvalds
     

03 Apr, 2009

2 commits

  • We want to phase out the GPIO "autorequest" mechanism in gpiolib and
    require all callers to use gpio_request().

    - Update feature-removal-schedule
    - Update the documentation now
    - Convert the relevant pr_warning() in gpiolib to a WARN()
    so folk using this mechanism get a noisy stack dump

    Some drivers and board init code will probably need to change.
    Implementations not using gpiolib will still be fine; they are already
    required to implement gpio_{request,free}() stubs.

    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Allow GPIOs in GPIOLIB chips to be named. This name is then used when the
    GPIO is exported to sysfs, although it could be used elsewhere if deemed
    useful.

    Signed-off-by: Daniel Silverstone
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Silverstone
     

30 Mar, 2009

1 commit


25 Mar, 2009

1 commit


30 Jan, 2009

1 commit


16 Jan, 2009

1 commit

  • A number of drivers in drivers/gpio return -ENODEV when confronted with
    missing setup parameters such as the platform data. However, returning
    -ENODEV causes the driver layer to silently ignore the driver as it
    assumes the probe did not find anything and was only speculative.

    To make life easier to discern why a driver is not being attached, change
    to returning -EINVAL, which is a better description of the fact that the
    driver data was not valid.

    Also add a set of dev_dbg() statements to the error paths to provide an
    better explanation of the error as there may be more that one point in the
    driver.

    Signed-off-by: Ben Dooks
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     

07 Jan, 2009

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (60 commits)
    uio: make uio_info's name and version const
    UIO: Documentation for UIO ioport info handling
    UIO: Pass information about ioports to userspace (V2)
    UIO: uio_pdrv_genirq: allow custom irq_flags
    UIO: use pci_ioremap_bar() in drivers/uio
    arm: struct device - replace bus_id with dev_name(), dev_set_name()
    libata: struct device - replace bus_id with dev_name(), dev_set_name()
    avr: struct device - replace bus_id with dev_name(), dev_set_name()
    block: struct device - replace bus_id with dev_name(), dev_set_name()
    chris: struct device - replace bus_id with dev_name(), dev_set_name()
    dmi: struct device - replace bus_id with dev_name(), dev_set_name()
    gadget: struct device - replace bus_id with dev_name(), dev_set_name()
    gpio: struct device - replace bus_id with dev_name(), dev_set_name()
    gpu: struct device - replace bus_id with dev_name(), dev_set_name()
    hwmon: struct device - replace bus_id with dev_name(), dev_set_name()
    i2o: struct device - replace bus_id with dev_name(), dev_set_name()
    IA64: struct device - replace bus_id with dev_name(), dev_set_name()
    i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name()
    infiniband: struct device - replace bus_id with dev_name(), dev_set_name()
    ISDN: struct device - replace bus_id with dev_name(), dev_set_name()
    ...

    Linus Torvalds
     
  • Minor updates to the pca953x GPIO expander driver: handle several more
    compatible parts, and stop assuming that the I2C layer's return codes are
    garbage (that's now been fixed).

    Signed-off-by: David Brownell
    Cc: Eric Miao
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Provide a static debounce configuration mechanism for twl4030 GPIOs,
    replacing the previous dynamic one. The single user of that mechanism was
    for MMC card detect debouncing.

    Boards can provide a bitmask saying which GPIOs to debounce (30 msec).
    It's always enabled for pins with the MMC card-detect/VMMCx link active,
    so most boards won't need to set the debounce mask.

    This is a net code shrink, including runtime footprint.

    Signed-off-by: David Brownell
    Signed-off-by: Tony Lindgren
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

20 Nov, 2008

1 commit

  • There are already various drivers having bigger label than 12 bytes. Most
    of them fit well under 20 bytes but make column width exact so that
    oversized labels don't mess up output alignment.

    Signed-off-by: Jarkko Nikula
    Acked-by: David Brownell
    Cc: [2.6.26.x, 2.6.26.x, 2.6.27.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jarkko Nikula