On Mon, 22 Jul 2019, Enric Balletbo i Serra wrote: > There is a bit of mess between cros-ec mfd includes and platform > includes. For example, we have a linux/mfd/cros_ec.h include that > exports the interface implemented in platform/chrome/cros_ec_proto.c. Or > we have a linux/mfd/cros_ec_commands.h file that is non related to the > multifunction device (in the sense that is not exporting any function of > the mfd device). This causes crossed includes between mfd and > platform/chrome subsystems and makes the code difficult to read, apart > from creating 'curious' situations where a platform/chrome driver includes > a linux/mfd/cros_ec.h file just to get the exported functions that are > implemented in another platform/chrome driver. > > In order to have a better separation on what the cros-ec multifunction > driver does and what the cros-ec core provides move and rework the > affected includes doing: > > - Move cros_ec_commands.h to include/linux/platform_data/cros_ec_commands.h > - Get rid of the parts that are implemented in the > platform/chrome/cros_ec_proto.c > driver from include/linux/mfd/cros_ec.h to a new file > include/linux/platform_data/cros_ec_proto.h > - Update all the drivers with the new includes, so > - Drivers that only need to know about the protocol include > - linux/platform_data/cros_ec_proto.h > - linux/platform_data/cros_ec_commands.h > - Drivers that need to know about the cros-ec mfd device also include > - linux/mfd/cros_ec.h > > Signed-off-by: Enric Balletbo i Serra <[email protected]> > Acked-by: Andy Shevchenko <[email protected]> > Acked-by: Mark Brown <[email protected]> > Acked-by: Wolfram Sang <[email protected]> > Acked-by: Neil Armstrong <[email protected]> > Acked-by: Alexandre Belloni <[email protected]> > Acked-by: Jonathan Cameron <[email protected]> > Acked-by: Benjamin Tissoires <[email protected]> > Acked-by: Dmitry Torokhov <[email protected]> > Acked-by: Sebastian Reichel <[email protected]> > Acked-by: Chanwoo Choi <[email protected]> > Reviewed-by: Gwendal Grignou <[email protected]> > Tested-by: Gwendal Grignou <[email protected]> > Series changes: 3 > - Fix dereferencing pointer to incomplete type 'struct cros_ec_dev' (lkp) > --- > > Changes in v5: None > Changes in v4: None > Changes in v3: None > Changes in v2: None > > drivers/extcon/extcon-usbc-cros-ec.c | 3 +- > drivers/hid/hid-google-hammer.c | 4 +- > drivers/i2c/busses/i2c-cros-ec-tunnel.c | 4 +- > drivers/iio/accel/cros_ec_accel_legacy.c | 3 +- > .../cros_ec_sensors/cros_ec_lid_angle.c | 3 +- > .../common/cros_ec_sensors/cros_ec_sensors.c | 3 +- > .../cros_ec_sensors/cros_ec_sensors_core.c | 3 +- > drivers/iio/light/cros_ec_light_prox.c | 3 +- > drivers/iio/pressure/cros_ec_baro.c | 3 +- > drivers/input/keyboard/cros_ec_keyb.c | 4 +- > .../media/platform/cros-ec-cec/cros-ec-cec.c | 5 +- > drivers/mfd/cros_ec_dev.c | 3 +- > drivers/platform/chrome/cros_ec.c | 3 +- > drivers/platform/chrome/cros_ec_chardev.c | 3 +- > drivers/platform/chrome/cros_ec_debugfs.c | 3 +- > drivers/platform/chrome/cros_ec_i2c.c | 4 +- > drivers/platform/chrome/cros_ec_ishtp.c | 5 +- > drivers/platform/chrome/cros_ec_lightbar.c | 3 +- > drivers/platform/chrome/cros_ec_lpc.c | 4 +- > drivers/platform/chrome/cros_ec_proto.c | 3 +- > drivers/platform/chrome/cros_ec_rpmsg.c | 4 +- > drivers/platform/chrome/cros_ec_spi.c | 4 +- > drivers/platform/chrome/cros_ec_sysfs.c | 3 +- > drivers/platform/chrome/cros_ec_trace.c | 2 +- > drivers/platform/chrome/cros_ec_trace.h | 4 +- > drivers/platform/chrome/cros_ec_vbc.c | 3 +- > drivers/platform/chrome/cros_usbpd_logger.c | 5 +- > drivers/power/supply/cros_usbpd-charger.c | 5 +- > drivers/pwm/pwm-cros-ec.c | 4 +- > drivers/rtc/rtc-cros-ec.c | 3 +- > .../linux/iio/common/cros_ec_sensors_core.h | 3 +- > include/linux/mfd/cros_ec.h | 308 ----------------- > .../{mfd => platform_data}/cros_ec_commands.h | 0 > include/linux/platform_data/cros_ec_proto.h | 317 ++++++++++++++++++ > sound/soc/codecs/cros_ec_codec.c | 4 +- > 35 files changed, 383 insertions(+), 355 deletions(-) > rename include/linux/{mfd => platform_data}/cros_ec_commands.h (100%) > create mode 100644 include/linux/platform_data/cros_ec_proto.h
For my own reference: Acked-for-MFD-by: Lee Jones <[email protected]> -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog

