All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Cc: linux-omap@vger.kernel.org
Subject: Re: [PREVIEW 2] New display subsystem for OMAP2/3
Date: Mon, 22 Sep 2008 18:10:45 +0300	[thread overview]
Message-ID: <20080922151045.GC8171@atomide.com> (raw)
In-Reply-To: <1222094917.8299.33.camel@tubuntu>

Hi,

* Tomi Valkeinen <tomi.valkeinen@nokia.com> [080922 17:49]:
> Hi,
> 
> I sent a preview of a new display subsystem for OMAP2/3 some time ago:
> http://marc.info/?l=linux-omap&m=122114505030542&w=2
> 
> I now have updated it, the patches are at the same place:
> http://www.bat.org/~tomba/omap-dss/

This discussion should go to linux-fbdev-devel list. Please keep l-o
list Cc'd though. Also you should post the patches as a proper inline
series, please see git-send-email man page.

Tony

> 
> What's new
> ----------
> 
> As was pointed out in the feedback, my version was not enough to fully
> utilize OMAP's DISPC. I did a bit of a rewrite and I now model the
> overlays and overlay managers. This conveniently allows multiple display
> configurations, and it also solved some other problems I had previously.
> The code is still bit of a mess after this change.
> 
> The tv-out and DVI are also now working on OMAP3 SDP board, and you can
> switch between, and combine, LCD, TV-out and DVI outputs. The current
> interface for this is a couple of hackish sysfs files.
> 
> The Kconfig is also a bit more versatile, you can leave out the parts of
> the DSS that you don't need.
> 
> Overlays
> --------
> 
> Here's the default setup on OMAP3 SDP board. All planes go to LCD. DVI
> and TV-out are not in use. The columns from left to right are:
> framebuffers, overlays, overlay managers, displays. Framebuffers are
> handled by omapfb, and the rest by the DSS.
> 
> FB0 --- GFX  -\            DVI
> FB1 --- VID1 --+- LCD ---- LCD
> FB2 --- VID2 -/   TV ----- TV
> 
> In the examples below we use DVI and TV so that the setup changes to the
> following:
> 
> FB0 --- GFX  -\         -- DVI
> FB1 --- VID1 --+- LCD -/   LCD
> FB2 --- VID2 ---- TV ----- TV
> 
> It is also possible to setup a virtual overlay & overlay manager, which
> can be used with displays that can be updated with CPU/sDMA. For
> example:
> 
> FB3 --- VOVL ---- VMGR
> 
> You can also change the overlay to which a framebuffer is connected.
> With this we can, for example, change fb0 from DISPC overlay to virtual
> overlay while X is running on the framebuffer. This way X doesn't notice
> anything, but DISPC is free for other displays.
> 
> And, although not implemented yet, one framebuffer can be connected to
> multiple overlays. This will allow cloning of a framebuffer to multiple
> outputs.
> 
> Sysfs
> -----
> The sysfs interface is a hack, but works for testing. And I don't think
> sysfs interface is the best for this in the final version.
> 
> In /sys/devices/platform/omapfb we have four files: framebuffers,
> overlays, managers and displays. You can read them so see the current
> setup, and change it by writing "arg1:arg2" to it. So changing
> framebuffer 0 to point to vid1 overlay would require writing "0:vid1" to
> framebuffers file.
> 
> Examples
> --------
> In these examples I have symlink omapfb -> /sys/devices/platform/omapfb
> 
> # VIDEO2 plane to TV out
> echo "vid2:" > omapfb/overlays                                 # (1)
> fbset -fb /dev/fb2 -xres 720 -pw 720 -yres 482 -ph 482 -pe 1   # (2)
> echo "vid2:tv" > omapfb/overlays                               # (3)
> echo "tv:1" > omapfb/displays                                  # (4)
> 
> 1. Detach vid2 overlay. Otherwise the DSS will reject the fbset, as
>    the asked resolution is larger than the LCD's resolution.
> 2. Set x/y res, and enable plane
> 3. Attach vid2 to tv overlay manager.
> 4. Enable tv display
> 
> # Use DVI instead of LCD
> echo "lcd:0" > omapfb/displays                                 # (1)
> echo "lcd:" > omapfb/managers                                  # (2)
> # switch the dvi/lcd dip-switch                                # (3)
> fbset -fb /dev/fb0 -xres 800 -pw 800 -yres 600 -ph 600 -pe 1   # (4)
> echo "lcd:dvi" > omapfb/managers                               # (5)
> echo "dvi:1" > omapfb/displays                                 # (6)
> 
> 1. Disable LCD display. We have to disable LCD before we can enable DVI
> 2. Detach LCD overlay manager
> 3. Here you have to set the DIP switch to DVI position
> 4. Set the new resolution
> 5. Attach LCD overlay manager to DVI display
> 6. Enable DVI display
> 
>  Tomi
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2008-09-22 15:10 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-22 14:48 [PREVIEW 2] New display subsystem for OMAP2/3 Tomi Valkeinen
2008-09-22 15:10 ` Tony Lindgren [this message]
2008-09-23  8:19   ` Tomi Valkeinen
2008-09-23  8:41     ` Koen Kooi
2008-09-23  9:24       ` Tony Lindgren
2008-09-23 10:27         ` Koen Kooi
2008-09-23 10:40           ` Tony Lindgren
2008-09-23 11:08             ` Hiremath, Vaibhav

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=20080922151045.GC8171@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=tomi.valkeinen@nokia.com \
    /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.