From: Heiner Kallweit Date: Thu, 2 Mar 2017 21:12:46 +0000 (+0100) Subject: staging: fbtft: add helper fbtft_write_buf_dc X-Git-Tag: v4.14-rc1~980^2~680 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=60da70204ead415ce43f6865ae237cb073f3a5a0;p=platform%2Fkernel%2Flinux-rpi.git staging: fbtft: add helper fbtft_write_buf_dc Factor out setting DC GPIO and writing buffer content to helper fbtft_write_buf_dc. Signed-off-by: Heiner Kallweit Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c index 429b524..b742ee7 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -43,6 +43,21 @@ static unsigned long debug; module_param(debug, ulong, 0000); MODULE_PARM_DESC(debug, "override device debug level"); +int fbtft_write_buf_dc(struct fbtft_par *par, void *buf, size_t len, int dc) +{ + int ret; + + if (gpio_is_valid(par->gpio.dc)) + gpio_set_value(par->gpio.dc, dc); + + ret = par->fbtftops.write(par, buf, len); + if (ret < 0) + dev_err(par->info->device, + "write() failed and returned %d\n", ret); + return ret; +} +EXPORT_SYMBOL(fbtft_write_buf_dc); + void fbtft_dbg_hex(const struct device *dev, int groupsize, void *buf, size_t len, const char *fmt, ...) { diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h index 119c3a7..488ab78 100644 --- a/drivers/staging/fbtft/fbtft.h +++ b/drivers/staging/fbtft/fbtft.h @@ -248,6 +248,7 @@ struct fbtft_par { par->fbtftops.write_register(par, NUMARGS(__VA_ARGS__), __VA_ARGS__) /* fbtft-core.c */ +int fbtft_write_buf_dc(struct fbtft_par *par, void *buf, size_t len, int dc); void fbtft_dbg_hex(const struct device *dev, int groupsize, void *buf, size_t len, const char *fmt, ...); struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,