public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
* Requirement for DSI video mode support
@ 2010-09-20 20:18 Jorge Bustamante
  2010-10-08 10:12 ` Tomi Valkeinen
  0 siblings, 1 reply; 8+ messages in thread
From: Jorge Bustamante @ 2010-09-20 20:18 UTC (permalink / raw)
  To: linux-omap, tomi.valkeinen; +Cc: m-iovescu1, nm, archit, y-qassid, a-aguirre

Hi,

We (TI) have been working on a DSI video mode driver for OMAP4 and I
am aware that other people are working with similar drivers. We had to
tweak the code to make the drivers work with current code but we would
like to make it the correct way, that is, introducing a proper
functionality instead of inserting tweaks in the present command mode
driver. Therefore, there is an initiative from us to modify current
dss/dsi code to support DSI video mode.

We have collected a list of requirements and ideas (with the help of
ppl copied) from our experience working with these drivers, but it
would be great if you can discuss/comment further on this.

Requirements:

- A better way of exposing VC's to a panel driver, since most panels
use more than one VC. Currently the design supports only one per
panel. Perhaps a VC resource pool could be created.
- A way of imposing restrictions on clock sources based on dsi mode.
- Runtime calculation of required clocks and PLL parameters. This is
to reduce complexity in clock calculations, specially when having two
panels running at the same time.
- A way to pass specific requirements from panel driver to DSI driver
(enable/disable BTA, set HS Clk always on, etc).
- Remove some hardcoded values in dsi.c and make the panel pass the
information to DSI driver(RX, TX fifo sizes of VCs, enabling/disabling
dsi timers, etc)
- A cleaner way of handling both DSI1 and DSI2 blocks(and more in
omap5) in the same driver.
- A way to easily set non-burst event mode, non-burst pulse mode and
burst mode configuration as defined on DSI protocol specs.
- A way to calculate correct DSI blanking parameters based on panel
blanking requirements (for DSI Video panels, these will be have to be
specified statically somewhere, much like DPI displays).
- Remove timeout error/warnings when disabling dsi phy interface since
on video mode it should wait instead for next vsync.


Design ideas:

- It could actually be worthwhile to have separate files for command
and video mode and a core dsi driver file.

- We can have a enum like this to choose between modes:

plat/display.h can have an enum like:
enum omap_dss_dsi_mode {
    OMAP_DSS_DSI_CMDMODE   = 1 << 0,
    OMAP_DSS_DSI_VIDEOMODE = 1 << 1,

};
Nit pick - either make it #define and have bit offset as above OR
Better still, you wont need both at the same time, so bit offset wont be
useful too much.. OMAP_DSS_DSI_CMDMODE = 1, OMAP_DSS_DSI_VIDEOMODE = 2,

- If we want a user to switch between modes, we may need to have a
member like "supported_modes" which could check if the desired mode is
supported by the panel. Switching between modes at runtime would be
quite unlikely (and hard). We might want to stick with the above if we
want a member like supported_modes:
    .supported_modes = OMAP_DSS_DSI_CMDMODE | OMAP_DSS_DSI_VIDEOMODE;

- The dssdev struct can have a member dsi_mode of the above type.

- This would look nice in the board file and would also be useful if
there are multiple panels.

- We can have a bootarg to choose one of the modes (module parameter),
the driver can check against this member during init.


Let me know any comments...


Regards,
Jorge Bustamante
--
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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-10-27 14:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-20 20:18 Requirement for DSI video mode support Jorge Bustamante
2010-10-08 10:12 ` Tomi Valkeinen
2010-10-13 19:54   ` Jorge Bustamante
2010-10-27  6:34   ` Taneja, Archit
2010-10-27  7:17     ` Tomi Valkeinen
2010-10-27  8:17       ` Taneja, Archit
2010-10-27 12:17         ` Tomi Valkeinen
2010-10-27 14:31           ` Qassid, Youcef

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox