11 Nov, 2016

1 commit


08 Sep, 2016

1 commit


24 Jul, 2016

2 commits


17 Jun, 2016

1 commit

  • SMBus Host Notify allows a slave device to act as a master on a bus to
    notify the host of an interrupt. On Intel chipsets, the functionality
    is directly implemented in the firmware. We just need to export a
    function to call .alert() on the proper device driver.

    i2c_handle_smbus_host_notify() behaves like i2c_handle_smbus_alert().
    When called, it schedules a task that will be able to sleep to go through
    the list of devices attached to the adapter.

    The current implementation allows one Host Notification to be scheduled
    while an other is running.

    Tested-by: Andrew Duggan
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Wolfram Sang

    Benjamin Tissoires
     

05 May, 2016

4 commits

  • The root i2c adapter lock is then no longer held by the i2c mux during
    accesses behind the i2c gate, and such accesses need to take that lock
    just like any other ordinary i2c accesses do.

    So, declare the i2c gate mux-locked, and zap the regmap overrides
    that makes the i2c accesses unlocked and use plain old regmap
    accesses. This also removes the need for the regmap wrappers used by
    rtl2832_sdr, so deconvolute the code further and provide the regmap
    handle directly instead of the wrapper functions.

    Tested-by: Antti Palosaari
    Signed-off-by: Peter Rosin
    Signed-off-by: Wolfram Sang

    Peter Rosin
     
  • The root i2c adapter lock is then no longer held by the i2c mux during
    accesses behind the i2c gate, and such accesses need to take that lock
    just like any other ordinary i2c accesses do.

    So, declare the i2c gate mux-locked, and zap the code that makes the
    i2c accesses unlocked. But add a mutex so that firmware commands are
    still serialized.

    Signed-off-by: Antti Palosaari
    Signed-off-by: Peter Rosin
    Signed-off-by: Wolfram Sang

    Antti Palosaari
     
  • The root i2c adapter lock is then no longer held by the i2c mux during
    accesses behind the i2c gate, and such accesses need to take that lock
    just like any other ordinary i2c accesses do.

    So, declare the i2c gate mux-locked, and zap the code that makes the
    unlocked i2c accesses and just use ordinary regmap_write accesses.

    This also happens to fix the deadlock described in
    http://patchwork.ozlabs.org/patch/584776/ authored by
    Adriana Reus and submitted by
    Daniel Baluta

    ----------8mlock) i2c_transfer
    | |
    i2c transaction i2c adapter lock
    | |
    i2c adapter lock i2c_mux_master_xfer
    |
    inv_mpu6050_select_bypass
    |
    mutex_lock(&indio_dev->mlock)

    When we operate on an mpu sensor the order of locking is mpu lock
    followed by the i2c adapter lock. However, when we operate the auxiliary
    sensor the order of locking is the other way around.

    ...
    ----------8
    Acked-by: Daniel Baluta
    Tested-by: Crestez Dan Leonard
    Signed-off-by: Peter Rosin
    Signed-off-by: Wolfram Sang

    Peter Rosin
     
  • Signed-off-by: Peter Rosin
    Signed-off-by: Wolfram Sang

    Peter Rosin
     

11 Feb, 2016

1 commit


20 Nov, 2015

1 commit


26 Oct, 2015

1 commit


24 Aug, 2015

1 commit


10 Aug, 2015

1 commit

  • Add support for VCT-jig parallel port I2C adapter to i2c-parport.

    The adapter schematic can be found here (in the RAR file):
    http://remont-aud.net/shop/22/desc/vct-jig-komplekt-dlja-samostojatelnoj-sborki

    Signed-off-by: Ondrej Zary
    Reviewed-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Ondrej Zary
     

26 Jun, 2015

1 commit

  • Pull i2c updates from Wolfram Sang:
    "Highlights:

    - new drivers for Mediatek I2C, APM X-Gene, Broadcom Settop
    - major updates to at91, davinci
    - bugfixes to the mux infrastructure when dealing with the new quirk
    mechanism
    - more users for the bus recovery feature
    - further improvements to the slave framework

    Plus the usual bunch of smaller driver and core improvements and
    fixes.

    There is one patch removing old code from an ARM platform. This has
    been acked by the sh_mobile maintainer Simon Horman"

    * 'i2c/for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (48 commits)
    i2c: busses: i2c-bcm2835: limits cdiv to allowed values
    i2c: sh_mobile: use proper type for timeout
    i2c: sh_mobile: use adapter default for timeout
    i2c: rcar: use proper type for timeout
    i2c: rcar: use adapter default for timeout
    i2c: designware: Make sure the device is suspended before disabling runtime PM
    i2c: tegra: apply size limit quirk
    i2c: tegra: don't advertise SMBUS_QUICK
    i2c: octeon: remove unused signal handling
    i2c: davinci: Optimize SCL generation
    i2c: mux: pca954x: Use __i2c_transfer because of quirks
    i2c: mux: Use __i2c_transfer() instead of calling parent's master_xfer()
    i2c: use parent adapter quirks in mux
    i2c: bcm2835: clear reserved bits in S-Register
    ARM: shmobile: r8a7740: remove I2C errata handling
    i2c: sh_mobile: add errata workaround
    i2c: at91: fix code checker warnings
    i2c: busses: xgene-slimpro: fix incorrect __init declation for probe
    i2c: davinci: Avoid sending to own address
    i2c: davinci: Refactor i2c_davinci_wait_bus_not_busy()
    ...

    Linus Torvalds
     

17 Jun, 2015

1 commit


01 Jun, 2015

1 commit


27 Mar, 2015

2 commits


19 Feb, 2015

1 commit


05 Dec, 2014

1 commit


13 Nov, 2014

1 commit


16 Oct, 2014

1 commit


08 Sep, 2014

1 commit

  • The example code provided with the i2c device interface documentation
    won't compile since it uses the reserved word "register" to name a
    variable.

    The compiler fails with this error message:

    error: expected identifier or '(' before '=' token
    __u8 register = 0x20; /* Device register to access */
    ^

    Rename the variable "register" to simply "reg" in the example code.

    Another couple of typos has been fixed as well.
    [Change "! =" to "!=".]

    Signed-off-by: Jose Alarcon Roldan
    Signed-off-by: Randy Dunlap
    Acked-by: Wolfram Sang
    Signed-off-by: Linus Torvalds

    Jose Manuel Alarcon Roldan
     

18 Jul, 2014

3 commits

  • Signed-off-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Jean Delvare
     
  • Some chips implement banked register ranges. This allows implementing
    more registers than the limited 8-bit address space originally allows.
    In order to access a register on these chips, you must first select
    the proper bank. Add support for this mechanism to the i2c-stub driver
    so that such chips can be emulated. All the bank settings are passed
    as module parameters.

    Signed-off-by: Jean Delvare
    Tested-by: Guenter Roeck
    Signed-off-by: Wolfram Sang

    Jean Delvare
     
  • SMBus block commands are different to I2C block commands since
    the returned data is not normally accessible with byte or word
    commands on other command offsets. Add linked list of 'block'
    commands to support those commands.

    Access mechanism is quite simple: Block commands must be written
    before they can be read. Subsequent writes can be partial. Block
    read commands always return the number of bytes associated with
    the longest previous write.

    Signed-off-by: Guenter Roeck
    Reviewed-by: Jean Delvare
    Signed-off-by: Wolfram Sang

    Guenter Roeck
     

06 Apr, 2014

1 commit


12 Mar, 2014

1 commit


10 Mar, 2014

1 commit


16 Feb, 2014

2 commits


30 Jan, 2014

3 commits


25 Jan, 2014

1 commit


10 Jan, 2014

1 commit

  • Documentation/i2c/fault-codes illustrates EINVAL error code
    as follows:

    "One example would be a driver trying an SMBus Block Write
    with block size outside the range of 1-32 bytes."

    However, the actual implementation of i2c subsystem truncates
    data length to be 32 bytes.
    Hence this example cannot happen anymore, and since it's obsolete,
    let's simply remove it from Documentation/i2c/fault-codes.

    Signed-off-by: Helia Correia
    Signed-off-by: Wolfram Sang

    Helia Correia
     

15 Nov, 2013

1 commit


07 Sep, 2013

1 commit

  • Pull trivial tree from Jiri Kosina:
    "The usual trivial updates all over the tree -- mostly typo fixes and
    documentation updates"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (52 commits)
    doc: Documentation/cputopology.txt fix typo
    treewide: Convert retrun typos to return
    Fix comment typo for init_cma_reserved_pageblock
    Documentation/trace: Correcting and extending tracepoint documentation
    mm/hotplug: fix a typo in Documentation/memory-hotplug.txt
    power: Documentation: Update s2ram link
    doc: fix a typo in Documentation/00-INDEX
    Documentation/printk-formats.txt: No casts needed for u64/s64
    doc: Fix typo "is is" in Documentations
    treewide: Fix printks with 0x%#
    zram: doc fixes
    Documentation/kmemcheck: update kmemcheck documentation
    doc: documentation/hwspinlock.txt fix typo
    PM / Hibernate: add section for resume options
    doc: filesystems : Fix typo in Documentations/filesystems
    scsi/megaraid fixed several typos in comments
    ppc: init_32: Fix error typo "CONFIG_START_KERNEL"
    treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks
    page_isolation: Fix a comment typo in test_pages_isolated()
    doc: fix a typo about irq affinity
    ...

    Linus Torvalds
     

20 Aug, 2013

1 commit