<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/video/pxafb.h, branch v3.2.47</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>ARM: pxafb: rework pxafb overlay memory management</title>
<updated>2011-03-16T09:37:03+00:00</updated>
<author>
<name>Vasily Khoruzhick</name>
<email>anarsoul@gmail.com</email>
</author>
<published>2011-03-11T09:20:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1b98d7c4491e5eaba7c403ec1bc5997e6596e569'/>
<id>1b98d7c4491e5eaba7c403ec1bc5997e6596e569</id>
<content type='text'>
PXAFB overlay memory management is something messy:
- it allocates memory dynamically on open/release, and it results
  in memory allocation failure after ~1h of uptime (system does not have
  115k of physically contiguous memory)
- in release callback it tries to free memory even if it was not
  allocated.

Also driver touches FDADR1 on main plane reconfiguration, and it can cause
problems if overlay1 is enabled.

This patch attempts to fix those issues.

Patch is based on Russell King's work.

Signed-off-by: Vasily Khoruzhick &lt;anarsoul@gmail.com&gt;
Signed-off-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PXAFB overlay memory management is something messy:
- it allocates memory dynamically on open/release, and it results
  in memory allocation failure after ~1h of uptime (system does not have
  115k of physically contiguous memory)
- in release callback it tries to free memory even if it was not
  allocated.

Also driver touches FDADR1 on main plane reconfiguration, and it can cause
problems if overlay1 is enabled.

This patch attempts to fix those issues.

Patch is based on Russell King's work.

Signed-off-by: Vasily Khoruzhick &lt;anarsoul@gmail.com&gt;
Signed-off-by: Eric Miao &lt;eric.y.miao@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices</title>
<updated>2008-12-29T10:00:04+00:00</updated>
<author>
<name>Eric Miao</name>
<email>ycmiao@ycmiao-hp520.(none)</email>
</author>
<published>2008-12-23T09:49:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=198fc108ee4c2cd3f08954eae6a819c81c03214b'/>
<id>198fc108ee4c2cd3f08954eae6a819c81c03214b</id>
<content type='text'>
PXA27x and later processors support overlay1 and overlay2 on-top of the
base framebuffer (although under-neath the base is also possible). They
support palette and no-palette RGB formats, as well as YUV formats (only
available on overlay2). These overlays have dedicated DMA channels and
behave in a similar way as a framebuffer.

This heavily simplified and re-structured work is based on the original
pxafb_overlay.c (which is pending for mainline merge for a long time).

The major problems with this pxafb_overlay.c are (if you are interested
in the history):

  1. heavily redundant (the control logics for overlay1 and overlay2 are
     actually identical except for some small operations,  which are now
     abstracted into a 'pxafb_layer_ops' structure)

  2. a lot of useless and un-tested code (two workarounds which are now
     fixed on mature silicons)

  3. cursorfb is actually useless, hardware cursor should not be used
     this way, and the code was actually un-tested for a long time.

The code in this patch should be self-explanatory, I tried to add minimum
comments. As said, this is basically simplified, there are several things
still on the pending list:

  1. palette mode is un-supported and un-tested (although re-using the
     palette code of the base framebuffer is actually very easy now with
     previous clean-up patches)

  2. fb_pan_display for overlay(s) is un-supported

  3. the base framebuffer can actually be abstracted by 'pxafb_layer' as
     well, which will help further re-use of the code and keep a better
     and consistent structure. (This is the reason I named it 'pxafb_layer'
     instead of 'pxafb_overlay' or something alike)

See Documentation/fb/pxafb.txt for additional usage information.

Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Cc: Rodolfo Giometti &lt;giometti@linux.it&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
PXA27x and later processors support overlay1 and overlay2 on-top of the
base framebuffer (although under-neath the base is also possible). They
support palette and no-palette RGB formats, as well as YUV formats (only
available on overlay2). These overlays have dedicated DMA channels and
behave in a similar way as a framebuffer.

This heavily simplified and re-structured work is based on the original
pxafb_overlay.c (which is pending for mainline merge for a long time).

The major problems with this pxafb_overlay.c are (if you are interested
in the history):

  1. heavily redundant (the control logics for overlay1 and overlay2 are
     actually identical except for some small operations,  which are now
     abstracted into a 'pxafb_layer_ops' structure)

  2. a lot of useless and un-tested code (two workarounds which are now
     fixed on mature silicons)

  3. cursorfb is actually useless, hardware cursor should not be used
     this way, and the code was actually un-tested for a long time.

The code in this patch should be self-explanatory, I tried to add minimum
comments. As said, this is basically simplified, there are several things
still on the pending list:

  1. palette mode is un-supported and un-tested (although re-using the
     palette code of the base framebuffer is actually very easy now with
     previous clean-up patches)

  2. fb_pan_display for overlay(s) is un-supported

  3. the base framebuffer can actually be abstracted by 'pxafb_layer' as
     well, which will help further re-use of the code and keep a better
     and consistent structure. (This is the reason I named it 'pxafb_layer'
     instead of 'pxafb_overlay' or something alike)

See Documentation/fb/pxafb.txt for additional usage information.

Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Cc: Rodolfo Giometti &lt;giometti@linux.it&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] pxafb: cleanup of the timing checking code</title>
<updated>2008-12-29T09:59:17+00:00</updated>
<author>
<name>Eric Miao</name>
<email>ycmiao@ycmiao-hp520.(none)</email>
</author>
<published>2008-12-18T14:51:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3f16ff608a75c8bf28c8cafed12e076d67a3602a'/>
<id>3f16ff608a75c8bf28c8cafed12e076d67a3602a</id>
<content type='text'>
Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] pxafb: add support for FBIOPAN_DISPLAY by dma braching</title>
<updated>2008-12-29T09:59:17+00:00</updated>
<author>
<name>Eric Miao</name>
<email>ycmiao@ycmiao-hp520.(none)</email>
</author>
<published>2008-12-17T08:50:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6e354846e807e037751fdc8faaee8ad492177113'/>
<id>6e354846e807e037751fdc8faaee8ad492177113</id>
<content type='text'>
dma branching is enabled by extending the current setup_frame_dma()
function to allow a 2nd set of frame/palette dma descriptors to be
used.

As a result, pxafb_dma_buff.dma_desc[], pxafb_dma_buff.pal_desc[]
and pxafb_info.fdadr[] are doubled.

This allows maximum re-use of the current dma setup code, although
the pxafb_info.fdadr[xx] for FBRx register values looks a bit odd.

Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
dma branching is enabled by extending the current setup_frame_dma()
function to allow a 2nd set of frame/palette dma descriptors to be
used.

As a result, pxafb_dma_buff.dma_desc[], pxafb_dma_buff.pal_desc[]
and pxafb_info.fdadr[] are doubled.

This allows maximum re-use of the current dma setup code, although
the pxafb_info.fdadr[xx] for FBRx register values looks a bit odd.

Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] pxafb: allow video memory size to be configurable</title>
<updated>2008-12-29T09:59:16+00:00</updated>
<author>
<name>Eric Miao</name>
<email>eric.miao@marvell.com</email>
</author>
<published>2008-12-16T03:54:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=77e196752bdd76a0c58ab082658d28c6a90fa40e'/>
<id>77e196752bdd76a0c58ab082658d28c6a90fa40e</id>
<content type='text'>
The amount of video memory size is decided according to the following
order:

1. &lt;xres&gt; x &lt;yres&gt; x &lt;bits_per_pixel&gt; by default, which is the backward
   compatible way

2. size specified in platform data

3. size specified in module parameter 'options' string or specified in
   kernel boot command line (see updated Documentation/fb/pxafb.txt)

And now since the memory is allocated from system memory, the pxafb_mmap
can be removed and the default fb_mmap() should be working all right.

Also, since we now have introduced the 'struct pxafb_dma_buff' for DMA
descriptors and palettes, the allocation can be separated cleanly.

NOTE: the LCD DMA actually supports chained transfer (i.e. page-based
transfers), to simplify the logic and keep the performance (with less
TLB misses when accessing from memory mapped user space), the memory
is allocated by alloc_pages_*() to ensures it's physical contiguous.

Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The amount of video memory size is decided according to the following
order:

1. &lt;xres&gt; x &lt;yres&gt; x &lt;bits_per_pixel&gt; by default, which is the backward
   compatible way

2. size specified in platform data

3. size specified in module parameter 'options' string or specified in
   kernel boot command line (see updated Documentation/fb/pxafb.txt)

And now since the memory is allocated from system memory, the pxafb_mmap
can be removed and the default fb_mmap() should be working all right.

Also, since we now have introduced the 'struct pxafb_dma_buff' for DMA
descriptors and palettes, the allocation can be separated cleanly.

NOTE: the LCD DMA actually supports chained transfer (i.e. page-based
transfers), to simplify the logic and keep the performance (with less
TLB misses when accessing from memory mapped user space), the memory
is allocated by alloc_pages_*() to ensures it's physical contiguous.

Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Signed-off-by: Eric Miao &lt;ycmiao@ycmiao-hp520.(none)&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ARM] pxafb: make {backlight,lcd}_power() members of struct pxafb_info</title>
<updated>2008-12-02T06:43:47+00:00</updated>
<author>
<name>Eric Miao</name>
<email>eric.miao@marvell.com</email>
</author>
<published>2008-11-11T13:50:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a5718a14a1d91b871e65d4e6b349e39c22cac943'/>
<id>a5718a14a1d91b871e65d4e6b349e39c22cac943</id>
<content type='text'>
instead of holding them as static pointers.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
instead of holding them as static pointers.

Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pxafb: convert ctrlr_sem in a mutex</title>
<updated>2008-07-24T17:47:37+00:00</updated>
<author>
<name>Matthias Kaehlcke</name>
<email>matthias@kaehlcke.net</email>
</author>
<published>2008-07-24T04:31:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b91dbce56a8dbf312f6255d5121b295553d2b4db'/>
<id>b91dbce56a8dbf312f6255d5121b295553d2b4db</id>
<content type='text'>
The semaphore ctrlr_sem is used as a mutex.  Convert it to the mutex API.

Signed-off-by: Matthias Kaehlcke &lt;matthias@kaehlcke.net&gt;
Cc: Daniel Mack &lt;daniel@caiaq.de&gt;
Cc: Eric Miao &lt;eric.miao@marvell.com&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The semaphore ctrlr_sem is used as a mutex.  Convert it to the mutex API.

Signed-off-by: Matthias Kaehlcke &lt;matthias@kaehlcke.net&gt;
Cc: Daniel Mack &lt;daniel@caiaq.de&gt;
Cc: Eric Miao &lt;eric.miao@marvell.com&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pxafb: preliminary smart panel interface support</title>
<updated>2008-04-30T15:29:32+00:00</updated>
<author>
<name>Eric Miao</name>
<email>eric.miao@marvell.com</email>
</author>
<published>2008-04-30T07:52:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3c42a449107bf76c59b8e0b6a30d070e9696e49c'/>
<id>3c42a449107bf76c59b8e0b6a30d070e9696e49c</id>
<content type='text'>
Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Daniel Mack &lt;daniel@caiaq.de&gt;
Signed-off-by: Eric Miao &lt;eric.miao@marvell.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pxafb: move parallel LCD timing setup into dedicate function</title>
<updated>2008-04-30T15:29:32+00:00</updated>
<author>
<name>Eric Miao</name>
<email>eric.miao@marvell.com</email>
</author>
<published>2008-04-30T07:52:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=90eabbf0ec0c626cf5d186214cf8fc79150a7a29'/>
<id>90eabbf0ec0c626cf5d186214cf8fc79150a7a29</id>
<content type='text'>
the new_regs stuff has been removed, and all the setup (modification to those
fbi-&gt;reg_*) is protected with IRQ disabled

   * disable IRQ is too heavy here, provided that no IRQ context will
     touch the fbi-&gt;reg_* and the only possible contending place is
     in the CPUFREQ_POSTCHANGE (task context), a mutex will be better,
     leave this for future improvement

Signed-off-by: eric miao &lt;eric.miao@marvell.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the new_regs stuff has been removed, and all the setup (modification to those
fbi-&gt;reg_*) is protected with IRQ disabled

   * disable IRQ is too heavy here, provided that no IRQ context will
     touch the fbi-&gt;reg_* and the only possible contending place is
     in the CPUFREQ_POSTCHANGE (task context), a mutex will be better,
     leave this for future improvement

Signed-off-by: eric miao &lt;eric.miao@marvell.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pxafb: use completion for LCD disable wait code</title>
<updated>2008-04-30T15:29:32+00:00</updated>
<author>
<name>Eric Miao</name>
<email>eric.miao@marvell.com</email>
</author>
<published>2008-04-30T07:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2ba162b9335c6e3ba90c77637372fc9f078aae67'/>
<id>2ba162b9335c6e3ba90c77637372fc9f078aae67</id>
<content type='text'>
Signed-off-by: eric miao &lt;eric.miao@marvell.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: eric miao &lt;eric.miao@marvell.com&gt;
Cc: "Antonino A. Daplas" &lt;adaplas@pol.net&gt;
Cc: Russell King &lt;rmk@arm.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
