Re: [PREVIEW 2] New display subsystem for OMAP2/3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

* Tomi Valkeinen <tomi.valkeinen@xxxxxxxxx> [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@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux