Skip to contentSkip to conversation

drivers/hwmon: OCC hwmon driver restructuring

RFC In review [email protected] 2 participants 2 messages Oct 11, 2016 – Oct 12, 2016

lore
Share & tools
lore
#0 lore raw

v2 cover drivers/hwmon: OCC hwmon driver restructuring

From: "Edward A. James" <[email protected]>

This patchset is provided to refactor the Power8 OCC hwmon driver. There are a number of issues with the existing driver. Firstly, i2c access was embedded throughout the driver. Secondly, there is no way to easily add different versions of the OCC.

This patchset addresses the first issue by abstracting the bus transfer protocol into a modular structure. In this way, any low level transfer method may be easily implemented.

The second issue is addressed by separating the "version specific" code for the OCC and the common hwmon code. This task is not yet complete, but the general structure is in place. Ultimately, different OCC versions could be probed up using the device tree.

Patch 1: "drivers/hwmon: Move OCC driver to occ directory"
- Move the existing OCC hwmon driver to it's own directory.
- Edit makefiles and Kconfig accordingly to preserve the build.

Patch 2: "drivers/hwmon: Isolate bus transfer protocol"
- Copy i2c related code into occ_i2c.c and simplify.
- Copy common platform code into occ.c; more functions can be placed here later.
- Change core functions to accept OCC driver data parameter instead of device pointer.

Edward A. James (2):
drivers/hwmon: Move OCC driver to occ directory
drivers/hwmon: Isolate bus transfer protocol

 drivers/hwmon/Kconfig          |   13 +-
 drivers/hwmon/Makefile         |    2 +-
 drivers/hwmon/occ/Kconfig      |   15 +
 drivers/hwmon/occ/Makefile     |    1 +
 drivers/hwmon/occ/occ.c        |  127 ++++
 drivers/hwmon/occ/occ.h        |   47 ++
 drivers/hwmon/occ/occ_i2c.c    |  150 +++++
 drivers/hwmon/occ/power8_occ.c | 1055 +++++++++++++++++++++++++++++++++
 drivers/hwmon/occ/power8_occ.h |   25 +
 drivers/hwmon/power8_occ_i2c.c | 1254 ----------------------------------------
 10 files changed, 1422 insertions(+), 1267 deletions(-)
 create mode 100644 drivers/hwmon/occ/Kconfig
 create mode 100644 drivers/hwmon/occ/Makefile
 create mode 100644 drivers/hwmon/occ/occ.c
 create mode 100644 drivers/hwmon/occ/occ.h
 create mode 100644 drivers/hwmon/occ/occ_i2c.c
 create mode 100644 drivers/hwmon/occ/power8_occ.c
 create mode 100644 drivers/hwmon/occ/power8_occ.h
 delete mode 100644 drivers/hwmon/power8_occ_i2c.c
Signature · 1 line
1.9.1
#1 lore raw

Hey,

Quoted 10 lines · On Wed, Oct 12, 2016 at 8:42 AM, <[email protected]> wrote:

From: "Edward A. James" <[email protected]>

This patchset is provided to refactor the Power8 OCC hwmon driver. There are a number of issues with the existing driver. Firstly, i2c access was embedded throughout the driver. Secondly, there is no way to easily add different versions of the OCC.

This patchset addresses the first issue by abstracting the bus transfer protocol into a modular structure. In this way, any low level transfer method may be easily implemented.

Cool. I think you should consider sending these patches as a series that introduce the driver from scratch. You can achieve this by reverting the patch that adds the code Yi wrote, and adding your cleaned up version as a series of small patches.

This will be one of our first client drivers for Jeremy and Chris' fsi bus. I recommend taking a read of the current state of the client driver API, and keeping that in mind when you write the i2c version.

Cheers,

Joel

Quoted 48 lines

The second issue is addressed by separating the "version specific" code for the OCC and the common hwmon code. This task is not yet complete, but the general structure is in place. Ultimately, different OCC versions could be probed up using the device tree.

Patch 1: "drivers/hwmon: Move OCC driver to occ directory"
- Move the existing OCC hwmon driver to it's own directory.
- Edit makefiles and Kconfig accordingly to preserve the build.

Patch 2: "drivers/hwmon: Isolate bus transfer protocol"
- Copy i2c related code into occ_i2c.c and simplify.
- Copy common platform code into occ.c; more functions can be placed here later.
- Change core functions to accept OCC driver data parameter instead of device pointer.

Edward A. James (2):
drivers/hwmon: Move OCC driver to occ directory
drivers/hwmon: Isolate bus transfer protocol

 drivers/hwmon/Kconfig          |   13 +-
 drivers/hwmon/Makefile         |    2 +-
 drivers/hwmon/occ/Kconfig      |   15 +
 drivers/hwmon/occ/Makefile     |    1 +
 drivers/hwmon/occ/occ.c        |  127 ++++
 drivers/hwmon/occ/occ.h        |   47 ++
 drivers/hwmon/occ/occ_i2c.c    |  150 +++++
 drivers/hwmon/occ/power8_occ.c | 1055 +++++++++++++++++++++++++++++++++
 drivers/hwmon/occ/power8_occ.h |   25 +
 drivers/hwmon/power8_occ_i2c.c | 1254 ----------------------------------------
 10 files changed, 1422 insertions(+), 1267 deletions(-)
 create mode 100644 drivers/hwmon/occ/Kconfig
 create mode 100644 drivers/hwmon/occ/Makefile
 create mode 100644 drivers/hwmon/occ/occ.c
 create mode 100644 drivers/hwmon/occ/occ.h
 create mode 100644 drivers/hwmon/occ/occ_i2c.c
 create mode 100644 drivers/hwmon/occ/power8_occ.c
 create mode 100644 drivers/hwmon/occ/power8_occ.h
 delete mode 100644 drivers/hwmon/power8_occ_i2c.c

--
1.9.1

_______________________________________________
openbmc mailing list
[email protected]
https://lists.ozlabs.org/listinfo/openbmc