On Tue, Jun 30, 2015 at 08:43:11AM +0200, Fabio Falzoi wrote: > Use a helper function to set the correct write_register function, based > on the width of the registers. > > Signed-off-by: Fabio Falzoi <fabio.falzoi84@xxxxxxxxx> > --- > drivers/staging/fbtft/flexfb.c | 36 ++++++++++++++++++++++-------------- > 1 file changed, 22 insertions(+), 14 deletions(-) > > diff --git a/drivers/staging/fbtft/flexfb.c b/drivers/staging/fbtft/flexfb.c > index 25b394d..dae092a 100644 > --- a/drivers/staging/fbtft/flexfb.c > +++ b/drivers/staging/fbtft/flexfb.c > @@ -363,6 +363,25 @@ static int flexfb_chip_init(const struct device *dev) > return -EINVAL; > } > > +static int flexfb_set_regwrite_func(const struct device *dev, > + struct fbtft_par *par) > +{ > + switch (regwidth) { > + case 8: > + par->fbtftops.write_register = fbtft_write_reg8_bus8; > + break; > + case 16: > + par->fbtftops.write_register = fbtft_write_reg16_bus8; > + break; > + default: > + dev_err(dev, "argument 'regwidth': %d is not supported.\n", > + regwidth); > + return -EINVAL; > + } > + > + return 0; > +} > + > static int flexfb_probe_common(struct spi_device *sdev, > struct platform_device *pdev) > { > @@ -413,20 +432,9 @@ static int flexfb_probe_common(struct spi_device *sdev, > par->init_sequence = initp; > par->fbtftops.init_display = fbtft_init_display; > > - /* registerwrite functions */ > - switch (regwidth) { > - case 8: > - par->fbtftops.write_register = fbtft_write_reg8_bus8; > - break; > - case 16: > - par->fbtftops.write_register = fbtft_write_reg16_bus8; > - break; > - default: > - dev_err(dev, > - "argument 'regwidth': %d is not supported.\n", > - regwidth); > - return -EINVAL; > - } > + ret = flexfb_set_regwrite_func(dev, par); > + if (ret) > + goto out_release; > > /* bus functions */ > if (sdev) { Why? You aren't calling this function anywhere else, so why move it? thanks, greg k-h _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel