20 Jul, 2007

2 commits

  • * 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6: (44 commits)
    i2c: Delete the i2c-isa pseudo bus driver
    hwmon: refuse to load abituguru driver on non-Abit boards
    hwmon: fix Abit Uguru3 driver detection on some motherboards
    hwmon/w83627ehf: Be quiet when no chip is found
    hwmon/w83627ehf: No need to initialize fan_min
    hwmon/w83627ehf: Export the thermal sensor types
    hwmon/w83627ehf: Enable VBAT monitoring
    hwmon/w83627ehf: Add support for the VID inputs
    hwmon/w83627ehf: Fix timing issues
    hwmon/w83627ehf: Add error messages for two error cases
    hwmon/w83627ehf: Convert to a platform driver
    hwmon/w83627ehf: Update the Kconfig entry
    make coretemp_device_remove() static
    hwmon: Add LM93 support
    hwmon: Improve the pwmN_enable documentation
    hwmon/smsc47b397: Don't report missing fans as spinning at 82 RPM
    hwmon: Add support for newer uGuru's
    hwmon/f71805f: Add temperature-tracking fan control mode
    hwmon/w83627ehf: Preserve speed reading when changing fan min
    hwmon: fix detection of abituguru volt inputs
    ...

    Manual fixup of trivial conflict in MAINTAINERS file

    Linus Torvalds
     
  • There are no users of i2c-isa left, so we can finally get rid of it.

    Signed-off-by: Jean Delvare

    Jean Delvare
     

12 Jul, 2007

3 commits

  • Let the drivers specify how many bytes they want to read with
    i2c_smbus_read_i2c_block_data(). So far, the block count was
    hard-coded to I2C_SMBUS_BLOCK_MAX (32), which did not make much sense.
    Many driver authors complained about this before, and I believe it's
    about time to fix it. Right now, authors have to do technically stupid
    things, such as individual byte reads or full-fledged I2C messaging,
    to work around the problem. We do not want to encourage that.

    I even found that some bus drivers (e.g. i2c-amd8111) already
    implemented I2C block read the "right" way, that is, they didn't
    follow the old, broken standard. The fact that it was never noticed
    before just shows how little i2c_smbus_read_i2c_block_data() was used,
    which isn't that surprising given how broken its prototype was so far.

    There are some obvious compatiblity considerations:
    * This changes the i2c_smbus_read_i2c_block_data() prototype. Users
    outside the kernel tree will notice at compilation time, and will
    have to update their code.
    * User-space has access to i2c_smbus_xfer() directly using i2c-dev, so
    the changed expectations would affect tools such as i2cdump. In order
    to preserve binary compatibility, we give I2C_SMBUS_I2C_BLOCK_DATA
    a new numeric value, and define I2C_SMBUS_I2C_BLOCK_BROKEN with the
    old numeric value. When i2c-dev receives a transaction with the
    old value, it can convert it to the new format on the fly.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Kill a sparse warning by un-nesting two container_of() calls.

    Signed-off-by: Mark M. Hoffman
    Signed-off-by: Jean Delvare

    Mark M. Hoffman
     
  • Generate I2C kerneldoc; fix various glitches and add "context" sections to
    that documentation. Most I2C and SMBus functions still have no kerneldoc.

    Let me suggest providing kerneldoc for all the i2c_smbus_*() functions as
    a small and mostly self-contained project for anyone so inclined. :)

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     

02 May, 2007

13 commits

  • Add back the i2c_smbus_read_block_data helper function, it is needed
    by the upcoming lm93 hardware monitoring driver and possibly others.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Make i2c_del_driver a void function, like all other driver removal
    functions. It always returned 0 even when errors occured, and nobody
    ever actually checked the return value anyway. And we cannot fail
    a module removal anyway.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Move the declaration of i2c-isa-only exported symbols to i2c-isa
    itself, that's the best way to ensure nobody will attempt to use them.
    Hopefully we'll get rid of the exports themselves soon anyway.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Add a new helper function to instantiate an i2c device. It is meant as a
    replacement for i2c_new_device() when you don't know for sure at which
    address your I2C/SMBus device lives. This happens frequently on TV
    adapters for example, you know there is a tuner chip on the bus, but
    depending on the exact board model and revision, it can live at different
    addresses. So, the new i2c_new_probed_device() function will probe the bus
    according to a list of addresses, and as soon as one of these addresses
    responds, it will call i2c_new_device() on that one address.

    This function will make it possible to port the old i2c drivers to the
    new model quickly.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • This adds a call, i2c_add_numbered_adapter(), registering an I2C adapter
    with a specific bus number and then creating I2C device nodes for any
    pre-declared devices on that bus. It builds on previous patches adding
    I2C probe() and remove() support, and that pre-declaration of devices.

    This completes the core support for "new style" I2C device drivers.
    Those follow the standard driver model for binding devices to drivers
    (using probe and remove methods) rather than a legacy model (where the
    driver tries to autoconfigure each bus, and registers devices itself).

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • This provides partial support for new-style I2C driver binding. It builds
    on "struct i2c_board_info" declarations that identify I2C devices on a given
    board. This is needed on systems with I2C devices that can't be fully probed
    and/or autoconfigured, such as many embedded Linux configurations where the
    way a given I2C device is wired may affect how it must be used.

    There are two models for declaring such devices:

    * LATE -- using a public function i2c_new_device(). This lets modules
    declare I2C devices found *AFTER* a given I2C adapter becomes available.

    For example, a PCI card could create adapters giving access to utility
    chips on that card, and this would be used to associate those chips with
    those adapters.

    * EARLY -- from arch_initcall() level code, using a non-exported function
    i2c_register_board_info(). This copies the declarations *BEFORE* such
    an i2c_adapter becomes available, arranging that i2c_new_device() will
    be called later when i2c-core registers the relevant i2c_adapter.

    For example, arch/.../.../board-*.c files would declare the I2C devices
    along with their platform data, and I2C devices would behave much like
    PNPACPI devices. (That is, both enumerate from board-specific tables.)

    To match the exported i2c_new_device(), the previously-private function
    i2c_unregister_device() is now exported.

    Pending later patches using these new APIs, this is effectively a NOP.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • More update for new style driver support: add a remove() method, and
    use it in the relevant code paths.

    Again, nothing will use this yet since there's nothing to create devices
    feeding this infrastructure.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • One of a series of I2C infrastructure updates to support enumeration using
    the standard Linux driver model.

    This patch updates probe() and associated hotplug/coldplug support, but
    not remove(). Nothing yet _uses_ it to create I2C devices, so those
    hotplug/coldplug mechanisms will be the only externally visible change.
    This patch will be an overall NOP since the I2C stack doesn't yet create
    clients/devices except as part of binding them to legacy drivers.

    Some code is moved earlier in the source code, helping group more of the
    per-device infrastructure in one place and simplifying handling per-device
    attributes.

    Terminology being adopted: "legacy drivers" create devices (i2c_client)
    themselves, while "new style" ones follow the driver model (the i2c_client
    is handed to the probe routine). It's an either/or thing; the two models
    don't mix, and drivers that try mixing them won't even be registered.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • Let the I2C bus drivers emulate the SMBus Block Read and Block Process
    Call transactions if they wish. This requires to define a new message
    flag, which i2c-core will use to let the underlying I2C bus driver
    know that the first received byte will specify the length of the read
    message.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Rename dev_to_i2c_adapter() as to_i2c_adapter(), since the previous
    syntax was a surprising and needless difference from normal naming
    conventions in Linux.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • This shrinks the size of "struct i2c_client" by 40 bytes:

    - Substantially shrinks the string used to identify the chip type
    - The "flags" don't need to be so big
    - Removes some internal padding

    It also adds kerneldoc for that struct, explaining how "name" is really a
    chip type identifier; it's otherwise potentially confusing.

    Because the I2C_NAME_SIZE symbol was abused for both i2c_client.name
    and for i2c_adapter.name, this needed to affect i2c_adapter too. The
    adapters which used that symbol now use the more-obviously-correct
    idiom of taking the size of that field.

    JD: Shorten i2c_adapter.name from 50 to 48 bytes while we're here, to
    avoid wasting space in padding.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • Kill i2c_adapter_driver as it doesn't make sense and it prevents
    further i2c-core cleanups. i2c_adapter devices are virtual devices
    (ex-class devices) and as such they don't need a driver.

    Signed-off-by: Jean Delvare

    Jean Delvare
     
  • Kill i2c_adapter.class_dev. Instead, set the class of i2c_adapter.dev
    to i2c_adapter_class, so that a symlink will be created for every
    i2c_adapter in /sys/class/i2c-adapter.

    The same change must be mirrored to i2c-isa as it duplicates some
    of the i2c-core functionalities.

    User-space tools and libraries might need some adjustments. In
    particular, libsensors from lm_sensors 2.10.3 or later is required for
    proper discovery of i2c adapter names after this change.

    Signed-off-by: Jean Delvare

    Jean Delvare
     

14 Feb, 2007

1 commit

  • Driver model updates for the I2C core:

    - Add new suspend(), resume(), and shutdown() methods. Use them in the
    standard driver model style; document them.

    - Minor doc updates to highlight zero-initialized fields in drivers, and
    the driver model accessors for "clientdata".

    If any i2c drivers were previously using the old suspend/resume calls
    in "struct driver", they were getting warning messages ... and will
    now no longer work. Other than that, this patch changes no behaviors;
    and it lets I2C drivers use conventional PM and shutdown support.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     

11 Dec, 2006

2 commits

  • Remove extraneous whitespace from various i2c headers and core files,
    like space-before-tab and whitespace at end of line.

    Signed-off-by: David Brownell
    Signed-off-by: Jean Delvare

    David Brownell
     
  • This patch adds the 'level' field into the i2c_adapter structure, which is
    used to represent the 'logical' level of nesting for the purposes of
    lockdep. This field is then used in the i2c_transfer() function, to
    acquire the per-adapter bus_lock with correct nesting level.

    Signed-off-by: Jiri Kosina
    Signed-off-by: Jean Delvare

    Jiri Kosina
     

27 Sep, 2006

2 commits


13 Jul, 2006

1 commit

  • Fix the value returned by the i2c-powermac's master_xfer method.
    It should return the number of messages processed successfully, but
    instead returns the number of data bytes in the first (and only)
    processed message.

    Also explicitly mention the master_xfer convention so that future
    implementations get it right directly.

    Signed-off-by: Jean Delvare
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     

23 Jun, 2006

1 commit


25 Apr, 2006

1 commit


24 Mar, 2006

1 commit


07 Feb, 2006

1 commit


06 Jan, 2006

9 commits


31 Oct, 2005

1 commit

  • I recently picked up my older work to remove unnecessary #includes of
    sched.h, starting from a patch by Dave Jones to not include sched.h
    from module.h. This reduces the number of indirect includes of sched.h
    by ~300. Another ~400 pointless direct includes can be removed after
    this disentangling (patch to follow later).
    However, quite a few indirect includes need to be fixed up for this.

    In order to feed the patches through -mm with as little disturbance as
    possible, I've split out the fixes I accumulated up to now (complete for
    i386 and x86_64, more archs to follow later) and post them before the real
    patch. This way this large part of the patch is kept simple with only
    adding #includes, and all hunks are independent of each other. So if any
    hunk rejects or gets in the way of other patches, just drop it. My scripts
    will pick it up again in the next round.

    Signed-off-by: Tim Schmielau
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

29 Oct, 2005

2 commits