All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] video: vidconsole: avoid multiple lines overwrite logo
@ 2020-06-10  9:52 Ye Li
  2020-06-10  9:52 ` [PATCH] splash: Fix build warning on 64 bits CPU Ye Li
                   ` (3 more replies)
  0 siblings, 4 replies; 12+ messages in thread
From: Ye Li @ 2020-06-10  9:52 UTC (permalink / raw)
  To: u-boot

Fix the bug that multiple lines wraps to overwrite logo bmp
display.

Signed-off-by: Ye Li <ye.li@nxp.com>
---
 drivers/video/vidconsole-uclass.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
index d30e6db..9b76154 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
@@ -622,6 +622,7 @@ void vidconsole_position_cursor(struct udevice *dev, unsigned col, unsigned row)
 	col *= priv->x_charsize;
 	row *= priv->y_charsize;
 	priv->xcur_frac = VID_TO_POS(min_t(short, col, vid_priv->xsize - 1));
+	priv->xstart_frac = priv->xcur_frac;
 	priv->ycur = min_t(short, row, vid_priv->ysize - 1);
 }
 
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH] splash: Fix build warning on 64 bits CPU
  2020-06-10  9:52 [PATCH] video: vidconsole: avoid multiple lines overwrite logo Ye Li
@ 2020-06-10  9:52 ` Ye Li
  2020-06-17  7:09   ` Jagan Teki
  2020-06-29  7:05   ` Anatolij Gustschin
  2020-06-10  9:52 ` [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display Ye Li
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 12+ messages in thread
From: Ye Li @ 2020-06-10  9:52 UTC (permalink / raw)
  To: u-boot

Get below warning on ARM64 platform, because the bmp_load_addr
is defined to u32.

common/splash.c: In function ?splash_video_logo_load?:
common/splash.c:74:9: warning: cast to pointer from integer
of different size [-Wint-to-pointer-cast]
   74 |  memcpy((void *)bmp_load_addr, bmp_logo_bitmap,

Signed-off-by: Ye Li <ye.li@nxp.com>
---
 common/splash.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/splash.c b/common/splash.c
index e7d8477..2b9313e 100644
--- a/common/splash.c
+++ b/common/splash.c
@@ -59,7 +59,7 @@ static struct splash_location default_splash_locations[] = {
 static int splash_video_logo_load(void)
 {
 	char *splashimage;
-	u32 bmp_load_addr;
+	ulong bmp_load_addr;
 
 	splashimage = env_get("splashimage");
 	if (!splashimage)
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display
  2020-06-10  9:52 [PATCH] video: vidconsole: avoid multiple lines overwrite logo Ye Li
  2020-06-10  9:52 ` [PATCH] splash: Fix build warning on 64 bits CPU Ye Li
@ 2020-06-10  9:52 ` Ye Li
  2020-06-17  7:10   ` Jagan Teki
                     ` (2 more replies)
  2020-06-17  7:11 ` [PATCH] video: vidconsole: avoid multiple lines overwrite logo Jagan Teki
  2020-06-29  7:04 ` Anatolij Gustschin
  3 siblings, 3 replies; 12+ messages in thread
From: Ye Li @ 2020-06-10  9:52 UTC (permalink / raw)
  To: u-boot

Update video bmp codes to support 8 bits BMP to 32 bits conversion
so that we can display 8 bits logo on 24 bits or 32 bits display

Signed-off-by: Ye Li <ye.li@nxp.com>
---
 drivers/video/video_bmp.c | 30 ++++++++++++++++++++++++++----
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
index eb96365..283e699 100644
--- a/drivers/video/video_bmp.c
+++ b/drivers/video/video_bmp.c
@@ -233,6 +233,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 	 */
 	if (bpix != bmp_bpix &&
 	    !(bmp_bpix == 8 && bpix == 16) &&
+	    !(bmp_bpix == 8 && bpix == 24) &&
+	    !(bmp_bpix == 8 && bpix == 32) &&
 	    !(bmp_bpix == 24 && bpix == 16) &&
 	    !(bmp_bpix == 24 && bpix == 32)) {
 		printf("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n",
@@ -265,6 +267,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 	switch (bmp_bpix) {
 	case 1:
 	case 8: {
+		struct bmp_color_table_entry *cte;
 		cmap_base = priv->cmap;
 #ifdef CONFIG_VIDEO_BMP_RLE8
 		u32 compression = get_unaligned_le32(&bmp->header.compression);
@@ -281,20 +284,39 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 		}
 #endif
 
-		if (bpix != 16)
+		if (bpix == 8)
 			byte_width = width;
-		else
+		else if (bpix == 16)
 			byte_width = width * 2;
+		else if (bpix == 24)
+			byte_width = width * 3;
+		else /* 32 */
+			byte_width = width * 4;
 
 		for (i = 0; i < height; ++i) {
 			WATCHDOG_RESET();
 			for (j = 0; j < width; j++) {
-				if (bpix != 16) {
+				if (bpix == 8) {
 					fb_put_byte(&fb, &bmap);
-				} else {
+				} else if (bpix == 16) {
 					*(uint16_t *)fb = cmap_base[*bmap];
 					bmap++;
 					fb += sizeof(uint16_t) / sizeof(*fb);
+				} else if (bpix == 24) {
+					/* Only support big endian */
+					cte = &palette[*bmap];
+					bmap++;
+					*(fb++) = cte->red;
+					*(fb++) = cte->green;
+					*(fb++) = cte->blue;
+				} else if (bpix == 32) {
+					/* Only support big endian */
+					cte = &palette[*bmap];
+					bmap++;
+					*(fb++) = cte->blue;
+					*(fb++) = cte->green;
+					*(fb++) = cte->red;
+					*(fb++) = 0;
 				}
 			}
 			bmap += (padded_width - width);
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH] splash: Fix build warning on 64 bits CPU
  2020-06-10  9:52 ` [PATCH] splash: Fix build warning on 64 bits CPU Ye Li
@ 2020-06-17  7:09   ` Jagan Teki
  2020-06-29  7:05   ` Anatolij Gustschin
  1 sibling, 0 replies; 12+ messages in thread
From: Jagan Teki @ 2020-06-17  7:09 UTC (permalink / raw)
  To: u-boot

On Wed, Jun 10, 2020 at 3:23 PM Ye Li <ye.li@nxp.com> wrote:
>
> Get below warning on ARM64 platform, because the bmp_load_addr
> is defined to u32.
>
> common/splash.c: In function ?splash_video_logo_load?:
> common/splash.c:74:9: warning: cast to pointer from integer
> of different size [-Wint-to-pointer-cast]
>    74 |  memcpy((void *)bmp_load_addr, bmp_logo_bitmap,
>
> Signed-off-by: Ye Li <ye.li@nxp.com>
> ---

Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # bpi-m1+, bpi-m64

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display
  2020-06-10  9:52 ` [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display Ye Li
@ 2020-06-17  7:10   ` Jagan Teki
  2020-06-18 21:04   ` Fabio Estevam
  2020-06-27 22:59   ` [PATCH v2] video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer Anatolij Gustschin
  2 siblings, 0 replies; 12+ messages in thread
From: Jagan Teki @ 2020-06-17  7:10 UTC (permalink / raw)
  To: u-boot

On Wed, Jun 10, 2020 at 3:23 PM Ye Li <ye.li@nxp.com> wrote:
>
> Update video bmp codes to support 8 bits BMP to 32 bits conversion
> so that we can display 8 bits logo on 24 bits or 32 bits display
>
> Signed-off-by: Ye Li <ye.li@nxp.com>
> ---

Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # bpi-m1+, bpi-m64

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] video: vidconsole: avoid multiple lines overwrite logo
  2020-06-10  9:52 [PATCH] video: vidconsole: avoid multiple lines overwrite logo Ye Li
  2020-06-10  9:52 ` [PATCH] splash: Fix build warning on 64 bits CPU Ye Li
  2020-06-10  9:52 ` [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display Ye Li
@ 2020-06-17  7:11 ` Jagan Teki
  2020-06-29  7:04 ` Anatolij Gustschin
  3 siblings, 0 replies; 12+ messages in thread
From: Jagan Teki @ 2020-06-17  7:11 UTC (permalink / raw)
  To: u-boot

On Wed, Jun 10, 2020 at 3:22 PM Ye Li <ye.li@nxp.com> wrote:
>
> Fix the bug that multiple lines wraps to overwrite logo bmp
> display.
>
> Signed-off-by: Ye Li <ye.li@nxp.com>
> ---

Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # bpi-m1+, bpi-m64

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display
  2020-06-10  9:52 ` [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display Ye Li
  2020-06-17  7:10   ` Jagan Teki
@ 2020-06-18 21:04   ` Fabio Estevam
  2020-06-23 11:51     ` Anatolij Gustschin
  2020-06-27 22:59   ` [PATCH v2] video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer Anatolij Gustschin
  2 siblings, 1 reply; 12+ messages in thread
From: Fabio Estevam @ 2020-06-18 21:04 UTC (permalink / raw)
  To: u-boot

Hi Anatolij,

On Wed, Jun 10, 2020 at 6:53 AM Ye Li <ye.li@nxp.com> wrote:
>
> Update video bmp codes to support 8 bits BMP to 32 bits conversion
> so that we can display 8 bits logo on 24 bits or 32 bits display
>
> Signed-off-by: Ye Li <ye.li@nxp.com>

I haven't had a chance to test this yet, but it seems to solve an
outstanding splash screen issue on mx6ul evk/mx7d sabresd boards.

Maybe we should get this one and the other two from Ye Li to 2020.07?

Thanks

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display
  2020-06-18 21:04   ` Fabio Estevam
@ 2020-06-23 11:51     ` Anatolij Gustschin
  0 siblings, 0 replies; 12+ messages in thread
From: Anatolij Gustschin @ 2020-06-23 11:51 UTC (permalink / raw)
  To: u-boot

Hi Fabio,

On Thu, 18 Jun 2020 18:04:40 -0300
Fabio Estevam festevam at gmail.com wrote:

> Hi Anatolij,
> 
> On Wed, Jun 10, 2020 at 6:53 AM Ye Li <ye.li@nxp.com> wrote:
> >
> > Update video bmp codes to support 8 bits BMP to 32 bits conversion
> > so that we can display 8 bits logo on 24 bits or 32 bits display
> >
> > Signed-off-by: Ye Li <ye.li@nxp.com>  
> 
> I haven't had a chance to test this yet, but it seems to solve an
> outstanding splash screen issue on mx6ul evk/mx7d sabresd boards.
> 
> Maybe we should get this one and the other two from Ye Li to 2020.07?

yes, we need a fix for the release, I will look later this week
which patch should be merged (we have another older patch addressing
this issue).

--
Anatolij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2] video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer
  2020-06-10  9:52 ` [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display Ye Li
  2020-06-17  7:10   ` Jagan Teki
  2020-06-18 21:04   ` Fabio Estevam
@ 2020-06-27 22:59   ` Anatolij Gustschin
  2020-06-29  7:04     ` Anatolij Gustschin
  2 siblings, 1 reply; 12+ messages in thread
From: Anatolij Gustschin @ 2020-06-27 22:59 UTC (permalink / raw)
  To: u-boot

From: Ye Li <ye.li@nxp.com>

Update video bmp code so that we can display 8 bits logo on
24 or 32 bpp framebuffer.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # bpi-m1+, bpi-m64
---
Changes in v2:
 - reduce code
 - update commit message

 drivers/video/video_bmp.c | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
index eb9636541d..7d7f37b445 100644
--- a/drivers/video/video_bmp.c
+++ b/drivers/video/video_bmp.c
@@ -233,6 +233,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 	 */
 	if (bpix != bmp_bpix &&
 	    !(bmp_bpix == 8 && bpix == 16) &&
+	    !(bmp_bpix == 8 && bpix == 24) &&
+	    !(bmp_bpix == 8 && bpix == 32) &&
 	    !(bmp_bpix == 24 && bpix == 16) &&
 	    !(bmp_bpix == 24 && bpix == 32)) {
 		printf("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n",
@@ -265,6 +267,7 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 	switch (bmp_bpix) {
 	case 1:
 	case 8: {
+		struct bmp_color_table_entry *cte;
 		cmap_base = priv->cmap;
 #ifdef CONFIG_VIDEO_BMP_RLE8
 		u32 compression = get_unaligned_le32(&bmp->header.compression);
@@ -280,21 +283,33 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
 			break;
 		}
 #endif
-
-		if (bpix != 16)
+		byte_width = width * (bpix / 8);
+		if (!byte_width)
 			byte_width = width;
-		else
-			byte_width = width * 2;
 
 		for (i = 0; i < height; ++i) {
 			WATCHDOG_RESET();
 			for (j = 0; j < width; j++) {
-				if (bpix != 16) {
+				if (bpix == 8) {
 					fb_put_byte(&fb, &bmap);
-				} else {
+				} else if (bpix == 16) {
 					*(uint16_t *)fb = cmap_base[*bmap];
 					bmap++;
 					fb += sizeof(uint16_t) / sizeof(*fb);
+				} else {
+					/* Only support big endian */
+					cte = &palette[*bmap];
+					bmap++;
+					if (bpix == 24) {
+						*(fb++) = cte->red;
+						*(fb++) = cte->green;
+						*(fb++) = cte->blue;
+					} else {
+						*(fb++) = cte->blue;
+						*(fb++) = cte->green;
+						*(fb++) = cte->red;
+						*(fb++) = 0;
+					}
 				}
 			}
 			bmap += (padded_width - width);
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2] video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer
  2020-06-27 22:59   ` [PATCH v2] video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer Anatolij Gustschin
@ 2020-06-29  7:04     ` Anatolij Gustschin
  0 siblings, 0 replies; 12+ messages in thread
From: Anatolij Gustschin @ 2020-06-29  7:04 UTC (permalink / raw)
  To: u-boot

On Sun, 28 Jun 2020 00:59:44 +0200
Anatolij Gustschin agust at denx.de wrote:
...
> Changes in v2:
>  - reduce code
>  - update commit message
> 
>  drivers/video/video_bmp.c | 27 +++++++++++++++++++++------
>  1 file changed, 21 insertions(+), 6 deletions(-)

Applied to u-boot-video/master, thanks!

--
Anatolij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] video: vidconsole: avoid multiple lines overwrite logo
  2020-06-10  9:52 [PATCH] video: vidconsole: avoid multiple lines overwrite logo Ye Li
                   ` (2 preceding siblings ...)
  2020-06-17  7:11 ` [PATCH] video: vidconsole: avoid multiple lines overwrite logo Jagan Teki
@ 2020-06-29  7:04 ` Anatolij Gustschin
  3 siblings, 0 replies; 12+ messages in thread
From: Anatolij Gustschin @ 2020-06-29  7:04 UTC (permalink / raw)
  To: u-boot

On Wed, 10 Jun 2020 02:52:21 -0700
Ye Li ye.li at nxp.com wrote:

> Fix the bug that multiple lines wraps to overwrite logo bmp
> display.
> 
> Signed-off-by: Ye Li <ye.li@nxp.com>
> ---
>  drivers/video/vidconsole-uclass.c | 1 +
>  1 file changed, 1 insertion(+)

Applied to u-boot-video/master, thanks!

--
Anatolij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] splash: Fix build warning on 64 bits CPU
  2020-06-10  9:52 ` [PATCH] splash: Fix build warning on 64 bits CPU Ye Li
  2020-06-17  7:09   ` Jagan Teki
@ 2020-06-29  7:05   ` Anatolij Gustschin
  1 sibling, 0 replies; 12+ messages in thread
From: Anatolij Gustschin @ 2020-06-29  7:05 UTC (permalink / raw)
  To: u-boot

On Wed, 10 Jun 2020 02:52:22 -0700
Ye Li ye.li at nxp.com wrote:

> Get below warning on ARM64 platform, because the bmp_load_addr
> is defined to u32.
> 
> common/splash.c: In function ?splash_video_logo_load?:
> common/splash.c:74:9: warning: cast to pointer from integer
> of different size [-Wint-to-pointer-cast]
>    74 |  memcpy((void *)bmp_load_addr, bmp_logo_bitmap,
> 
> Signed-off-by: Ye Li <ye.li@nxp.com>
> ---
>  common/splash.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Applied to u-boot-video/master, thanks!

--
Anatolij

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-06-29  7:05 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-10  9:52 [PATCH] video: vidconsole: avoid multiple lines overwrite logo Ye Li
2020-06-10  9:52 ` [PATCH] splash: Fix build warning on 64 bits CPU Ye Li
2020-06-17  7:09   ` Jagan Teki
2020-06-29  7:05   ` Anatolij Gustschin
2020-06-10  9:52 ` [PATCH] video: bmp: Support 8bits BMP to 24/32 bits display Ye Li
2020-06-17  7:10   ` Jagan Teki
2020-06-18 21:04   ` Fabio Estevam
2020-06-23 11:51     ` Anatolij Gustschin
2020-06-27 22:59   ` [PATCH v2] video: bmp: support 8bits BMP drawing on 24/32 bpp framebuffer Anatolij Gustschin
2020-06-29  7:04     ` Anatolij Gustschin
2020-06-17  7:11 ` [PATCH] video: vidconsole: avoid multiple lines overwrite logo Jagan Teki
2020-06-29  7:04 ` Anatolij Gustschin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.