RE: Requirement for DSI video mode support

2010-10-27 Thread Taneja, Archit
Hi,

Tomi Valkeinen wrote:
 Hi,
 
 On Mon, 2010-09-20 at 22:18 +0200, ext Jorge Bustamante wrote:
 Hi,
 
 We (TI) have been working on a DSI video mode driver for OMAP4 and I
 
 I hope it's also for OMAP3?
 
 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.
 
 Hmm, why would most panels use more than one VC? I haven't
 seen a single one =).

Command mode panels will work fine with a single VC, I don't think video mode
can run by using only one VC.

Also, for command mode, there isn't a restriction to use a single VC. If you
configure one VC to have slave port as source and the other as video port, the 
need
to switch the VC source between L4 and VP would go away.

The most optimal way would be to use one VC for each peripheral, but I don't 
think
the usecase of connecting 4 panels to the same DSI lanes would ever be needed.

 
 Nevertheless, it should be possible to use multiple VCs in one driver.
 I've implemented a driver for a buffer chip that used all 4 channels.

So did you connect more than one panel to DSI? I am curious about how it works

[snip]

 
 - If we want a user to switch between modes, we may need to have a
 
 While I don't see any reason to forbid changing modes, I
 don't see any real reason to implement switching between the
 modes either. If it comes for free, sure, but if it means
 lots of implementation, I'd rather leave it out. Or do you
 have some use cases where switching modes is important?
 

There isn't any use case where we would use a panel for video mode and
command mode at different points in time. But if the panel supports both
video and command mode there should be some option (compile time/ boot time)
to choose which mode is to be used. I guess its more for the sake of 
completeness
of the panels capabilities.

Regards,

Archit
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Requirement for DSI video mode support

2010-10-27 Thread Tomi Valkeinen
On Wed, 2010-10-27 at 08:34 +0200, ext Taneja, Archit wrote:
 Hi,
 
 Tomi Valkeinen wrote:
  Hi,
  
  On Mon, 2010-09-20 at 22:18 +0200, ext Jorge Bustamante wrote:
  Hi,
  
  We (TI) have been working on a DSI video mode driver for OMAP4 and I
  
  I hope it's also for OMAP3?
  
  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.
  
  Hmm, why would most panels use more than one VC? I haven't
  seen a single one =).
 
 Command mode panels will work fine with a single VC, I don't think video mode
 can run by using only one VC.

Okay, I think we're talking about different VCs =). It's rather
confusing in the TRM. A VC (in DSI packet sense) refers to the channel
ID sent in the packet, and a VC (in OMAP DSS register sense) refers to a
set of configurations used to send DSI packets. I think we need to come
up with terms that clearly make the distinction between these, because
they really don't have anything in common. (I'd like to hear the
rationale for naming OMAP's config registers as VCs... =).

 Also, for command mode, there isn't a restriction to use a single VC. If you
 configure one VC to have slave port as source and the other as video port, 
 the need
 to switch the VC source between L4 and VP would go away.

This was what I had at some point. However, I was unsure how
transmissions are synchronized in that case. If there's transmission
going on from VP via, say, VC0, and I send a message from L4 via VC1,
what happens? Does VC1 wait until VC0 is done? Or does it send the
packet between VC0's packets?

But I agree, different VCs for L4 and VP usage would make some things a
bit simpler.

 The most optimal way would be to use one VC for each peripheral, but I don't 
 think
 the usecase of connecting 4 panels to the same DSI lanes would ever be needed.

Yes, that is quite unlikely. But it's difficult to say what kind of
devices one needs to connect (see below), but it could be that we may
come up with some kind of rules that fit to all cases.

For example, is there ever need to have to OMAP VCs configured as VP at
the same time? If not, we know that there will always be 3 OMAP VCs free
for L4 use. Etc. (I didn't think this really, just throwing ideas =).

  
  Nevertheless, it should be possible to use multiple VCs in one driver.
  I've implemented a driver for a buffer chip that used all 4 channels.
 
 So did you connect more than one panel to DSI? I am curious about how it works

The chip had it's own framebuffer memory, and you could connect two
displays to the chip. The virtual channel mapping was something like
this:
0 - routed to first panel
1 - routed to second panel
2 - buffer chip config
3 - buffer chip framebuffer config

 [snip]
 
  
  - If we want a user to switch between modes, we may need to have a
  
  While I don't see any reason to forbid changing modes, I
  don't see any real reason to implement switching between the
  modes either. If it comes for free, sure, but if it means
  lots of implementation, I'd rather leave it out. Or do you
  have some use cases where switching modes is important?
  
 
 There isn't any use case where we would use a panel for video mode and
 command mode at different points in time. But if the panel supports both
 video and command mode there should be some option (compile time/ boot time)
 to choose which mode is to be used. I guess its more for the sake of 
 completeness
 of the panels capabilities.

I agree.

 Tomi


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Requirement for DSI video mode support

2010-10-27 Thread Taneja, Archit
Hi,

 
 Command mode panels will work fine with a single VC, I don't think
 video mode can run by using only one VC.
 
 Okay, I think we're talking about different VCs =). It's
 rather confusing in the TRM. A VC (in DSI packet sense)
 refers to the channel ID sent in the packet, and a VC (in
 OMAP DSS register sense) refers to a set of configurations
 used to send DSI packets. I think we need to come up with
 terms that clearly make the distinction between these,
 because they really don't have anything in common. (I'd like
 to hear the rationale for naming OMAP's config registers as VCs... =).
 

Yeah, it took me a while to figure out the difference from the TRM too.

As far as the driver is concerned, I think there was a dest_per member
for each set of VC configurations, that really made things clear.

Its not in the present kernel, but it would be nice to get it back. The
present approach always correlates VC0 configuration to VC_ID 0,
1 to 1 and so on. That confused me for a while again :|

 Also, for command mode, there isn't a restriction to use a single VC.
 If you configure one VC to have slave port as source and the other as
 video port, the need to switch the VC source between L4 and VP would go away.
 
 This was what I had at some point. However, I was unsure how
 transmissions are synchronized in that case. If there's
 transmission going on from VP via, say, VC0, and I send a
 message from L4 via VC1, what happens? Does VC1 wait until
 VC0 is done? Or does it send the packet between VC0's packets?
 

I don't know how things works internally, but I am sure the 2 VC
configuration works for a handful of phones :)

Is this a thing that should be explained in the DSI specification, or
is this something that should be taken care of while implementing DSI
hardware? I'll try to find out.

 But I agree, different VCs for L4 and VP usage would make
 some things a bit simpler.
 
 The most optimal way would be to use one VC for each peripheral, but I
 don't think the usecase of connecting 4 panels to the same
 DSI lanes would ever be needed.
 
 Yes, that is quite unlikely. But it's difficult to say what
 kind of devices one needs to connect (see below), but it
 could be that we may come up with some kind of rules that fit
 to all cases.
 
 For example, is there ever need to have to OMAP VCs
 configured as VP at the same time? If not, we know that there
 will always be 3 OMAP VCs free for L4 use. Etc. (I didn't
 think this really, just throwing ideas =).
 

Yes it would be good to more of such rules. I don't think the
one above is valid for OMAP4 though. One of the DSI blocks has
2 video ports as input. One VC can be configured in Video mode + Video Port
and the other can be Command mode + Video port, and command mode and video
port can run together. We haven't tried it out yet (and don't want to either :))

 
 Nevertheless, it should be possible to use multiple VCs in one driver.
 I've implemented a driver for a buffer chip that used all 4 channels.
 
 So did you connect more than one panel to DSI? I am curious about how
 it works
 
 The chip had it's own framebuffer memory, and you could
 connect two displays to the chip. The virtual channel mapping
 was something like
 this:
 0 - routed to first panel
 1 - routed to second panel
 2 - buffer chip config
 3 - buffer chip framebuffer config
 

That's interesting, slightly out of topic question: How would a
buffer chip / LVDS bridge chip fit in the DSS2 fw. Should it be in the
panel driver or have its own driver? Asking out of curiosity.

Regards,

Archit--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Requirement for DSI video mode support

2010-10-27 Thread Tomi Valkeinen
On Wed, 2010-10-27 at 10:17 +0200, ext Taneja, Archit wrote:
 Hi,
 
  
  Command mode panels will work fine with a single VC, I don't think
  video mode can run by using only one VC.
  
  Okay, I think we're talking about different VCs =). It's
  rather confusing in the TRM. A VC (in DSI packet sense)
  refers to the channel ID sent in the packet, and a VC (in
  OMAP DSS register sense) refers to a set of configurations
  used to send DSI packets. I think we need to come up with
  terms that clearly make the distinction between these,
  because they really don't have anything in common. (I'd like
  to hear the rationale for naming OMAP's config registers as VCs... =).
  
 
 Yeah, it took me a while to figure out the difference from the TRM too.
 
 As far as the driver is concerned, I think there was a dest_per member
 for each set of VC configurations, that really made things clear.

There was, yes. But that wasn't perfect either. You can use one OMAP VC
register set to send packets to any peripheral by using different
virtual channel ID.

 Its not in the present kernel, but it would be nice to get it back. The
 present approach always correlates VC0 configuration to VC_ID 0,
 1 to 1 and so on. That confused me for a while again :|
 
  Also, for command mode, there isn't a restriction to use a single VC.
  If you configure one VC to have slave port as source and the other as
  video port, the need to switch the VC source between L4 and VP would go 
  away.
  
  This was what I had at some point. However, I was unsure how
  transmissions are synchronized in that case. If there's
  transmission going on from VP via, say, VC0, and I send a
  message from L4 via VC1, what happens? Does VC1 wait until
  VC0 is done? Or does it send the packet between VC0's packets?
  
 
 I don't know how things works internally, but I am sure the 2 VC
 configuration works for a handful of phones :)
 
 Is this a thing that should be explained in the DSI specification, or
 is this something that should be taken care of while implementing DSI
 hardware? I'll try to find out.

It's DSI implementation spesific. It's about how OMAP HW handles the
transmissions. I would guess that multiple OMAP VCs can send packets at
the same time (but one packet on the DSI lines at one time, of course).
But I'm not sure.

  But I agree, different VCs for L4 and VP usage would make
  some things a bit simpler.
  
  The most optimal way would be to use one VC for each peripheral, but I
  don't think the usecase of connecting 4 panels to the same
  DSI lanes would ever be needed.
  
  Yes, that is quite unlikely. But it's difficult to say what
  kind of devices one needs to connect (see below), but it
  could be that we may come up with some kind of rules that fit
  to all cases.
  
  For example, is there ever need to have to OMAP VCs
  configured as VP at the same time? If not, we know that there
  will always be 3 OMAP VCs free for L4 use. Etc. (I didn't
  think this really, just throwing ideas =).
  
 
 Yes it would be good to more of such rules. I don't think the
 one above is valid for OMAP4 though. One of the DSI blocks has
 2 video ports as input. One VC can be configured in Video mode + Video Port
 and the other can be Command mode + Video port, and command mode and video
 port can run together. We haven't tried it out yet (and don't want to either 
 :))
 
  
  Nevertheless, it should be possible to use multiple VCs in one driver.
  I've implemented a driver for a buffer chip that used all 4 channels.
  
  So did you connect more than one panel to DSI? I am curious about how
  it works
  
  The chip had it's own framebuffer memory, and you could
  connect two displays to the chip. The virtual channel mapping
  was something like
  this:
  0 - routed to first panel
  1 - routed to second panel
  2 - buffer chip config
  3 - buffer chip framebuffer config
  
 
 That's interesting, slightly out of topic question: How would a
 buffer chip / LVDS bridge chip fit in the DSS2 fw. Should it be in the
 panel driver or have its own driver? Asking out of curiosity.

In a perfect world we would have separate panel drivers for the panels,
and driver for the buffer chip. And they could be connected as you want.
But my implementation was a combined buffer chip/panel driver, handling
everything. The DSS architecture isn't flexible enough (yet =).

 Tomi


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Requirement for DSI video mode support

2010-10-27 Thread Qassid, Youcef
Hi,

Please see [YQ].

Regards,
Youcef


Texas Instruments France SA, 821 Avenue Jack Kilby, 06270 Villeneuve Loubet. 
036 420 040 R.C.S Antibes. Capital de EUR 753.920

-Original Message-

From: Tomi Valkeinen [mailto:tomi.valkei...@nokia.com]
Sent: Wednesday, October 27, 2010 2:18 PM
To: Taneja, Archit
Cc: ext Jorge Bustamante; linux-omap@vger.kernel.org; Iovescu, Magdalena; 
Menon, Nishanth; Qassid, Youcef; Aguirre, Alberto
Subject: RE: Requirement for DSI video mode support

On Wed, 2010-10-27 at 10:17 +0200, ext Taneja, Archit wrote:
 Hi,

 
  Command mode panels will work fine with a single VC, I don't think
  video mode can run by using only one VC.
 
  Okay, I think we're talking about different VCs =). It's
  rather confusing in the TRM. A VC (in DSI packet sense)
  refers to the channel ID sent in the packet, and a VC (in
  OMAP DSS register sense) refers to a set of configurations
  used to send DSI packets. I think we need to come up with
  terms that clearly make the distinction between these,
  because they really don't have anything in common. (I'd like
  to hear the rationale for naming OMAP's config registers as VCs... =).
 

 Yeah, it took me a while to figure out the difference from the TRM too.

 As far as the driver is concerned, I think there was a dest_per member
 for each set of VC configurations, that really made things clear.

There was, yes. But that wasn't perfect either. You can use one OMAP VC
register set to send packets to any peripheral by using different
virtual channel ID.

[YQ]: Command Mode will work fine with any OMAP VC register as you can control 
the VC ID field (generally set to 0). But you cannot control the VC for 
synchronization packets that are generated and sent automatically by the DSI is 
in Video Mode.


 Its not in the present kernel, but it would be nice to get it back. The
 present approach always correlates VC0 configuration to VC_ID 0,
 1 to 1 and so on. That confused me for a while again :|

  Also, for command mode, there isn't a restriction to use a single VC.
  If you configure one VC to have slave port as source and the other as
  video port, the need to switch the VC source between L4 and VP would go 
  away.
 
  This was what I had at some point. However, I was unsure how
  transmissions are synchronized in that case. If there's
  transmission going on from VP via, say, VC0, and I send a
  message from L4 via VC1, what happens? Does VC1 wait until
  VC0 is done? Or does it send the packet between VC0's packets?
 

 I don't know how things works internally, but I am sure the 2 VC
 configuration works for a handful of phones :)

 Is this a thing that should be explained in the DSI specification, or
 is this something that should be taken care of while implementing DSI
 hardware? I'll try to find out.

It's DSI implementation spesific. It's about how OMAP HW handles the
transmissions. I would guess that multiple OMAP VCs can send packets at
the same time (but one packet on the DSI lines at one time, of course).
But I'm not sure.

[YQ] While using OCP (L3/L4) and Video Port interfaces for Command Mode you 
have several possibilities on OMAP4. You can choose the arbitration scheme.
While the DSI is used in Video Mode, the packets you want to send via the OCP 
interface are transmitted during the blanking time. It is the interleaved mode. 
You have to respect some timing constraint for this feature.
This is my understanding. I still have to validate these on silicon.

  But I agree, different VCs for L4 and VP usage would make
  some things a bit simpler.
 
  The most optimal way would be to use one VC for each peripheral, but I
  don't think the usecase of connecting 4 panels to the same
  DSI lanes would ever be needed.
 
  Yes, that is quite unlikely. But it's difficult to say what
  kind of devices one needs to connect (see below), but it
  could be that we may come up with some kind of rules that fit
  to all cases.
 
  For example, is there ever need to have to OMAP VCs
  configured as VP at the same time? If not, we know that there
  will always be 3 OMAP VCs free for L4 use. Etc. (I didn't
  think this really, just throwing ideas =).
 

 Yes it would be good to more of such rules. I don't think the
 one above is valid for OMAP4 though. One of the DSI blocks has
 2 video ports as input. One VC can be configured in Video mode + Video Port
 and the other can be Command mode + Video port, and command mode and video
 port can run together. We haven't tried it out yet (and don't want to either 
 :))

 
  Nevertheless, it should be possible to use multiple VCs in one driver.
  I've implemented a driver for a buffer chip that used all 4 channels.
 
  So did you connect more than one panel to DSI? I am curious about how
  it works
 
  The chip had it's own framebuffer memory, and you could
  connect two displays to the chip. The virtual channel mapping
  was something like
  this:
  0 - routed to first panel
  1 - routed to second panel
  2

Re: Requirement for DSI video mode support

2010-10-13 Thread Jorge Bustamante
On Fri, Oct 8, 2010 at 5:12 AM, Tomi Valkeinen tomi.valkei...@nokia.com wrote:
 Hi,

 On Mon, 2010-09-20 at 22:18 +0200, ext Jorge Bustamante wrote:
 Hi,

 We (TI) have been working on a DSI video mode driver for OMAP4 and I

 I hope it's also for OMAP3?


I am not aware of any videomode display using OMAP3... so it would be
hard to test it with OMAP3, but I think we can make sure that it
doesn't break existing command mode drivers there at least.

 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.

 Hmm, why would most panels use more than one VC? I haven't seen a single
 one =).

 Nevertheless, it should be possible to use multiple VCs in one driver.
 I've implemented a driver for a buffer chip that used all 4 channels.
 But it's true that there's no allocation of the VCs, so if you have two
 panels at the same time, there's no proper way to make sure they don't
 use overlapping VCs.


You are right, my sentence was wrong regarding VCs, most of them -if
not all- require just one VC, but it is still handy as you mention to
be able to use more than one; for instance, using one for sending
commands (LP mode) and one for video data (HS mode), both pointing to
same VC ID of course. Since VCs are not tied to a particular VC ID, I
think we can manage them as mere resources and implementing some kind
of pool sounds good to me in order to avoid overlapping VCs as you
mention.

 - 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.

 These are sound good to me.

 Design ideas:

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

 I think that's a good choice. At some point I thought of separating DSI
 PLL, CIO and core stuff to separate files, but I never had time. And it
 would also mean making lots of functions non-static.


From my personal point of view, we could probably manage to make it
work on same file and test it for a while first and just then try to
do it on separate files to avoid making a lot of changes at once. This
is having in mind that most of the proposed points are actually
additions that apply to DSI command mode as well (BTA, HS clocks, VCs,
etc).

 - 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

 While I don't see any reason to forbid changing modes, I don't see any
 real reason to implement switching between the modes either. If it comes
 for free, sure, but if it means lots of implementation, I'd rather leave
 it out. Or do you have some use cases where switching modes is
 important?

  Tomi




Again, you are right, I believe that dynamically switching modes is
not that important now, and agree that there is not a real reason to
implement it... probably it wouldn't be that hard to include it but I
think the simpler the patch the better for now, right?

Regards,
Jorge 

Re: Requirement for DSI video mode support

2010-10-08 Thread Tomi Valkeinen
Hi,

On Mon, 2010-09-20 at 22:18 +0200, ext Jorge Bustamante wrote:
 Hi,
 
 We (TI) have been working on a DSI video mode driver for OMAP4 and I

I hope it's also for OMAP3?

 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.

Hmm, why would most panels use more than one VC? I haven't seen a single
one =).

Nevertheless, it should be possible to use multiple VCs in one driver.
I've implemented a driver for a buffer chip that used all 4 channels.
But it's true that there's no allocation of the VCs, so if you have two
panels at the same time, there's no proper way to make sure they don't
use overlapping VCs.

 - 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.

These are sound good to me.

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

I think that's a good choice. At some point I thought of separating DSI
PLL, CIO and core stuff to separate files, but I never had time. And it
would also mean making lots of functions non-static.

 - 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

While I don't see any reason to forbid changing modes, I don't see any
real reason to implement switching between the modes either. If it comes
for free, sure, but if it means lots of implementation, I'd rather leave
it out. Or do you have some use cases where switching modes is
important?

 Tomi


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html