1. 06 Oct, 2012 1 commit
    • Thomas Kavanagh's avatar
      i2c: algo: pca: Fix chip reset function for PCA9665 · a76e7c68
      Thomas Kavanagh authored
      The parameter passed to pca9665_reset is adap->data (which is bus driver
      specific), not i2c_algp_pca_data *adap. pca9665_reset expects it to be
      i2c_algp_pca_data *adap. All other wrappers from the algo call back to
      the bus driver, which knows to handle its custom data. Only pca9665_reset
      resides inside the algorithm code and does not know how to handle a custom
      data structure. This can result in a kernel crash.
      
      Fix by re-factoring pca_reset() from a macro to a function handling chip
      specific code, and only call adap->reset_chip() if the chip is not PCA9665.
      Signed-off-by: default avatarThomas Kavanagh <tkavanagh@juniper.net>
      Signed-off-by: default avatarGuenter Roeck <groeck@juniper.net>
      Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
      a76e7c68
  2. 28 Mar, 2009 1 commit
  3. 22 Apr, 2008 1 commit
    • Wolfram Sang's avatar
      i2c-algo-pca: Extend for future drivers · c01b0831
      Wolfram Sang authored
      The separation between algorithm and adapter was unsharp at places. This was
      partly hidden by the fact, that the ISA-driver allowed just one instance and
      had all private data in static variables. This patch makes neccessary
      preparations to add a platform driver on top of the algorithm, while still
      supporting ISA. Note: Due to lack of hardware, the ISA-driver could not be
      tested except that it builds.
      
      Concerning the core struct i2c_algo_pca_data:
      
      - A private data field was added, all hardware dependant data may go here.
        Similar to other algorithms, now a pointer to this data is passed to the
        adapter's functions. In order to make as less changes as possible to the
        ISA-driver, it leaves the private data empty and still only uses its static
        variables.
      
      - A "reset_chip" function pointer was added; such a functionality must come
        from the adapter, not the algorithm.
      
      - use a variable "i2c_clock" instead of a function pointer "get_clock",
        allowing for write access to a default in case a wrong value was supplied.
      
      In the algorithm-file:
      
      - move "i2c-pca-algo.h" into "linux/i2c-algo-pca.h"
      - now using per_instance timeout values (i2c_adap->timeout)
      - error messages specify the device, not only the driver name
      - restructure initialization to easily support "i2c_add_numbered_adapter"
      - drop "retries" and "own" (i2c address) as they were unused
      
      (The state-machine for I2C-communication was not touched.)
      
      In the ISA-driver:
      
      - adapt to new algorithm
      Signed-off-by: default avatarWolfram Sang <w.sang@pengutronix.de>
      Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
      c01b0831
  4. 10 Dec, 2006 1 commit
  5. 28 Oct, 2005 1 commit
  6. 16 Apr, 2005 1 commit
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4