Hi Lee, On 31 October 2017 at 23:28, Lee Jones <lee.jones@xxxxxxxxxx> wrote: > On Thu, 26 Oct 2017, Baolin Wang wrote: > >> This patch adds support for Spreadtrum SC27xx series PMIC MFD core, and It >> provides communication through the SPI interfaces. The SC27xx series PMICs >> contains the following 6 major components: >> - DCDCs >> - LDOs >> - Battery management system >> - Audio codec >> - User interface function, such as indicator, flash LED >> - IC level function, such as power on/off, type-c >> >> Signed-off-by: Baolin Wang <baolin.wang@xxxxxxxxxxxxxx> >> --- >> Changes since v2: >> - Add more help information. >> - Define macros for irq base and irq number. >> - Use devm_mfd_add_devices() instead of mfd_add_devices(), which means >> we can remove sprd_pmic_remove(). >> - Rename local variables in sprd_pmic_probe(). >> >> Changes since v1: >> - Add more documentation to introduce Spreadtrum SC27xx series PMICs. >> - Modify compatile string property. >> - Modify reg property. >> - Remove redundant 'pmic' label. >> - Change 'should be' to 'must be' for cells properties. >> --- >> drivers/mfd/Kconfig | 16 +++ >> drivers/mfd/Makefile | 1 + >> drivers/mfd/sprd-sc27xx-spi.c | 258 +++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 275 insertions(+) >> create mode 100644 drivers/mfd/sprd-sc27xx-spi.c > > [...] > >> +static int sprd_pmic_spi_read(void *context, >> + const void *reg, size_t reg_size, >> + void *val, size_t val_size) >> +{ >> + struct device *dev = context; >> + struct spi_device *spi = to_spi_device(dev); >> + u32 rx_buf[2] = { 0 }; >> + int ret; >> + >> + /* Now we only support one PMIC register to read every time. */ >> + if (reg_size != sizeof(u32) || val_size != sizeof(u32)) >> + return -EINVAL; >> + >> + rx_buf[0] = *(u32 *)reg; > > I still don't like this. It's uuuuuugly! > > At the very least, please use an interim variable using a nomenclature > which describes what it is you're trying to achieve. For instance: > > u32 *addr = reg; > > rx_buf[0] = addr[0]; > > Or better still ... > > /* Copy address to read from into first element of SPI buffer */ > memcpy(rx_buf, reg, sizeof(u32)); OK. I will change it like you suggested in next version. Thanks. -- Baolin.wang Best Regards -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html