summaryrefslogtreecommitdiffstats
path: root/drivers/i2c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Driver Core: add ability for class_for_each_device to start in middle of listGreg Kroah-Hartman2008-07-221-2/+4
| | | | | | | | | | | | | | | This mirrors the functionality that driver_for_each_device has as well. We add a start variable, and all callers of the function are fixed up at the same time. The block layer will be using this new functionality in a follow-on patch. Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* device create: i2c: convert device_create to device_create_drvdataGreg Kroah-Hartman2008-07-221-3/+3
| | | | | | | | device_create() is race-prone, so use the race-free device_create_drvdata() instead as device_create() is going away. Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* i2c: Convert the max6875 driver to a new-style i2c driverJean Delvare2008-07-161-71/+49
| | | | | | | | The new-style max6875 driver implements the optional detect() callback to cover the use cases of the legacy driver. I'm curious if anyone really needs this though, so it might be removed in the feature. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pca9539 driver to a new-style i2c driverJean Delvare2008-07-161-76/+33
| | | | | | | | | | | | | | The new-style pca9539 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pca953x. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pcf8575 driver to a new-style i2c driverJean Delvare2008-07-161-56/+40
| | | | | | | | | | | | | | The new-style pcf8575 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pcf857x. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pcf8574 driver to a new-style i2c driverJean Delvare2008-07-161-62/+46
| | | | | | | | | | | | | | The new-style pcf8574 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pcf857x. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pcf8591 driver to a new-style i2c driverJean Delvare2008-07-161-54/+40
| | | | | | | The new-style pcf8591 driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the eeprom driver to a new-style i2c driverJean Delvare2008-07-161-52/+40
| | | | | | | The new-style eeprom driver implements the optional detect() callback to cover the use cases of the legacy driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Clear i2c_adapter.dev on adapter removalJean Delvare2008-07-163-30/+32
| | | | | | | | | | | | | | | Clear i2c_adapter.dev on adapter removal. This makes it possible to re-add the adapter at a later point, which some drivers (i2c-amd756-s4882, i2c-nforce2-s4985) actually do. This fixes a bug reported by John Stultz here: http://lkml.org/lkml/2008/7/15/720 and by Ingo Molar there: http://lkml.org/lkml/2008/7/16/78 Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: John Stultz <johnstul@us.ibm.com> Cc: Ingo Molnar <mingo@elte.hu>
* Merge commit 'origin/master'Benjamin Herrenschmidt2008-07-1655-2067/+3537
|\ | | | | | | | | | | | | | | Manual merge of: arch/powerpc/Kconfig arch/powerpc/kernel/stacktrace.c arch/powerpc/mm/slice.c arch/ppc/kernel/smp.c
| * Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds2008-07-1555-2067/+3537
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: (56 commits) i2c: Add detection capability to new-style drivers i2c: Call client_unregister for new-style devices too i2c: Clean up old chip drivers i2c-ibm_iic: Register child nodes i2c: New-style EEPROM driver using device IDs i2c: Export the i2c_bus_type symbol i2c-au1550: Fix PM support i2c-dev: Delete empty detach_client callback i2c: Drop stray references to lm_sensors i2c: Check for ACPI resource conflicts i2c-ocores: basic PM support i2c-sibyte: SWARM I2C board initialization i2c-i801: Fix handling of error conditions i2c-i801: Rename local variable temp to status i2c-i801: Properly report bus arbitration loss i2c-i801: Remove verbose debugging messages i2c-algo-pcf: Drop unused struct members i2c-algo-pcf: Multi-master lost-arbitration improvement i2c: Deprecate the legacy gpio drivers i2c-pxa: Initialize early ...
| | * i2c: Add detection capability to new-style driversJean Delvare2008-07-141-11/+212
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a mechanism to let new-style i2c drivers optionally autodetect devices they would support on selected buses and ask i2c-core to instantiate them. This is a replacement for legacy i2c drivers, much cleaner. Where drivers had to implement both a legacy i2c_driver and a new-style i2c_driver so far, this mechanism makes it possible to get rid of the legacy i2c_driver and implement both enumerated and detected device support with just one (new-style) i2c_driver. Here is a quick conversion guide for these drivers, step by step: * Delete the legacy driver definition, registration and removal. Delete the attach_adapter and detach_client methods of the legacy driver. * Change the prototype of the legacy detect function from static int foo_detect(struct i2c_adapter *adapter, int address, int kind); to static int foo_detect(struct i2c_client *client, int kind, struct i2c_board_info *info); * Set the new-style driver detect callback to this new function, and set its address_data to &addr_data (addr_data is generally provided by I2C_CLIENT_INSMOD.) * Add the appropriate class to the new-style driver. This is typically the class the legacy attach_adapter method was checking for. Class checking is now mandatory (done by i2c-core.) See <linux/i2c.h> for the list of available classes. * Remove the i2c_client allocation and freeing from the detect function. A pre-allocated client is now handed to you by i2c-core, and is freed automatically. * Make the detect function fill the type field of the i2c_board_info structure it was passed as a parameter, and return 0, on success. If the detection fails, return -ENODEV. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Call client_unregister for new-style devices tooJean Delvare2008-07-141-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We call adapter->client_register for both legacy and new-style i2c devices, however we only call adapter->client_unregister for legacy drivers. This doesn't make much sense. Usually, drivers will undo in client_unregister what they did in client_register, so we should call neither or both for every given i2c device. In order to ease the transition from legacy to new-style devices, it seems preferable to actually call both. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: David Brownell <david-b@pacbell.net>
| | * i2c: Clean up old chip driversJean Delvare2008-07-145-61/+54
| | | | | | | | | | | | | | | | | | | | | | | | Clean up old i2c chip drivers: * Name the i2c_client "client" instead of "new_client". * Drop useless initializations to 0. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-ibm_iic: Register child nodesSean MacLennan2008-07-141-11/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch completes the conversion of the IBM IIC driver to an of-platform driver. It removes the index from the IBM IIC driver and makes it an unnumbered driver. It then calls of_register_i2c_devices to properly register all the child nodes in the DTS. Signed-off-by: Sean MacLennan <smaclennan@pikatech.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: New-style EEPROM driver using device IDsWolfram Sang2008-07-143-0/+610
| | | | | | | | | | | | | | | | | | | | | | | | Add a new-style driver for most I2C EEPROMs, giving sysfs read/write access to their data. Tested with various chips and clock rates. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Export the i2c_bus_type symbolJon Smirl2008-07-141-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Export the root of the i2c bus so that PowerPC device tree code can iterate over devices on the i2c bus. Signed-off-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-au1550: Fix PM supportManuel Lauss2008-07-141-55/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix driver power management: - suspend the PSC while driver is idle. - move PSC init/deinit to separate functions, as PSC must be initialized/shutdown on resume/suspend. Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-dev: Delete empty detach_client callbackJean Delvare2008-07-141-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Implementing detach_client is optional, so there is no point in an empty implementation. Likewise, i2c driver IDs are optional, and we don't need one. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Drop stray references to lm_sensorsJean Delvare2008-07-1415-40/+1
| | | | | | | | | | | | Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Check for ACPI resource conflictsJean Delvare2008-07-1413-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check for ACPI resource conflicts in i2c bus drivers. I've included all recent SMBus master drivers for PC hardware. I've voluntarily left out: * Drivers that don't run on PCs: they can't conflict with ACPI. * Bit-banged bus device drivers: it's very unlikely that ACPI would deal with such buses. Signed-off-by: Jean Delvare <jdelvare@suse.de>
| | * i2c-ocores: basic PM supportManuel Lauss2008-07-141-7/+35
| | | | | | | | | | | | | | | | | | | | | | | | Basic PM support: reinit the core on resume, disable it on suspend. Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net> Acked-by: Peter Korsgaard <jacmet@sunsite.dk> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-sibyte: SWARM I2C board initializationMaciej W. Rozycki2008-07-141-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The standard rtc-m41t80.c driver cannot be used with the SWARM as it is, because the board does not provide setup information for the I2C core. As a result the bus and the address to probe for the M41T80 chip is not known. Here is a set of changes that fix the problem: 1. swarm-i2c.c -- SWARM I2C board setup, currently for the M41T80 chip on the bus #1 only (there is a MAX6654 temperature sensor on the bus #0 which may be added in the future if we have a driver for that chip). 2. The i2c-sibyte.c BCM1250A SMBus controller driver now registers its buses as numbered so that board setup is correctly applied. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-i801: Fix handling of error conditionsJean Delvare2008-07-141-98/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the check of pre-transaction and post-transaction conditions to separate functions, and adjust them a bit. Having dedicated functions for that ensures that errors are handled in a consistent way. Bit HOST_BUSY of the status register is read-only, so writing to it is certainly not going to clear it. If this bit is set then we simply don't want to start the transaction, as it means that somebody else (ACPI, SMM?) is already using the controller. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-i801: Rename local variable temp to statusJean Delvare2008-07-141-33/+33
| | | | | | | | | | | | | | | | | | "temp" isn't a terribly well chosen name for a local variable. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-i801: Properly report bus arbitration lossJean Delvare2008-07-141-6/+4
| | | | | | | | | | | | | | | | | | | | | Bit BUS_ERR of the status register means that the ICH host controller lost the arbitration. Report this event as such. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-i801: Remove verbose debugging messagesJean Delvare2008-07-141-18/+0
| | | | | | | | | | | | | | | | | | | | | Dumping the register values before and after every transaction was useful during driver development but now it's only spamming the log. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-algo-pcf: Drop unused struct membersJean Delvare2008-07-141-2/+0
| | | | | | | | | | | | | | | | | | | | | Struct members udelay and timeout aren't used anywhere, so drop them. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Eric Brower <ebrower@gmail.com>
| | * i2c-algo-pcf: Multi-master lost-arbitration improvementEric Brower2008-07-141-17/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve lost-arbitration handling of PCF8584. This is necessary for support of a currently out-of-kernel driver for Sun Microsystems E250 environmental management; perhaps others. Signed-off-by: Eric Brower <ebrower@gmail.com> Acked-by: Dan Smolik <marvin@mydatex.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Deprecate the legacy gpio driversDavid Brownell2008-07-141-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The legacy pcf8574 and pcf8575 drivers should be avoided on systems using the new gpiolib code, and generally deprecated in the same way the legacy pca9539 driver is deprecated. Also, correct the pca9539 deprecation to match the current name of the preferred driver: pca953x, supporting several more chips. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-pxa: Initialize earlyUli Luckas2008-07-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Initialize the pxa i2c bus during subsystem initialization to make it available during driver initialization (e.g. display powerup for pxafb). Signed-off-by: Uli Luckas <u.luckas@road.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-ibm_iic: Enable driver for all PPC4xx variants in arch/powerpcStefan Roese2008-07-141-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable the IBM I2C driver for all PPC4xx variants by adding "ibm,iic" to the compatible list. This way all currently available arch/powerpc 4xx ports can make use of this driver without any changes. Additionally all "other" compatible entries are removed since they are not needed anymore. Currently all 4xx PPC's have the same compatible I2C macro. If at some time an incompatibility is detected we can take care of this with an additional property. Signed-off-by: Stefan Roese <sr@denx.de> Acked-by: Josh Boyer <jwboyer@linux.vnet.ibm.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-ibm_iic: Remove deprecated OCP style partStefan Roese2008-07-141-181/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | The deprecated OCP style driver part is used by the "old" arch/ppc platform. This platform is scheduled for removal in June/July this year. This patch now removes the OCP driver part from the IBM I2C driver. Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Simplify i2c_device_probeJean Delvare2008-07-141-7/+2
| | | | | | | | | | | | | | | | | | | | | i2c_driver.id_table is mandatory now, so we can simplify i2c_device_probe() a bit. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c/eeprom: Fall back to SMBus read word transactionsJean Delvare2008-07-141-20/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When I2C block reads are not supported by the underlying adapter, use SMBus read word transactions instead of consecutive byte reads. Reasons for this change are: * The consecutive byte read approach is not safe on multi-master buses. * While consecutive byte reads have less overhead if you only count the bytes on the bus, it takes more than twice as many transactions as with SMBus read word transactions, and each transaction has a cost: taking and releasing the adapter mutex, and for polling drivers, waiting for the transaction to complete. This change yields a significant performance boost at HZ=250 with EEPROMs on an Intel 82801 bus (basically twice as fast.) SMBus read word transactions are widely supported so I don't expect compatibility issues. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c/eeprom: Only probe buses with DDC or SPD classJean Delvare2008-07-141-0/+8
| | | | | | | | | | | | | | | | | | | | | The eeprom driver shouldn't probe i2c buses which don't want to be probed. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Let bus drivers add SPD to their classJean Delvare2008-07-1428-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let general purpose I2C/SMBus bus drivers add SPD to their class. Once this is done, we will be able to tell the eeprom driver to only probe for SPD EEPROMs and similar on these buses. Note that I took a conservative approach here, adding I2C_CLASS_SPD to many drivers that have no idea whether they can host SPD EEPROMs or not. This is to make sure that the eeprom driver doesn't stop probing buses where SPD EEPROMs or equivalent live. So, bus driver maintainers and users should feel free to remove the SPD class from drivers those buses never have SPD EEPROMs or they don't want the eeprom driver to bind to them. Likewise, feel free to add the SPD class to any bus driver I might have missed. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-cpm: BugfixesWolfram Sang2008-07-141-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bugfixes to the i2c-cpm driver - enable correct interrupts (I2CER_TXE instead of I2CER_BUSY) - replace forgotten iic with i2c - prefix debug-output on init with 0x and add frequency Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Jochen Friedrich <jochen@scram.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Add support for I2C bus on Freescale CPM1/CPM2 controllersJochen Friedrich2008-07-143-0/+756
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This driver uses the port of 2.4 code from Vitaly Bordug <vitb@kernel.crashing.org> and the actual algorithm used by the i2c driver of the DBox code on cvs.tuxboc.org from Felix Domke (tmbinc@gmx.net) and Gillem (htoa@gmx.net) converted to an of_platform_driver. Tested on CPM1 (MPC823 on dbox2 hardware) and CPM2 (MPC8272). Signed-off-by: Jochen Friedrich <jochen@scram.de> Tested-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Push ioctl BKL down into the i2c codeAlan Cox2008-07-141-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is part of the effort to get rid of the BKL. [JD: In fact i2c-dev doesn't need more locking than is already done for the other i2c drivers, so we can simply switch to unlocked_ioctl.] Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Add Intel SCH SMBus supportAlek Du2008-07-143-0/+347
| | | | | | | | | | | | | | | | | | | | | | | | New i2c bus driver for the Intel SCH chipsets (AF82US15W, AF82US15L, AF82UL11L). Signed-off-by: Alek Du <alek.du@intel.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Simplify i2c_del_driver()Jean Delvare2008-07-141-6/+4
| | | | | | | | | | | | | | | | | | i2c_del_driver() can be simplified a bit. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Use list_for_each_entry_safeMatthias Kaehlcke2008-07-141-8/+4
| | | | | | | | | | | | | | | | | | | | | Use list_for_each_entry_safe() in i2c_del_adapter() and i2c_del_driver(). Signed-off-by: Matthias Kaehlcke <matthias@kaehlcke.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-pca-platform: Fix error codeWolfram Sang2008-07-141-1/+1
| | | | | | | | | | | | | | | | | | | | | Fix errorcode to be more descriptive when ioremap fails. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-pca-algo: Fix error codeWolfram Sang2008-07-141-1/+1
| | | | | | | | | | | | | | | | | | | | | Give a more concrete error code, when the bus is not idle. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Consistently reject unsupported transactionsJean Delvare2008-07-1410-34/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | Many PC SMBus host controller drivers don't properly handle the case where they are requested to achieve a transaction they do not support. Update them so that the consistently print a warning message and return a single error value in this case. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-piix4: Various cleanups and minor fixesJean Delvare2008-07-141-26/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The i2c-piix4 driver was used recently as a model to write a new SMBus host controller driver and this made me realize that the code of this old driver wasn't exactly good. So, here are many cleanups and minor fixes to this driver, so that these minor mistakes aren't duplicated again: * Delete unused structure. * Delete needless forward function declaration. * Properly announce the SMBus host controller as we find it. * Spell it SMBus not SMB. * Return -EBUSY instead of -ENODEV when the I/O region is already in use. * Drop useless masks on the 7-bit address and the R/W bit. * Reject block transaction requests with an invalid block length. * Check and report block transaction replies with an invalid block length. * Delete a useless comment. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Bus drivers return -Errno not -1David Brownell2008-07-1415-148/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tighten error paths used by various i2c adapters (mostly x86) so they return real fault/errno codes instead of a "-1" (which is most often interpreted as "-EPERM"). Build tested, with eyeball review. One minor initial goal is to have adapters consistently return the code "-ENXIO" when addressing a device doesn't get an ACK response, at least in the probe paths where they are already good at stifling related logspam. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: i2c_use_client() defends against NULLDavid Brownell2008-07-141-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Defend the i2c refcount calls against NULL pointers, as is important (and conventional) for such calls. Note that none of the current callers of i2c_use_client() use its return value. [JD: I hate this but apparently all the other subsystems do it so...] Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Kerneldoc for most I/O callsDavid Brownell2008-07-141-9/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide kerneldoc for most of the I2C and SMBus I/O calls. Add a comment summarizing some fault reporting issues which affect the ability to provide clean fault reports through I2C master transfer calls. (Making it hard to precisely specify their return values...) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>