linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/3] Fix i2c bus hang on A0 version of the Armada XP SoCs
@ 2014-01-07 16:35 Gregory CLEMENT
  2014-01-07 16:35 ` [PATCH v4 1/3] ARM: mvebu: Add support to get the ID and the revision of a SoC Gregory CLEMENT
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Gregory CLEMENT @ 2014-01-07 16:35 UTC (permalink / raw)
  To: Wolfram Sang, linux-i2c-u79uwXL29TY76Z2rM5mHXA, Jason Cooper,
	Andrew Lunn, Gregory CLEMENT
  Cc: Thomas Petazzoni, Ezequiel Garcia, Sebastian Hesselbarth,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	stable-u79uwXL29TY76Z2rM5mHXA

Hi,

Eventually the 3rd version was not the last of the series fixing the
i2c bus hang on A0 version of the Armada XP SoCs. It occurred on the
early release of the OpenBlocks AX3-4 boards. Indeed the first
variants of Armada XP SoCs (A0 stepping) have issues related to the
i2c controller which prevent to use the offload mechanism and lead to
a kernel hang during boot.

I have also just realized that I didn't put i2c list and maintainer
with my 3rd version, it was a mistake and not done in purpose.

On Arnd request I moved the arch specific code outside the i2c
driver. This is now handle by the patch 2 and it create the
appropriate flag if needed.

The first patch add a mean to detect the SoCs version at run-time and
the second one use this feature in the driver.

Wolfram, I removed your acked-by on the 3rd patch as the code was
changed, could you check that you agree with it and it is the case
give your acked-by ?

These 3 patches should be applied on 3.13-rc and on stable kernel 3.12
as it fixes a regression introduce by the commit 930ab3d403ae "i2c:
mv64xxx: Add I2C Transaction Generator support".

The first patch could be latter be extend to also be used with dove,
kirkwood, orion5x and mv78x00 when there will be merged in mvebu.

Thanks,

Gregory

Changelog:
v3 -> v4:

- checked the offload-broken property instead of calling the
  mvebu_get_soc_id() function in the mv64xxx_of_config() function.

- added the second patch to manage the quirk and update the device
  node with the offload-broken if needed.

- removed the acked-by from Wolfram as the code have change in the 3rd
  patch

In mvebu-soc-id.c:
 - used EXPORT_SYMBOL_GPL instead of EXPORT_SYMBOL

 - used core_initcall instead of arch_initcall to be called earlier
   enough.

v2 -> v3:

- fixed typo in the comments added in i2c-mv64xxx.c

- used pr_fmt instead of %s __func__ in all the pr_* functions

- added a check on the pointer returned by of_get_next_child()

- added a return immediately after the 1st check to be able to get rid
  of indenting the entire function code inside the if { ... } block.

v1 -> v2:

- Changed the way to test the return of the function mvebu_get_soc_id
  in order to make it clearer.

- Removed the superfluous parentheses

- Added Wolfram's acked-by on the 2nd patch

Gregory CLEMENT (3):
  ARM: mvebu: Add support to get the ID and the revision of a SoC
  ARM: mvebu: Add quirk for i2c
  i2c: mv64xxx: Fix bus hang on A0 version of the Armada XP SoCs

 arch/arm/mach-mvebu/Makefile        |   2 +-
 arch/arm/mach-mvebu/armada-370-xp.c |  24 ++++++++
 arch/arm/mach-mvebu/mvebu-soc-id.c  | 120 ++++++++++++++++++++++++++++++++++++
 drivers/i2c/busses/i2c-mv64xxx.c    |   4 +-
 include/linux/mvebu-soc-id.h        |  32 ++++++++++
 5 files changed, 180 insertions(+), 2 deletions(-)
 create mode 100644 arch/arm/mach-mvebu/mvebu-soc-id.c
 create mode 100644 include/linux/mvebu-soc-id.h

-- 
1.8.1.2

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2014-01-09 14:39 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-07 16:35 [PATCH v4 0/3] Fix i2c bus hang on A0 version of the Armada XP SoCs Gregory CLEMENT
2014-01-07 16:35 ` [PATCH v4 1/3] ARM: mvebu: Add support to get the ID and the revision of a SoC Gregory CLEMENT
2014-01-08 12:55   ` Arnd Bergmann
2014-01-08 14:16     ` Gregory CLEMENT
     [not found] ` <1389112504-9931-1-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-07 16:35   ` [PATCH v4 2/3] ARM: mvebu: Add quirk for i2c Gregory CLEMENT
2014-01-07 18:38     ` Jason Gunthorpe
2014-01-07 23:06       ` Wolfram Sang
2014-01-08 10:15         ` Gregory CLEMENT
     [not found]           ` <52CD2529.6090206-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-08 11:29             ` Wolfram Sang
2014-01-08 13:03               ` Gregory CLEMENT
     [not found]                 ` <52CD4CBE.6010902-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-08 13:39                   ` Wolfram Sang
2014-01-08 13:45                     ` Arnd Bergmann
2014-01-08 14:10                       ` Gregory CLEMENT
2014-01-08 14:07                     ` Gregory CLEMENT
     [not found]                       ` <52CD5BBA.4080600-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-09 14:39                         ` Gregory CLEMENT
     [not found]     ` <1389112504-9931-3-git-send-email-gregory.clement-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-01-08 12:52       ` Arnd Bergmann
     [not found]         ` <201401081352.57361.arnd-r2nGTMty4D4@public.gmane.org>
2014-01-08 13:42           ` Gregory CLEMENT
2014-01-08 13:44             ` Arnd Bergmann
2014-01-07 16:35 ` [PATCH v4 3/3] i2c: mv64xxx: Fix bus hang on A0 version of the Armada XP SoCs Gregory CLEMENT
2014-01-07 22:17   ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).