summaryrefslogtreecommitdiffstats
path: root/drivers
AgeCommit message (Collapse)AuthorFilesLines
2009-12-09hwmon: (adt7475) Print device information on probeJean Delvare1-0/+18
Print the device name and revision at probe time, as well as a list of all optional features which are available. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Handle alternative pin functionsJean Delvare1-15/+99
The TACH4 pin can be used for other functions, so fan4 may not always be available. Likewise, the PWM2 pin can be used for ALERT output, in which case pwm2 is not available For the ADT7490, the +2.5 Vin pin may also be used for other functions, in which case in0 is not available. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Move sysfs files removal to a separate functionJean Delvare1-6/+10
Move sysfs files removal to a separate function. The code is common to the device probing error path and the standard device removal path. As it will grow with future driver development, this avoids code duplication. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Add support for the ADT7490Jean Delvare2-14/+105
Add support for the Analog Devices ADT7490 chip. This chip is largely compatible with the ADT7473 and ADT7475, with additional features. In particular, it has 6 voltage inputs instead of 2. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Improve device detectionJean Delvare1-4/+9
Check the value of register 0x3f as part of the device detection, to make it more robust. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Add missing static markerJean Delvare1-1/+1
adt7475_attr_group is used internally only and can thus be marked static. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Rework voltage inputs handlingJean Delvare1-35/+48
Rework the handling of voltage inputs to make it possible and easy to support more inputs. This will be needed for the upcoming ADT7490 support. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Implement pwm_use_point2_pwm_at_critJean Delvare1-0/+42
Implement the non-standard pwm_use_point2_pwm_at_crit sysfs attribute as the adt7473 driver did. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: "Mark M. Hoffman" <mhoffman@lightlink.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (adt7475) Add support for the ADT7473Jean Delvare3-12/+26
Add support for the ADT7473 to the adt7475 driver, and mark the adt7473 driver for removal. The ADT7473 and ADT7475 chips are almost the same chip and essentially compatible, so there's no point in having separate drivers for them. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: "Mark M. Hoffman" <mhoffman@lightlink.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Jordan Crouse <jordan@cosmicpenguin.net> Cc: "Darrick J. Wong" <djwong@us.ibm.com>
2009-12-09hwmon: (f71882fg) Add support for the f71889fg (version 2)Hans de Goede2-21/+71
This adds support for the Fintek f71889fg to the f71882fg driver, many thanks to Gerd v. Egidy for providing (remote) access to a machine which such an ic. Note that this bit of the patch: - val = SENSORS_LIMIT(val, 0, 255); + + if (data->type == f71889fg) + val = SENSORS_LIMIT(val, -128, 127); + else + val = SENSORS_LIMIT(val, 0, 127); Changes behaviour for already supported models, the new behaviour is correct as the already supported models have bit 7 of the involved registers fixed at 0, so the previous behaviour which allowed setting temp zone limits > 127 was not correct. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (f71882fg) Fix sysfs file removalHans de Goede1-25/+66
There is a bug in the old sysfs file removal, as it uses fxxxx_in_temp_attr to remove the in and temp sysfs attributes, but fxxxx_in_temp_attr has temp#_alarm, where as f71858fg_in_temp_attr has temp#_max_alarm, so the temp#_max_alarm attributes for the f71858fg never get removed. This patch fixes this by doing the sysfs removal exactly the same way as the creation instead of being (too) clever, this will also avoid similar bugs in the future. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (f71882fg) Cleanup sysfs attr creation 2/2Hans de Goede1-64/+52
This patch merges the f71882fg_auto_pwm_attr array into the fxxxx_fan_attr resp. fxxxx_auto_pwm_attr array, as the f71882fg_auto_pwm_attr array was merely extending these 2 with entries for a 4th fan, it also makes these 2 arrays 2 dimensional so that the rest of the code can choose to add attr for 3 or 4 fans without needing to know the nr of attr per fan. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (f71882fg) Cleanup sysfs attr creation 1/2Hans de Goede1-48/+89
This patch makes a number of cleanups to the sysfs attr creation in the f71882fg driver, this is a preparation patch for adding f71889fg support: * Add some comments to explain why some models need separate sysfs attr arrays for in / temp / fan / pwm * Rename a number of sysfs attr arrays to make their function clearer * Move the pwm#_auto_channels_temp attribute from the common to all models fan attr array to the per model auto mode pwm attr arrays, so that all the auto mode pwm attr are grouped together, and thus can be left out on models where we don't support auto pwm mode * Put fan_beep attr in their own array, so that only auto mode pwm attr remain in the per model pwm sysfs attr arrays. * Put the 4th special fan input for the f8000 in its own array, so that only auto mode pwm attr remain in the per model pwm sysfs attr arrays. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (thmc50) Stop using I2C_CLIENT_MODULE_PARMJean Delvare1-1/+5
The thmc50 driver is the last user of I2C_CLIENT_MODULE_PARM, and I would like to get rid of that macro. Signed-off-by: Jean Delvare <khali@linux-fr.org> Tested-by: Krzysztof Helt <krzysztof.h1@wp.pl>
2009-12-09hwmon: Add Freescale MC13783 ADC driverLuotao Fu3-0/+243
This driver provides support for the ADC integrated into the Freescale MC13783 PMIC. Signed-off-by: Luotao Fu <l.fu@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Hans de Goede <hdegoede@redhat.com> Cc: Eric Piel <eric.piel@tremplin-utc.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (w83791d) Remove experimental dependencyMarc Hulsman1-1/+1
The w83791d driver has been in the kernel for a while now, time to remove the EXPERIMENTAL dependency. Signed-off-by: Marc Hulsman <m.hulsman@tudelft.nl> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: Clean up detect functionsJean Delvare29-714/+393
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Corentin Labbe <corentin.labbe@geomatys.fr> Cc: "Mark M. Hoffman" <mhoffman@lightlink.com> Cc: Juerg Haefliger <juergh@gmail.com> Cc: Riku Voipio <riku.voipio@iki.fi> Acked-by: "Hans J. Koch" <hjk@linutronix.de> Cc: Rudolf Marek <r.marek@assembler.cz>
2009-12-09hwmon: (w83l785ts) Clean up detect functionJean Delvare1-47/+23
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (w83792d) Clean up detect functionJean Delvare1-43/+18
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (w83791d) Clean up detect functionJean Delvare1-42/+18
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Marc Hulsman <m.hulsman@tudelft.nl>
2009-12-09hwmon: (w83781d) Clean up detect functionJean Delvare1-78/+53
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (tmp401/tmp421) Clean up detect functionsJean Delvare2-53/+47
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Andre Prendel <andre.prendel@gmx.de>
2009-12-09hwmon: (lm90) Clean up detect functionJean Delvare1-132/+96
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (lm85) Clean up detect functionJean Delvare1-92/+65
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (lm83) Clean up detect functionJean Delvare1-55/+26
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (lm77) Clean up detect functionJean Delvare1-41/+39
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (adm1025) Clean up detect functionJean Delvare1-53/+20
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (adm1021) Clean up detect functionJean Delvare1-51/+25
As kind is now hard-coded to -1, there is room for code clean-ups. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: New driver for the National Semiconductor LM73Adrien Demarez3-0/+215
The National Semiconductor LM73 is a single temperature sensor, much like the famous LM75. Signed-off-by: Adrien Demarez <adrien.demarez@bolloretelecom.eu> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (w83627hf) Stop using globals for I/O port numbersJean Delvare1-43/+42
Stop using global variables REG and VAL for I/O port numbers. This is ugly and unsafe. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Rodolfo Giometti <giometti@linux.it>
2009-12-09hwmon: (w83627hf) Drop the force_addr module parameterJean Delvare1-11/+0
This module parameter is there to workaround broken BIOS. I'm not even sure if it was used in the past 5 years, and it gets in the way of converting the driver to the MFD infrastructure. So tell the users how they can do the same from user-space. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Rodolfo Giometti <giometti@linux.it>
2009-12-09hwmon: (it87) Check for fan2 and fan3 availabilityJean Delvare1-3/+24
The fan2 and fan3 input and output pins can be used as GPIOs. Check their function before exposing their sysfs attributes and accessing their registers. Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09hwmon: (it87) Verify the VID pin usageJean Delvare1-4/+16
The VID input pins can alternatively be used as GPIOs. Make sure we have at least 4 pins used for VID, otherwise don't bother reading and exposing VID. Signed-off-by: Jean Delvare <khali@linux-fr.org> Tested-by: Adam Nielsen <a.nielsen@shikadi.net>
2009-12-09hwmon: (s3c-hwmon) Fix build errorBen Dooks1-2/+2
The previous patch, commit be4c23c93c4828d36ac9e1a88410618a61676426 was from the wrong tree and thus broke the current build which had the channel configuration name changed. Fix the following build errors: drivers/hwmon/s3c-hwmon.c: In function 's3c_hwmon_probe': drivers/hwmon/s3c-hwmon.c:326: warning: initialization from incompatible pointer type drivers/hwmon/s3c-hwmon.c:331: error: dereferencing pointer to incomplete type drivers/hwmon/s3c-hwmon.c:336: error: dereferencing pointer to incomplete type Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
2009-12-09Merge branch 'bkl-drivers-for-linus' of ↵Linus Torvalds16-98/+52
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'bkl-drivers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: agp: Remove the BKL from agp_open inifiband: Remove BKL from ipath_open() mips: Remove BKL from tb0219 drivers: Remove BKL from scx200_gpio drivers: Remove BKL from pc8736x_gpio parisc: Remove BKL from eisa_eeprom rtc: Remove BKL from efirtc input: Remove BKL from hp_sdc_rtc hw_random: Remove BKL from core macintosh: Remove BKL from ans-lcd nvram: Drop the bkl from non-generic nvram_llseek() nvram: Drop the bkl from nvram_llseek() mem_class: Drop the bkl from memory_open() spi: Remove BKL from spidev_open drivers: Remove BKL from cs5535_gpio drivers: Remove BKL from misc_open
2009-12-08Merge branch 'timers-for-linus' of ↵Linus Torvalds1-0/+1
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: timers, init: Limit the number of per cpu calibration bootup messages posix-cpu-timers: optimize and document timer_create callback clockevents: Add missing include to pacify sparse x86: vmiclock: Fix printk format x86: Fix printk format due to variable type change sparc: fix printk for change of variable type clocksource/events: Fix fallout of generic code changes nohz: Allow 32-bit machines to sleep for more than 2.15 seconds nohz: Track last do_timer() cpu nohz: Prevent clocksource wrapping during idle nohz: Type cast printk argument mips: Use generic mult/shift factor calculation for clocks clocksource: Provide a generic mult/shift factor calculation clockevents: Use u32 for mult and shift factors nohz: Introduce arch_needs_cpu nohz: Reuse ktime in sub-functions of tick_check_idle. time: Remove xtime_cache time: Implement logarithmic time accumulation
2009-12-08Merge branch 'timers-for-linus-hpet' of ↵Linus Torvalds2-4/+92
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'timers-for-linus-hpet' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: hpet: Make WARN_ON understandable x86: arch specific support for remapping HPET MSIs intr-remap: generic support for remapping HPET MSIs x86, hpet: Simplify the HPET code x86, hpet: Disable per-cpu hpet timer if ARAT is supported
2009-12-09i2c-pnx: Map I2C adapter number to platform ID numberKevin Wells1-1/+2
Map I2C adapter number to platform ID number Signed-off-by: Kevin Wells <kevin.wells@nxp.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-omap: OMAP3: PM: (re)init for every transfer to support off-modeRajendra Nayak1-23/+41
Because of OMAP off-mode, powerdomain can go off when I2C is idle. Save enough state, and do a re-init for each transfer. Additional save/restore state added by Jagadeesh Bhaskar Pakaravoor (SYSC_REG) and Aaro Koskinen (wakeup sources.) Also, The OMAP3430 TRM states: "During active mode (I2Ci.I2C_CON[15] I2C_EN bit is set to 1), make no changes to the I2Ci.I2C_SCLL and I2Ci.I2C_SCLH registers. Changes may result in unpredictable behavior." Hence, the I2C_EN bit should be clearer when modifying these registers. Please note that clearing the entire I2C_CON register to disable the I2C module is safe, because the I2C_CON register is re-configured for each transfer. Signed-off-by: Jouni Hogander <jouni.hogander@nokia.com> Signed-off-by: Rajendra Nayak <rnayak@ti.com> Cc: Jagadeesh Bhaskar Pakaravoor <j-pakaravoor@ti.com> Cc: Aaro Koskinen <aaro.koskinen@nokia.com> Cc: Jon Hunter <jon-hunter@ti.com> Cc: Hu Tao <taohu@motorola.com> Cc: Xiaolong Chen <A21785@motorola.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: i2c_dw_handle_tx_abort: Use dev_dbg() for NOACK casesShinya Kuribayashi1-2/+7
In the case of no-ACKs, we don't want to see dev_err() messages in the console, because some utilities like i2c-tools are capable of printing decorated console output. This patch will ease such situations. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: Cosmetic cleanupsShinya Kuribayashi1-13/+14
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: Tx abort cleanupsShinya Kuribayashi1-7/+40
* ABRT_MASTER_DIS: Fix a typo. * i2c_dw_handle_tx_abort: Return an appropriate error number depending on abort_source. * i2c_dw_xfer: Add a missing abort_source initialization. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: Skip RX_FULL and TX_EMPTY bits on tx abort errorsShinya Kuribayashi1-0/+8
Suppose TX_ABRT occurs in the middle of processing i2c_msg msgs[], and a STOP condition has already been generated on the bus. In this case, subsequent i2c_dw_xfer_msg() might initiate a new and unnecessary I2C transaction, which we'd have to avoid. Furthermore, anytime TX_ABRT is set, the contents of tx/rx buffers are flushed, so we don't have to process RX_FULL and TX_EMPTY. Disable interrupts, and skip them. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: i2c_dw_xfer_msg: Fix error handling proceduresShinya Kuribayashi1-4/+11
Current error handling procedures are not good in two respects: * Forgot to mark dev->cmd_complete as "completed" on errors Once an I2C transaction is initiated, wait_for_completion_ interruptible_timeout() waits for dev->cmd_complete to be completed. We have to take care of it whenever an error is detected, otherwise we will have a needless HZ timeout. * Forgot to disable interrupts In the previous patch, interrupt mask operations have been changed. We don't disable interrupts at the end of the interrupt handler any more, and try to keep RX_FULL (and TX_EMPTY if required) enabled during the transaction so that we can send longer data than the size of Tx/Rx FIFO. If an error is detected, we need to disable interrupts before quitting current transaction. We can work around above points using dev->msg_err effectively. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: Disable TX_EMPTY when all i2c_msg msgs has been processedShinya Kuribayashi1-3/+8
Currently we disable TX_EMPTY interrupt when buf_len is zero, but this is wrong. (buf_len == 0) means that all transmit data in the current i2c_msg message has been sent out, but that doesn't necessarily mean all i2c_msg messages have been processed. TX_EMPTY interrupt is used as the driving force of DW I2C transactions, so we need to keep it enabled as long as i2c_msg messages are available. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: Process all i2c_msg messages in the interrupt handlerShinya Kuribayashi1-9/+17
Currently we process the first i2c_dw_xfer_msg() in i2c_dw_xfer(), but in this case there is a possibility to be interrupted by certain interrupts. As described before in this patchset, we need to keep providing new transmit data within a given time period, otherwise Tx FIFO underrun takes place and STOP condition will be generated on the bus, even if we have more bytes to be written. In order to exclude all such possibilities, change TX_EMPTY interrupt usage as below: * DW_IC_INTR_DEFAULT_MASK: Define a default interrupt mask set, and put TX_EMPTY there. * i2c_dw_xfer_init: Enable DW_IC_INTR_DEFAULT_MASK prior to initiating a new I2C transaction. The first TX_EMPTY will be triggered shortly. With the help of it, we can make the first call to i2c_dw_xfer_msg() in the interrupt handler. * i2c_dw_xfer_msg: Fixup intr_mask operation accordingly. Make sure that TX_EMPTY operations need to be reversed. * request_irq: Set IRQF_DISABLED so that we could load transmit data into Tx FIFO without being distracted by other interrupts. * Remove i2c_dw_xfer_msg() in i2c_dw_xfer(). Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: i2c_dw_read: Remove redundant target address checkerShinya Kuribayashi1-5/+0
I2c_dw_xfer_msg() also has the same target address inconsistency check, and furthermore it checks across all i2c_msg messages, while i2c_dw_read() walks through i2c_msg messages only with_ I2C_M_RD flag. That is, target address check in i2c_dw_read() is redundant and useless. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: i2c_dw_func: Set I2C_FUNC_SMBUS_foo bitsShinya Kuribayashi1-1/+6
Set proper I2C_FUNC_SMBUS_* bits so that the driver could be used with some utilities requiring SMBus functionalities, such as i2c-tools. Note that DW I2C core doesn't support I2C_FUNC_SMBUS_QUICK, as it's not capable of zero-length data transactions. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: Initialize byte count variables just prior to being usedShinya Kuribayashi1-3/+7
As the driver and hardware always process the given data in parallel, then it would be better to initialize tx_limit, rx_limit and rx_valid variables just prior to being used. This will help us to send / receive as much data as possible. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Acked-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-12-09i2c-designware: i2c_dw_xfer_msg: Introduce a local "buf" pointerShinya Kuribayashi1-3/+4
While we have a local variable "buf_len" for dev->tx_buf_len, we don't have such local variable for dev->tx_buf pointer. While "buf_len" is restored at first then updated when we start processing a new i2c_msg (determined by STATUS_WRITE_IN_PROGRESS flag), ->tx_buf is different. Such inconsistency makes the code slightly hard to follow. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Acked-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Ben Dooks <ben-linux@fluff.org>