mbox

[PULL,v2,SRU,Xenial] Support IPMI system interface for Cavium ThunderX

Message ID CALdTtntHh-vZ7nVQkdOxUr4CXNvh0kUwYVazJtHeCr=MWdiseQ@mail.gmail.com
State New
Headers show

Pull-request

git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux thunderx-ipmi-x

Message

dann frazier May 19, 2017, 3:41 p.m. UTC
[This is the same text as the Yakkety PR, so you don't need to read it twice :)]

This corrects the LP Bug ID # from v1.

This is a set of cherry picks from upstream that introduces the
i2c-thunderx driver, which is required to access the IPMI system
interface (/dev/ipmi0) on Cavium ThunderX.  The series starts by
refactoring the i2c-octeon driver before introducing the new one since
they share common code. i2c-octeon is only applicable to Cavium
MIPS-based platforms, so it isn't a regression risk to Ubuntu
(-ENOPORT).

All of the changes necessary to get us in-sync with zesty were
isolated to these drivers, so I did a kitchen-sink backport. This
means it includes some low-priority changes (code cleanup/docs) but,
since this is effectively new code for us, that seemed like the
lowest-risk and most maintainable approach.

Tested on a Cavium CRB1S.

BugLink: https://bugs.launchpad.net/bugs/1688132

The following changes since commit 7b8ea7510aaa0aca1ddc4f7ba42cfb32d76a64f2:

  UBUNTU: Ubuntu-4.4.0-79.100 (2017-05-17 16:49:45 +0200)

are available in the git repository at:

  git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux thunderx-ipmi-x

for you to fetch changes up to 90d68803c88723bafdc46a925db066350e95a1c8:

  i2c: thunderx: Enable HWMON class probing (2017-05-19 09:17:07 -0600)

----------------------------------------------------------------
David Daney (3):
      i2c: octeon: Support I2C_M_RECV_LEN
      i2c: octeon: Enable High-Level Controller
      i2c: octeon: Add workaround for broken irqs on CN3860

Dmitry Bazhenov (2):
      i2c: octeon: Fix set SCL recovery function
      i2c: octeon: Avoid sending STOP during recovery

Jan Glauber (27):
      i2c: octeon: Cleanup kerneldoc comments
      i2c: octeon: Cleanup i2c-octeon driver
      i2c: octeon: Cleanup resource allocation code
      i2c: octeon: Increase retry default and use fixed timeout value
      i2c: octeon: Move set-clock and init-lowlevel upward
      i2c: octeon: Rename [read|write]_sw to reg_[read|write]
      i2c: octeon: Introduce helper functions for register access
      i2c: octeon: Remove superfluous check in octeon_i2c_test_iflg
      i2c: octeon: Improve error status checking
      i2c: octeon: Use i2c recovery framework
      i2c: octeon: Add support for cn78xx chips
      i2c: octeon: Remove zero-length message support
      i2c: octeon: Missing AAK flag in case of I2C_M_RECV_LEN
      i2c: octeon: Avoid printk after too long SMBUS message
      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: thunderx: Add SMBUS alert support
      i2c: octeon,thunderx: Move register offsets to struct
      i2c: octeon: Sort include files alphabetically
      i2c: octeon: Use booleon values for booleon variables
      i2c: octeon: thunderx: Add MAINTAINERS entry
      i2c: octeon: Fix high-level controller status check
      i2c: octeon: thunderx: TWSI software reset in recovery
      i2c: octeon: thunderx: Remove double-check after interrupt
      i2c: octeon: thunderx: Limit register access retries
      i2c: thunderx: Enable HWMON class probing

Peter Swain (2):
      i2c: octeon: Add flush writeq helper function
      i2c: octeon: Improve performance if interrupt is early

dann frazier (1):
      UBUNTU: [Config] CONFIG_I2C_THUNDERX=m

 .../devicetree/bindings/i2c/i2c-octeon.txt         |   6 +
 MAINTAINERS                                        |   8 +
 debian.master/config/annotations                   |   2 +
 debian.master/config/config.common.ubuntu          |   1 +
 drivers/i2c/busses/Kconfig                         |  11 +
 drivers/i2c/busses/Makefile                        |   3 +
 drivers/i2c/busses/i2c-octeon-core.c               | 791 +++++++++++++++++++++
 drivers/i2c/busses/i2c-octeon-core.h               | 222 ++++++
 drivers/i2c/busses/i2c-octeon-platdrv.c            | 288 ++++++++
 drivers/i2c/busses/i2c-octeon.c                    | 633 -----------------
 drivers/i2c/busses/i2c-thunderx-pcidrv.c           | 260 +++++++
 11 files changed, 1592 insertions(+), 633 deletions(-)
 create mode 100644 drivers/i2c/busses/i2c-octeon-core.c
 create mode 100644 drivers/i2c/busses/i2c-octeon-core.h
 create mode 100644 drivers/i2c/busses/i2c-octeon-platdrv.c
 delete mode 100644 drivers/i2c/busses/i2c-octeon.c
 create mode 100644 drivers/i2c/busses/i2c-thunderx-pcidrv.c

Comments

Colin Ian King May 23, 2017, 8:13 a.m. UTC | #1
On 19/05/17 16:41, dann frazier wrote:
> [This is the same text as the Yakkety PR, so you don't need to read it twice :)]
> 
> This corrects the LP Bug ID # from v1.
> 
> This is a set of cherry picks from upstream that introduces the
> i2c-thunderx driver, which is required to access the IPMI system
> interface (/dev/ipmi0) on Cavium ThunderX.  The series starts by
> refactoring the i2c-octeon driver before introducing the new one since
> they share common code. i2c-octeon is only applicable to Cavium
> MIPS-based platforms, so it isn't a regression risk to Ubuntu
> (-ENOPORT).
> 
> All of the changes necessary to get us in-sync with zesty were
> isolated to these drivers, so I did a kitchen-sink backport. This
> means it includes some low-priority changes (code cleanup/docs) but,
> since this is effectively new code for us, that seemed like the
> lowest-risk and most maintainable approach.
> 
> Tested on a Cavium CRB1S.
> 
> BugLink: https://bugs.launchpad.net/bugs/1688132
> 
> The following changes since commit 7b8ea7510aaa0aca1ddc4f7ba42cfb32d76a64f2:
> 
>   UBUNTU: Ubuntu-4.4.0-79.100 (2017-05-17 16:49:45 +0200)
> 
> are available in the git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux thunderx-ipmi-x
> 
> for you to fetch changes up to 90d68803c88723bafdc46a925db066350e95a1c8:
> 
>   i2c: thunderx: Enable HWMON class probing (2017-05-19 09:17:07 -0600)
> 
> ----------------------------------------------------------------
> David Daney (3):
>       i2c: octeon: Support I2C_M_RECV_LEN
>       i2c: octeon: Enable High-Level Controller
>       i2c: octeon: Add workaround for broken irqs on CN3860
> 
> Dmitry Bazhenov (2):
>       i2c: octeon: Fix set SCL recovery function
>       i2c: octeon: Avoid sending STOP during recovery
> 
> Jan Glauber (27):
>       i2c: octeon: Cleanup kerneldoc comments
>       i2c: octeon: Cleanup i2c-octeon driver
>       i2c: octeon: Cleanup resource allocation code
>       i2c: octeon: Increase retry default and use fixed timeout value
>       i2c: octeon: Move set-clock and init-lowlevel upward
>       i2c: octeon: Rename [read|write]_sw to reg_[read|write]
>       i2c: octeon: Introduce helper functions for register access
>       i2c: octeon: Remove superfluous check in octeon_i2c_test_iflg
>       i2c: octeon: Improve error status checking
>       i2c: octeon: Use i2c recovery framework
>       i2c: octeon: Add support for cn78xx chips
>       i2c: octeon: Remove zero-length message support
>       i2c: octeon: Missing AAK flag in case of I2C_M_RECV_LEN
>       i2c: octeon: Avoid printk after too long SMBUS message
>       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: thunderx: Add SMBUS alert support
>       i2c: octeon,thunderx: Move register offsets to struct
>       i2c: octeon: Sort include files alphabetically
>       i2c: octeon: Use booleon values for booleon variables
>       i2c: octeon: thunderx: Add MAINTAINERS entry
>       i2c: octeon: Fix high-level controller status check
>       i2c: octeon: thunderx: TWSI software reset in recovery
>       i2c: octeon: thunderx: Remove double-check after interrupt
>       i2c: octeon: thunderx: Limit register access retries
>       i2c: thunderx: Enable HWMON class probing
> 
> Peter Swain (2):
>       i2c: octeon: Add flush writeq helper function
>       i2c: octeon: Improve performance if interrupt is early
> 
> dann frazier (1):
>       UBUNTU: [Config] CONFIG_I2C_THUNDERX=m
> 
>  .../devicetree/bindings/i2c/i2c-octeon.txt         |   6 +
>  MAINTAINERS                                        |   8 +
>  debian.master/config/annotations                   |   2 +
>  debian.master/config/config.common.ubuntu          |   1 +
>  drivers/i2c/busses/Kconfig                         |  11 +
>  drivers/i2c/busses/Makefile                        |   3 +
>  drivers/i2c/busses/i2c-octeon-core.c               | 791 +++++++++++++++++++++
>  drivers/i2c/busses/i2c-octeon-core.h               | 222 ++++++
>  drivers/i2c/busses/i2c-octeon-platdrv.c            | 288 ++++++++
>  drivers/i2c/busses/i2c-octeon.c                    | 633 -----------------
>  drivers/i2c/busses/i2c-thunderx-pcidrv.c           | 260 +++++++
>  11 files changed, 1592 insertions(+), 633 deletions(-)
>  create mode 100644 drivers/i2c/busses/i2c-octeon-core.c
>  create mode 100644 drivers/i2c/busses/i2c-octeon-core.h
>  create mode 100644 drivers/i2c/busses/i2c-octeon-platdrv.c
>  delete mode 100644 drivers/i2c/busses/i2c-octeon.c
>  create mode 100644 drivers/i2c/busses/i2c-thunderx-pcidrv.c
> 
Limited regression risk, good test results. Thanks Dann.

Acked-by: Colin Ian King <colin.king@canonical.com>
Stefan Bader May 23, 2017, 8:29 a.m. UTC | #2

Thadeu Lima de Souza Cascardo May 31, 2017, 3:39 p.m. UTC | #3
Applied to xenial master-next branch.

Thanks.
Cascardo.