On Thu, Jan 28, 2021 at 08:53:55PM +0800, Carlis wrote:
From: zhangxuezhi zhangxuezhi1@yulong.com
For st7789v ic,when we need continuous full screen refresh, it is best to wait for the TE signal arrive to avoid screen tearing
Signed-off-by: zhangxuezhi zhangxuezhi1@yulong.com
v12: change dev_err to dev_err_probe and add space in comments start, and delete te_mutex, change te wait logic v11: remove devm_gpio_put and change a dev_err to dev_info v10: additional notes v9: change pr_* to dev_* v8: delete a log line v7: return error value when request fail v6: add te gpio request fail deal logic v5: fix log print v4: modify some code style and change te irq set function name v3: modify author and signed-off-by name v2: add release te gpio after irq request fail
drivers/staging/fbtft/fb_st7789v.c | 116 +++++++++++++++++++++++++++++++++++++ drivers/staging/fbtft/fbtft.h | 1 + 2 files changed, 117 insertions(+)
diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c index 3a280cc..f08e9da 100644 --- a/drivers/staging/fbtft/fb_st7789v.c +++ b/drivers/staging/fbtft/fb_st7789v.c @@ -9,7 +9,11 @@ #include <linux/delay.h> #include <linux/init.h> #include <linux/kernel.h> +#include <linux/interrupt.h> +#include <linux/completion.h> #include <linux/module.h> +#include <linux/gpio/consumer.h>
#include <video/mipi_display.h>
#include "fbtft.h" @@ -66,6 +70,15 @@ enum st7789v_command { #define MADCTL_MX BIT(6) /* bitmask for column address order */ #define MADCTL_MY BIT(7) /* bitmask for page address order */
+#define SPI_PANEL_TE_TIMEOUT 400 /* msecs */ +static struct completion spi_panel_te;
Doesn't this structure have to be per-device? How can it be global for all devices in the system controlled by this driver?
thanks,
greg k-h