summaryrefslogtreecommitdiff
path: root/common/lcd.c
diff options
context:
space:
mode:
authorAnatolij Gustschin <agust@denx.de>2013-11-09 11:00:09 +0100
committerAnatolij Gustschin <agust@denx.de>2013-11-12 09:35:17 +0100
commitcefa47171276509fee89d8084da15409285e481b (patch)
tree0539affa3f569494c9da7f2ac4fa4f6595b0997f /common/lcd.c
parente2788afe672d06d4ee92220c4d7d39a83b4f90ee (diff)
lcd: allow overriding lcd_get_size()
Remove the redundant lcd_line_length initialisation which sneaked in when an earlier version of the patch of commit 6d330719 has been rebased. Some lcd drivers need to setup lcd_line_length not from the panel_info parameters but by different means. Make the lcd_get_size() weak to allow setting lcd_line_length in a driver specific way. Signed-off-by: Anatolij Gustschin <agust@denx.de> Cc: Stephen Warren <swarren@wwwdotorg.org>
Diffstat (limited to 'common/lcd.c')
-rw-r--r--common/lcd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/common/lcd.c b/common/lcd.c
index 5dd7948121..56bf067fb5 100644
--- a/common/lcd.c
+++ b/common/lcd.c
@@ -386,8 +386,13 @@ static void test_pattern(void)
/************************************************************************/
/* ** GENERIC Initialization Routines */
/************************************************************************/
-
-int lcd_get_size(int *line_length)
+/*
+ * With most lcd drivers the line length is set up
+ * by calculating it from panel_info parameters. Some
+ * drivers need to calculate the line length differently,
+ * so make the function weak to allow overriding it.
+ */
+__weak int lcd_get_size(int *line_length)
{
*line_length = (panel_info.vl_col * NBITS(panel_info.vl_bpix)) / 8;
return *line_length * panel_info.vl_row;
@@ -495,7 +500,6 @@ static int lcd_init(void *lcdbase)
debug("[LCD] Using LCD frambuffer at %p\n", lcd_base);
lcd_get_size(&lcd_line_length);
- lcd_line_length = (panel_info.vl_col * NBITS(panel_info.vl_bpix)) / 8;
lcd_is_enabled = 1;
lcd_clear();
lcd_enable();