Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1261185 > unrolled thread

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

Started byJeremiah Mahler <jmmahler@gmail.com>
First post2015-11-03 05:10 +0100
Last post2015-11-03 19:20 +0100
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [BUG, bisect] i2c: designware: Move common probe code into  i2c_dw_probe() Jeremiah Mahler <jmmahler@gmail.com> - 2015-11-03 05:10 +0100
    Re: [BUG, bisect] i2c: designware: Move common probe code into i2c_dw_probe() Jarkko Nikula <jarkko.nikula@linux.intel.com> - 2015-11-03 08:30 +0100
      Re: [BUG, bisect] i2c: designware: Move common probe code into  i2c_dw_probe() Jeremiah Mahler <jmmahler@gmail.com> - 2015-11-03 19:20 +0100

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

FromJeremiah Mahler <jmmahler@gmail.com>
Date2015-11-03 05:10 +0100
Subject[BUG, bisect] i2c: designware: Move common probe code into i2c_dw_probe()
Message-ID<qqB50-66d-1@gated-at.bofh.it>
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@linux.intel.com>
  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@linux.intel.com>
  Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
  ---
   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(-)

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

[toc] | [next] | [standalone]


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

FromJarkko Nikula <jarkko.nikula@linux.intel.com>
Date2015-11-03 08:30 +0100
SubjectRe: [BUG, bisect] i2c: designware: Move common probe code into i2c_dw_probe()
Message-ID<qqEcy-83d-13@gated-at.bofh.it>
In reply to#1261185
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@linux.intel.com>
>    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@linux.intel.com>
>    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
>    ---
>     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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1261778

FromJeremiah Mahler <jmmahler@gmail.com>
Date2015-11-03 19:20 +0100
Message-ID<qqOlA-6kC-29@gated-at.bofh.it>
In reply to#1261250
Jarkko,

On Tue, Nov 03, 2015 at 09:28:55AM +0200, Jarkko Nikula wrote:
> 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.
> >
[...]
> 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
> --

Yes, that change fixes the problem.  Thanks for the quick fix.

Tested-by: Jeremiah Mahler <jmmahler@gmail.com>

So the find_i2c_adapter_num function was looking for
"i2c-designware-pci" but it should have been looking for
"Synopsys DesignWare I2C adapter".  Where does this bus name
come from, is it read from the device itself?

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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web