25 Mar, 2011

2 commits


23 Feb, 2011

1 commit

  • irq_chip->irq_mask/unmask are called with interrupts disabled and
    irq_desc->lock held. So we cannot access i2c from this context. That's
    what irq_bus_sync_unlock() is for.

    Store the masked information in the chip data structure and update the
    i2c bus from the irq_bus_sync_unlock() callback.

    This does not need a while(pending) loop because the update to this is
    always serialized via the bus lock, so we never have more than one pin
    update pending.

    Signed-off-by: Thomas Gleixner
    Cc: Andrew Morton
    Cc: Gregory Bean
    Cc: Jean Delvare
    Cc: Lennert Buytenhek
    Signed-off-by: Grant Likely

    Thomas Gleixner
     

14 Jan, 2011

1 commit


10 Sep, 2010

1 commit

  • Replace the arbitrary software-reset call from the device-probe
    method, because:

    - It is defective. To work correctly, it should be two byte writes,
    not a single word write. As it stands, it does nothing.

    - Some devices with sx150x expanders installed have their NRESET pins
    ganged on the same line, so resetting one causes the others to reset -
    not a nice thing to do arbitrarily!

    - The probe, usually taking place at boot, implies a recent hard-reset,
    so a software reset at this point is just a waste of energy anyway.

    Therefore, make it optional, defaulting to off, as this will match the
    common case of probing at powerup and also matches the current broken
    no-op behavior.

    Signed-off-by: Gregory Bean
    Reviewed-by: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gregory Bean
     

11 Aug, 2010

1 commit