All of lore.kernel.org
 help / color / mirror / Atom feed
From: Piotr Wilczek <p.wilczek@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 09/12] drivers:lcd: fix unaligned access on lcd
Date: Fri, 17 May 2013 14:55:52 +0200	[thread overview]
Message-ID: <1368795355-6717-10-git-send-email-p.wilczek@samsung.com> (raw)
In-Reply-To: <1368795355-6717-1-git-send-email-p.wilczek@samsung.com>

This patch replace 'le32_to_cpu' function with 'get_unaligend_le32' to
avoid unaligned access exception on some ARM platforms (ex Trats2).

Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Anatolij Gustschin <agust@denx.de>

---
Changes in v3: None
Changes in v2:
- new patch

 common/lcd.c |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/common/lcd.c b/common/lcd.c
index edae835..577a452 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -42,6 +42,7 @@
 #endif
 #include <lcd.h>
 #include <watchdog.h>
+#include <asm/unaligned.h>
 
 #if defined(CONFIG_CPU_PXA25X) || defined(CONFIG_CPU_PXA27X) || \
 	defined(CONFIG_CPU_MONAHANS)
@@ -907,9 +908,9 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 		return 1;
 	}
 
-	width = le32_to_cpu(bmp->header.width);
-	height = le32_to_cpu(bmp->header.height);
-	bmp_bpix = le16_to_cpu(bmp->header.bit_count);
+	width = get_unaligned_le32(&bmp->header.width);
+	height = get_unaligned_le32(&bmp->header.height);
+	bmp_bpix = get_unaligned_le32(&bmp->header.bit_count);
 	colors = 1 << bmp_bpix;
 
 	bpix = NBITS(panel_info.vl_bpix);
@@ -994,7 +995,7 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 	if ((y + height) > panel_info.vl_row)
 		height = panel_info.vl_row - y;
 
-	bmap = (uchar *) bmp + le32_to_cpu(bmp->header.data_offset);
+	bmap = (uchar *)bmp + get_unaligned_le32(&bmp->header.data_offset);
 	fb   = (uchar *) (lcd_base +
 		(y + height - 1) * lcd_line_length + x * bpix / 8);
 
@@ -1002,7 +1003,8 @@ int lcd_display_bitmap(ulong bmp_image, int x, int y)
 	case 1: /* pass through */
 	case 8:
 #ifdef CONFIG_LCD_BMP_RLE8
-		if (le32_to_cpu(bmp->header.compression) == BMP_BI_RLE8) {
+		if (get_unaligned_le32(&bmp->header.compression) ==
+		    BMP_BI_RLE8) {
 			if (bpix != 16) {
 				/* TODO implement render code for bpix != 16 */
 				printf("Error: only support 16 bpix");
-- 
1.7.9.5

  parent reply	other threads:[~2013-05-17 12:55 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-17 12:55 [U-Boot] [PATCH v3 0/12] Introduce Samsung's new board Trats2 Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 01/12] pmic:max77686: add function to set voltage and mode Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 02/12] drivers:power:max77693: add support for new multi function pmic max77693 Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 03/12] arm:exynos:gpio: fix s5p_gpio_part_max for exynos4x12 Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 04/12] i2c:multi_i2c: adapt file to new i2c framework Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 05/12] power: fix pmic command Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 06/12] drivers:power:power_i2c: adapt file to new i2c framework Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 07/12] driver:i2c:s3c24x0: adapt driver " Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 08/12] drivers:video:s6e8ax0: change data_to_send array to static Piotr Wilczek
2013-05-17 12:55 ` Piotr Wilczek [this message]
2013-05-17 12:55 ` [U-Boot] [PATCH v3 10/12] samsung: trats2: add support for new board Trats2 Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 11/12] board:VCMA9 switch to ne i2c framework Piotr Wilczek
2013-05-17 12:55 ` [U-Boot] [PATCH v3 12/12] board:smdk5250: switch to new " Piotr Wilczek
2013-05-21  8:35 ` [U-Boot] [PATCH v3 0/12] Introduce Samsung's new board Trats2 Minkyu Kang
2013-05-21  9:00   ` Piotr Wilczek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1368795355-6717-10-git-send-email-p.wilczek@samsung.com \
    --to=p.wilczek@samsung.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.