Re: [BUG, bisect] i2c: designware: Move common probe code into i2c_dw_probe()

From: Jarkko Nikula
Date: Tue Nov 03 2015 - 02:29:05 EST


Hi

On 03.11.2015 06:02, Jeremiah Mahler wrote:
Jarkko, all,

Commit d80d134182ba5 introduced a bug which causes a cyapa based touch
pad on an Acer C720 Chromebook to become inoperative. This is present
in the latest linux-next (20151101). The patch description is repeated
below.

From d80d134182ba536ececab8d5fca50d779befc9a6 Mon Sep 17 00:00:00 2001
From: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Date: Mon, 12 Oct 2015 16:55:35 +0300
Subject: [PATCH] i2c: designware: Move common probe code into i2c_dw_probe()

There is some code duplication in i2c-designware-platdrv and
i2c-designware-pcidrv probe functions. What is even worse that duplication
requires i2c_dw_xfer(), i2c_dw_func() and i2c_dw_isr() i2c-designware-core
functions to be exported.

Therefore move common code into new i2c_dw_probe() and make functions above
local to i2c-designware-core.

While merging the code patch does following functional changes:

- I2C Adapter name will be "Synopsys DesignWare I2C adapter". Previously it
was used for platform and ACPI devices but PCI device used
"i2c-designware-pci".
- Using device name for interrupt name. Previous it was platform device name,
ACPI device name or "i2c-designware-pci".
- Error code from devm_request_irq() and i2c_add_numbered_adapter() will be
printed in case of error.

Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>
Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx>
---
drivers/i2c/busses/i2c-designware-core.c | 49 +++++++++++++++++++++++++----
drivers/i2c/busses/i2c-designware-core.h | 5 +--
drivers/i2c/busses/i2c-designware-pcidrv.c | 30 ++----------------
drivers/i2c/busses/i2c-designware-platdrv.c | 28 ++---------------
4 files changed, 49 insertions(+), 63 deletions(-)

Oh, I didn't notice adapter name was used drivers/platform/chrome/chromeos_laptop.c. Could you try does a patch below help?

============================ CUT HERE ============================
diff --git a/drivers/platform/chrome/chromeos_laptop.c b/drivers/platform/chrome/chromeos_laptop.c
index 02072749fff3..2b441e9ae593 100644
--- a/drivers/platform/chrome/chromeos_laptop.c
+++ b/drivers/platform/chrome/chromeos_laptop.c
@@ -47,8 +47,8 @@ static const char *i2c_adapter_names[] = {
"SMBus I801 adapter",
"i915 gmbus vga",
"i915 gmbus panel",
- "i2c-designware-pci",
- "i2c-designware-pci",
+ "Synopsys DesignWare I2C adapter",
+ "Synopsys DesignWare I2C adapter",
};

/* Keep this enum consistent with i2c_adapter_names */
============================ CUT HERE ============================

--
Jarkko
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/