From 9fdcb00b636cf142e68343398425f3e4ce5017d8 Mon Sep 17 00:00:00 2001 From: Vincent-FK Date: Sat, 26 Oct 2019 12:07:08 +0200 Subject: [PATCH] add patches to linux (backlight, fbtft 39hz, rmv boot errors --- .../patches/linux/0004-add-funkey-dts.patch | 4 +- .../linux/0007-comment-backlight-dts.patch | 32 ++++++++ .../patches/linux/0008-fbtft_39Hz.patch | 77 +++++++++++++++++++ ...0009-remove_boot_error_msg_sun4i-SOC.patch | 43 +++++++++++ 4 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 FunKey/board/funkey/patches/linux/0007-comment-backlight-dts.patch create mode 100644 FunKey/board/funkey/patches/linux/0008-fbtft_39Hz.patch create mode 100644 FunKey/board/funkey/patches/linux/0009-remove_boot_error_msg_sun4i-SOC.patch diff --git a/FunKey/board/funkey/patches/linux/0004-add-funkey-dts.patch b/FunKey/board/funkey/patches/linux/0004-add-funkey-dts.patch index 20e570c..e5102c3 100644 --- a/FunKey/board/funkey/patches/linux/0004-add-funkey-dts.patch +++ b/FunKey/board/funkey/patches/linux/0004-add-funkey-dts.patch @@ -159,10 +159,10 @@ + st7789v@0 { + compatible = "sitronix,st7789v"; + reg = <0>; -+ spi-max-frequency = <40000000>; ++ spi-max-frequency = <45000000>; + txbuflen = <115200>; + rotate = <0>; -+ fps = <39>; ++ fps = <48>; + buswidth = <8>; + reset-gpios = <&pio 4 1 GPIO_ACTIVE_LOW>; //PE1 + dc-gpios = <&pio 2 0 GPIO_ACTIVE_LOW>; //PC0 (MISO) diff --git a/FunKey/board/funkey/patches/linux/0007-comment-backlight-dts.patch b/FunKey/board/funkey/patches/linux/0007-comment-backlight-dts.patch new file mode 100644 index 0000000..041f516 --- /dev/null +++ b/FunKey/board/funkey/patches/linux/0007-comment-backlight-dts.patch @@ -0,0 +1,32 @@ +From 2e5317f853f1b1b8ce4fe3e16ac0bc9aed6bc11e Mon Sep 17 00:00:00 2001 +From: vincent +Date: Sat, 26 Oct 2019 09:44:25 +0200 +Subject: [PATCH] commented backlight in dts + +--- + arch/arm/boot/dts/sun8i-v3s-funkey.dts | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/boot/dts/sun8i-v3s-funkey.dts b/arch/arm/boot/dts/sun8i-v3s-funkey.dts +index 31fddd2..fad43fa 100644 +--- a/arch/arm/boot/dts/sun8i-v3s-funkey.dts ++++ b/arch/arm/boot/dts/sun8i-v3s-funkey.dts +@@ -56,13 +56,13 @@ + stdout-path = "serial0:115200n8"; + }; + +- backlight: backlight { ++ /*backlight: backlight { + compatible = "pwm-backlight"; + pwms = <&pwm 0 1000000 0>; + brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>; + default-brightness-level = <10>; + power-supply = <®_vcc5v0>; +- }; ++ };*/ + }; + + &codec { +-- +1.9.1 + diff --git a/FunKey/board/funkey/patches/linux/0008-fbtft_39Hz.patch b/FunKey/board/funkey/patches/linux/0008-fbtft_39Hz.patch new file mode 100644 index 0000000..9b1262c --- /dev/null +++ b/FunKey/board/funkey/patches/linux/0008-fbtft_39Hz.patch @@ -0,0 +1,77 @@ +From 8096f82b8211e2d75f57048a30961e1d8616364e Mon Sep 17 00:00:00 2001 +From: vincent +Date: Sat, 26 Oct 2019 10:44:34 +0200 +Subject: [PATCH] fbtft set to 39Hz refresh rate + +--- + drivers/staging/fbtft/fb_st7789v.c | 16 +++++++++++++--- + drivers/staging/fbtft/fbtft-core.c | 8 +++++++- + 2 files changed, 20 insertions(+), 4 deletions(-) + mode change 100644 => 100755 drivers/staging/fbtft/fb_st7789v.c + mode change 100644 => 100755 drivers/staging/fbtft/fbtft-core.c + +diff --git a/drivers/staging/fbtft/fb_st7789v.c b/drivers/staging/fbtft/fb_st7789v.c +old mode 100644 +new mode 100755 +index 69f52af..00756de +--- a/drivers/staging/fbtft/fb_st7789v.c ++++ b/drivers/staging/fbtft/fb_st7789v.c +@@ -150,12 +150,12 @@ static int init_display(struct fbtft_par *par) + */ + write_reg(par, PWCTRL1, 0xA4, 0xA1); + +- /* Ystart at 80 , Yend at 240 */ +- write_reg(par, 0x2B, 0x00, 0x50, 0x00, 0xF0); +- + /* Display Inversion of colors */ + write_reg(par, 0x21); + ++ /* 39Hz refresh rate */ ++ write_reg(par, 0xC6,0x1F); ++ + write_reg(par, MIPI_DCS_SET_DISPLAY_ON); + + return 0; +@@ -190,6 +190,16 @@ static int set_var(struct fbtft_par *par) + return -EINVAL; + } + write_reg(par, MIPI_DCS_SET_ADDRESS_MODE, madctl_par); ++ ++ // All offset operations are done after in fbtft_set_addr_win, not here ++ /* Ystart at 0 , Yend at 239 */ ++ //write_reg(par, 0x2B, 0x00, 0x50, 0x00, 0xEF); ++ write_reg(par, 0x2B, 0x00, 0x00, 0x00, 0xEF); ++ //write_reg(par, 0x2B, 0x00, 0x50, 0x01, 0x3F); ++ /* Xstart at 80 , Xend at 319 */ ++ write_reg(par, 0x2A, 0x00, 0x50, 0x01, 0x3F); ++ //write_reg(par, 0x2A, 0x00, 0x50, 0x00, 0xEF); ++ + return 0; + } + +diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c +old mode 100644 +new mode 100755 +index 6d0363d..7fbf92e +--- a/drivers/staging/fbtft/fbtft-core.c ++++ b/drivers/staging/fbtft/fbtft-core.c +@@ -391,9 +391,15 @@ static void fbtft_update_display(struct fbtft_par *par, unsigned int start_line, + fbtft_par_dbg(DEBUG_UPDATE_DISPLAY, par, "%s(start_line=%u, end_line=%u)\n", + __func__, start_line, end_line); + +- if (par->fbtftops.set_addr_win) ++ // Carefull removing this. this will work only if the full screen is updated all at once ++ if (par->fbtftops.set_addr_win){ + par->fbtftops.set_addr_win(par, 0, start_line, + par->info->var.xres - 1, end_line); ++ } ++ /*if (par->fbtftops.set_addr_win){ ++ par->fbtftops.set_addr_win(par, 80, start_line, ++ 320 - 1, end_line); ++ }*/ + + offset = start_line * par->info->fix.line_length; + len = (end_line - start_line + 1) * par->info->fix.line_length; +-- +1.9.1 + diff --git a/FunKey/board/funkey/patches/linux/0009-remove_boot_error_msg_sun4i-SOC.patch b/FunKey/board/funkey/patches/linux/0009-remove_boot_error_msg_sun4i-SOC.patch new file mode 100644 index 0000000..52bd946 --- /dev/null +++ b/FunKey/board/funkey/patches/linux/0009-remove_boot_error_msg_sun4i-SOC.patch @@ -0,0 +1,43 @@ +From 2acecf3490c797aee0cb764ca893f7bb4ad7f1d8 Mon Sep 17 00:00:00 2001 +From: vincent +Date: Sat, 26 Oct 2019 12:04:55 +0200 +Subject: [PATCH] sun4i_soc remove error messages at boot + +--- + sound/soc/soc-core.c | 4 +++- + sound/soc/sunxi/sun4i-codec.c | 4 +++- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c +index fee4b0e..2d32f6e 100644 +--- a/sound/soc/soc-core.c ++++ b/sound/soc/soc-core.c +@@ -1843,7 +1843,9 @@ static int soc_bind_aux_dev(struct snd_soc_card *card, int num) + return 0; + + err_defer: +- dev_err(card->dev, "ASoC: %s not registered\n", name); ++ // FunKey change ++ //dev_err(card->dev, "ASoC: %s not registered\n", name); ++ dev_warn(card->dev, "ASoC: %s not registered\n", name); + return -EPROBE_DEFER; + } + +diff --git a/sound/soc/sunxi/sun4i-codec.c b/sound/soc/sunxi/sun4i-codec.c +index baa9007..699c7a1 100644 +--- a/sound/soc/sunxi/sun4i-codec.c ++++ b/sound/soc/sunxi/sun4i-codec.c +@@ -1659,7 +1659,9 @@ static int sun4i_codec_probe(struct platform_device *pdev) + + ret = snd_soc_register_card(card); + if (ret) { +- dev_err(&pdev->dev, "Failed to register our card\n"); ++ // FunKey change ++ //dev_err(&pdev->dev, "Failed to register our card\n"); ++ dev_warn(&pdev->dev, "Failed to register our card\n"); + goto err_unregister_codec; + } + +-- +1.9.1 +