public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] video: Add support for TI's AM335x LCD-Controller
Date: Mon, 10 Mar 2014 07:21:47 +0100	[thread overview]
Message-ID: <531D59FB.7060006@denx.de> (raw)
In-Reply-To: <20595.213.33.116.113.1394188112.squirrel@petermaier.org>

Hello Hannes,

Am 07.03.2014 11:28, schrieb Hannes Petermaier:
> Hi Heiko,
>
> Heiko Schocher wrote:
>> Hello Hannes,
>>
>> Am 06.03.2014 15:24, schrieb Hannes Petermaier:
>>> On 2014-03-06 14:58, Heiko Schocher wrote:
>>>> Hello Hannes,
>>>>
>>>> Am 06.03.2014 14:39, schrieb Hannes Petermaier:
>>>>> - Adds support for a minimal framebuffer driver of TI's AM335x SoC
>>>>> to be compatible with Wolfgang Denk's LCD-Framework (CONFIG_LCD,
>>>>> common/lcd.c)
>>>>>
>>>>> Signed-off-by: Hannes Petermaier<oe5hpm@oevsv.at>
>>>>> ---
>>>>> drivers/video/Makefile | 1 +
>>>>> drivers/video/am335x-fb.c | 169
>>>>> +++++++++++++++++++++++++++++++++++++++++++++
>>>>> drivers/video/am335x-fb.h | 67 ++++++++++++++++++
>>>>> 3 files changed, 237 insertions(+)
>>>>> create mode 100644 drivers/video/am335x-fb.c
>>>>> create mode 100644 drivers/video/am335x-fb.h
>>>>
>>>> Why you cannot use:
>>>>
>>>> u-boot:drivers/video/da8xx-fb.c ?
>>>>
>>>> bye,
>>>> Heiko
>>> Hi Heiko,
>>>
>>> for my opinion this clone of the linux-driver is very overloaded and
>>> difficult to use/configure.
>>> With the words 'small-is-beautiful' and 'keep-it-simple' i've wrote a
>>> few lines which do the minimum:
>>> - configure raster-controller
>>> - setup DMA
>>> - powerON Display
>>>
>>> maybe we can use the small-version in other projects too.
>>
>> Why is it difficult to use/configure the existing driver?
>>
>> Look for example into the board/siemens/pxm2/board.c board, which uses
>> this driver. You have to define:
>>
>> static struct da8xx_panel lcd_panels[]
>> static const struct display_panel disp_panel
>> static const struct lcd_ctrl_config lcd_cfg
>>
>> and call "da8xx_video_init(&lcd_panels[0],&lcd_cfg, lcd_cfg.bpp);"
>>
>> Thats all ...
>
> i've looked around again for using the da8xx-fb driver and found another
> detail which motivated me for writing a new instance.
>
> --
> 	par->vram_virt = malloc(par->vram_size);
>
> 	par->vram_phys = (dma_addr_t) par->vram_virt;
> 	debug("Requesting 0x%x bytes for framebuffer at 0x%x\n",
> 		(unsigned int)par->vram_size,
> 		(unsigned int)par->vram_virt);
> 	if (!par->vram_virt) {
> 		printf("GLCD: malloc for frame buffer failed\n");
> 		goto err_release_fb;
> 	}
> 	gd->fb_base = (int)par->vram_virt;
> --
>
> da8xx-fb.c does allocate a new framebuffer by itself.
> But in my case lcd-framework allready has reserved memory (on top of ram)
> for framebuffer usage and i want use this memory from lcd-framework for
> two reasons:
> - don't waste memory
> - have this memory really on top of ram to give the following OS (in my
> case vxWorks) a pointer where it have to write Video-data.
>
> maybe there are other possibilites to achieve this.
> any ideas ?

Maybe you can introduce a common function like this? :

void *get_vram(size_t size)
{
	if (gd->fb_base) {
		if (gd->fb_size == size)
			return gd->fb_base;
		printf("fb size does not match\n");
	} else {
		void *ret = malloc(size);
		if (ret) {
			gd->fb_base = ret;
			gd->fb_size = size;
		}
		return ret
	}
	return NULL;
}

(gd->fb_size is a new variable ...)

and use in your driver only:

par->vram_virt = get_vram(par->vram_size);

or, just only check in the driver, if "gd->fb_base" has a value, and
if so, do not malloc the vram ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

  reply	other threads:[~2014-03-10  6:21 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-06 13:39 [U-Boot] [PATCH] video: Add support for TI's AM335x LCD-Controller Hannes Petermaier
2014-03-06 13:58 ` Heiko Schocher
2014-03-06 14:24   ` Hannes Petermaier
2014-03-07  6:48     ` Heiko Schocher
2014-03-07 10:28       ` Hannes Petermaier
2014-03-10  6:21         ` Heiko Schocher [this message]
2014-08-11 14:22 ` Anatolij Gustschin

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=531D59FB.7060006@denx.de \
    --to=hs@denx.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox