Hi Wolfram, v7 implements the changes from your review plus some comments from David. I've moved the flush writeq patch before the HLC patch, because it is already needed there and seems quite trivial and I've added a new patch to disable the SMBUS QUICK support as discussed. This series for the Octeon i2c driver is an attempt to upstream some bug fixes and features that accumulated for some time. On top of the Octeon changes a i2c driver for the ThunderX SOC is added which uses the same functional block as the Octeon driver. Patches are on top of next-20160422 and were tested on OCTEON, OCTEON-78 and ThunderX. Changes to v6: - Fixed read_int kerneldoc - Removed udelay after write-int in recovery - Killed retries in recovery, use EAGAIN - Disable SMBUS QUICK and remove unneeded length check - Spell out enable/disable - Switch to wait_event_timeout - Removed superfluous status check in HLC write - Optimize wait-queue also for HLC - Use readq/writeq instead of __raw_* in some places - Add STAT_IDLE to status check (valid after a write) Changes to v5: - Switch to i2c recovery framework - Clean-up register access, introduce new helper functions - Fixed ready bit check in combined write - Fixed IFLG clear in hlc_enable - Removed complicated last phase logic, not needed when we send START for every message part Changes to v4: - Splitted the High-Level Controller patch into several patches - Reworded some commit messages Changes to v3: - Added more functionality flags for SMBUS - Removed both module parameters - Make xfer return also other errors than EGAIN - Return EPROTO on invalid SMBUS block length - Use devm_ioremap_resource - Added rename-only patch - Removed kerneldoc patch from series - Improved defines Changes to v2: - Split clenaup patch into several patches - Strictly moved functional changes to later patches - Fixed do-while checkpatch errors - Moved defines to the patches that use them - Use BIT_ULL macro - Split ThunderX patch into 2 patches Changes to v1: - Fixed compile error on x86_64 - Disabled thunderx driver on MIPS - Re-ordered some thunderx probe functions for readability - Fix missing of_irq.h and i2c-smbus.h includes - Use IS_ENABLED for CONFIG options Jan ------------------------------------------------- David Daney (3): i2c: octeon: Enable High-Level Controller i2c: octeon: Add support for cn78xx chips i2c: octeon: Add workaround for broken irqs on CN3860 Jan Glauber (10): i2c: octeon: Improve error status checking i2c: octeon: Use i2c recovery framework i2c: octeon: Remove I2C_FUNC_SMBUS_QUICK support dt-bindings: i2c: Add Octeon cn78xx TWSI i2c: octeon: Move read function before write i2c: octeon: Rename driver to prepare for split i2c: octeon: Split the driver into two parts i2c: thunderx: Add i2c driver for ThunderX SOC i2c: octeon,thunderx: Move register offsets to struct i2c: thunderx: Add smbus alert support Peter Swain (2): i2c: octeon: Add flush writeq helper function i2c: octeon: Improve performance if interrupt is early .../devicetree/bindings/i2c/i2c-octeon.txt | 6 + drivers/i2c/busses/Kconfig | 10 + drivers/i2c/busses/Makefile | 3 + drivers/i2c/busses/i2c-cavium.c | 799 +++++++++++++++++++++ drivers/i2c/busses/i2c-cavium.h | 214 ++++++ drivers/i2c/busses/i2c-octeon-core.c | 288 ++++++++ drivers/i2c/busses/i2c-octeon.c | 606 ---------------- drivers/i2c/busses/i2c-thunderx-core.c | 306 ++++++++ 8 files changed, 1626 insertions(+), 606 deletions(-) create mode 100644 drivers/i2c/busses/i2c-cavium.c create mode 100644 drivers/i2c/busses/i2c-cavium.h create mode 100644 drivers/i2c/busses/i2c-octeon-core.c delete mode 100644 drivers/i2c/busses/i2c-octeon.c create mode 100644 drivers/i2c/busses/i2c-thunderx-core.c -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html