All of lore.kernel.org
 help / color / mirror / Atom feed
From: Inki Dae <inki.dae@samsung.com>
To: Thierry Reding <thierry.reding@gmail.com>
Cc: Andrzej Hajda <a.hajda@samsung.com>,
	treding@nvidia.com, dri-devel@lists.freedesktop.org,
	linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH v2 1/2] drm/mipi-dsi: add (LPM) Low Power Mode transfer support
Date: Thu, 07 Aug 2014 16:51:18 +0900	[thread overview]
Message-ID: <53E32FF6.6050402@samsung.com> (raw)
In-Reply-To: <20140807065801.GD17340@ulmo>

On 2014년 08월 07일 15:58, Thierry Reding wrote:
> On Thu, Aug 07, 2014 at 02:09:19AM +0900, Inki Dae wrote:
>> 2014-08-06 16:43 GMT+09:00 Thierry Reding <thierry.reding@gmail.com>:
>>> On Wed, Aug 06, 2014 at 04:11:54PM +0900, Inki Dae wrote:
>>>> On 2014년 08월 05일 20:12, Thierry Reding wrote:
>>> [...]
>>>>> I think that low power mode is more often used for command transmission
>>>>> (in host-driven mode). I'm not sure how much sense it really makes to
>>>>> transmit video data in low power mode. It also seems like low power mode
>>>>> is what all peripherals need to support (if they can do command mode).
>>>>> Hence I'd like to propose the attached patch that makes all command
>>>>> messages use low power mode.
>>>>
>>>> To use low power mode, I think SoC drivers should add more codes:
>>>> checking xxx_MSG_LPM, and maybe disabling HS clock. My patch does
>>>> exactly that,
>>>> http://www.spinics.net/lists/linux-samsung-soc/msg34866.html
>>>
>>> I agree in general that DSI host drivers need to check the flags to make
>>> a decision about which mode to enable. But your patch also introduces
>>> additional flags that I don't think are necessary (at least for any of
>>> the use-cases discussed so far).
>>>
>>> As I understand it the MIPI_DSI_MODE_CMD_LPM and MIPI_DSI_MODE_VIDEO_LPM
>>> flags that you introduce would advertise that the device only supports
>>> low power mode for command or video modes respectively. However, I doubt
>>
>> Not so. My intention is to add LPM support for video and command data
>> transfers because mipi-dsi framework enforces implicitly using HS mode
>> for by default.
> 
> No, it doesn't enforce anything at this point. Everyone is free to use
> whatever they see fit. Drivers that require low power mode for command
> transmission can set the MIPI_DSI_MSG_USE_LPM flag in messages. For
> video there's no way to specify what a given peripheral uses, so DSI
> host controller drivers are free to do whatever they want.
> 
> So for command data we already have a means, and for video data I don't
> think it makes sense to use low power mode. Therefore I don't think
> these new flags are necessary.
> 
>>> that there really are devices that only support low power video mode. It
>>> wouldn't make much sense because you'd get a maximum of 10 MHz for the
>>> clock, which is about 1.6 frames per second at 1920x1080 resolution (not
>>> counting blanking). And even with lower resolutions such as 1024x768 it
>>> would be somewhere around 4 frames per second. And I think it's
>>> reasonable to assume that we'll see that kind of resolution become very
>>> rare in the future.
>>>
>>> So my point is that devices which support video mode will always support
>>> high speed mode for video transmission too. Similarly, if a device
>>> supports command mode, then it will likely support it in low-power mode,
>>> and optionally in high speed mode too.
>>>
>>>> And what I and Andrzej don't make sure is non-continuous clock mode. Do
>>>> you know how non-continuous clock mode is related to HS clock?
>>>
>>> As far as I can tell non-continuous mode simply means that the host can
>>> turn off the HS clock after a high-speed transmission. I think Andrzej
>>> mentioned this already in another subthread, but this is an optional
>>> mode that peripherals can support if they have extra circuitry that
>>> provides an internal clock. Peripherals that don't have such circuitry
>>> may rely on the HS clock to perform in between transmissions and
>>> therefore require the HS clock to be always on (continuous mode). That's
>>> what the MIPI_DSI_CLOCK_NON_CONTINUOUS flag is: it advertises that the
>>> peripheral supports non-continuous mode and therefore the host can turn
>>> the HS clock off after high-speed transmissions.
>>
>> What I don't make sure is this sentence. With
>> MIPI_DSI_CLOCK_NON_CONTIUOUS flag, I guess two possible operations.
>> One is,
>> 1. host controller will generates signals if a bit of a register
>> related to non-contiguous clock mode is set or unset.
>> 2. And then video data is transmitted to panel in HS mode.
>> 3. And then D-PHY detects LP-11 signal (positive and negative lane all
>> are high).
>> 4. And then D-PHY disables HS clock of host controller.
>> 5. At this time, operation mode of host controller becomes LPM.
>>
>> Other is,
>> 1. host controller will generates signals if a bit of a register
>> related to non-contiguous clock mode is set or unset.
>> 2. And then D-PHY detects LP-11 signal (positive and negative lane all
>> are high).
>> 3. And then video data is transmitted to panel in LPM.
>> 4. At this time, operation mode of host controller becomes LPM.
>>
>> It seems that you says latter case.
> 
> No. High speed clock and low power mode are orthogonal. Non-continuous
> mode simply means that the clock lane enters LP-11 between HS
> transmissions (see 5.6 "Clock Management" of the DSI specification).
>

It seems that clock lane enters LP-11 regardless of HS clock enabled if
non-continous mode is used. Right? And also it seems that non-continous
mode is different from LPM at all because with non-continuous mode,
command data is transmitted to panel in HS mode, but with LPM, command
data is transmitted to panel in LP mode. Also right?

If so, shouldn't the host driver disable HS clock, in case of LP mode,
before the host driver transmits command data? And  it seems that only
one of these two flags, MSG_LPM and NON-CONTINUOUS, should be set by
panel driver because with NON-CONTINUOUS clock mode, host controller
generate clock and data lane signals regardless of controlling HS clock.

Thanks,
Inki Dae

> For low power mode the clock is embedded in the signal on the data lane
> and therefore independent of the high speed clock.
> 
> A peripheral device will set the MIPI_DSI_CLOCK_NON_CONTINUOUS flag if
> it supports non-continuous mode of operation. That is, it has own
> circuitry to generate a clock that can be used for clocked operations
> between high-speed transmissions (when the HS clock isn't available).
> 
>> I really know that with non-contiguous clock mode, HS clock of host
>> controller can be disabled. My question is who controls HS clock in
>> this case. D-PHY or host controller?
> 
> I suspect it's usually the host controller. But does it matter? From a
> software perspective we usually only access the host controller, so the
> D-PHY is usually completely hidden (except maybe for some registers in
> the host controller to configure it).
> 
>> In other words, with LPM and MIPI_DSI_CLOCK_NON_CONTIUOUS flags,
>> should the host driver check these two flags to disable HS clock? or
>> In this case, does the D-PHY disable HS clock regardless of host
>> driver?
> 
> Like I said, low power mode and non-continuous clock are not directly
> related. Peripherals may require the HS clock to be always on and still
> use low power mode for transmissions.
> 
>>>> Do you intend to control transfer mode - HS or LPM - only for command
>>>> data? If so, we would need only one flag, i.e., MIPI_DSI_MODE_HS.
>>>
>>> We already have that flag, it's called MIPI_DSI_MSG_USE_LPM. Given the
>>> above discussion I think it may still be worthwhile to invert the
>>> meaning of the flag and rename it MIPI_DSI_MSG_USE_HS, so that all
>>> messages are indeed sent in low power mode by default.
>>
>> Yes, it may be reasonable. But I'm not sure that there is no any issue
>> in case of transmitting always video data in HS mode.
> 
> Like I said, with low power mode you can't meet the bandwidth
> requirements of any reasonable resolution and framerate, so I would
> assume that video data can always be transmitted in HS mode. So even if
> some device required video data transmission to use low power mode, then
> that should be considered the oddball peripheral and it could be handled
> by an extra flag.
> 
> By default we should still assume high-speed mode for video data packet
> transmissions. We can address those quirks when we actually encounter
> peripherals that don't work under those assumptions.
> 
> Thierry
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2014-08-07  7:51 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-28  2:00 [PATCH v2 0/2] drm/mipi-dsi: support lpm (low power mode) transfer Inki Dae
2014-07-28  2:00 ` [PATCH v2 1/2] drm/mipi-dsi: add (LPM) Low Power Mode transfer support Inki Dae
2014-07-28 16:09   ` Andrzej Hajda
2014-07-29  0:57     ` YoungJun Cho
2014-07-29 10:23       ` Andrzej Hajda
2014-08-03  7:03         ` Inki Dae
2014-08-03  7:16           ` Inki Dae
2014-08-05  8:12             ` Andrzej Hajda
2014-07-29  3:30     ` Inki Dae
2014-08-05 11:12     ` Thierry Reding
2014-08-06  7:11       ` Inki Dae
2014-08-06  7:43         ` Thierry Reding
2014-08-06 17:09           ` Inki Dae
2014-08-07  6:58             ` Thierry Reding
2014-08-07  7:51               ` Inki Dae [this message]
2014-08-07  9:09                 ` Thierry Reding
2014-08-07 10:49                   ` Inki Dae
2014-08-07 11:09                     ` Thierry Reding
2014-08-07 13:05                       ` Inki Dae
2014-08-07 13:17                         ` Thierry Reding
2014-08-07 13:39                           ` Inki Dae
2014-08-07 13:55                             ` Thierry Reding
2014-08-08  1:45                               ` Inki Dae
2014-08-08  7:03                                 ` Thierry Reding
2014-08-08  7:37                                   ` Inki Dae
2014-08-08  9:02                                     ` Andrzej Hajda
2014-08-08  9:40                                       ` Andrzej Hajda
2014-08-11  7:09                                         ` Inki Dae
2014-08-11  7:44                                           ` Andrzej Hajda
2014-08-11  8:01                                             ` Inki Dae
2014-08-11  8:05                                             ` Andrzej Hajda
2014-08-12 11:54                                           ` YoungJun Cho
2014-08-12 13:08                                             ` Inki Dae
2014-08-08  9:55                                     ` Thierry Reding
2014-08-11  5:19                                       ` Inki Dae
2014-08-11  7:24                                         ` Thierry Reding
2014-08-11  7:35                                           ` Inki Dae
2014-08-11  7:50                                             ` Thierry Reding
2014-08-11  8:15                                               ` Inki Dae
2014-08-11  9:11                                                 ` Thierry Reding
2014-08-12  2:51                                                   ` Inki Dae
2014-07-28  2:00 ` [PATCH v2 2/2] drm/exynos: dsi: add LPM (Low Power Mode) " Inki Dae
2014-07-28 15:50   ` Andrzej Hajda
2014-07-29  3:42     ` Inki Dae
2014-07-29 11:39       ` Andrzej Hajda
2014-07-29 12:08         ` Inki Dae
2014-07-29 13:16           ` Andrzej Hajda
2014-08-07  7:09             ` Inki Dae

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=53E32FF6.6050402@samsung.com \
    --to=inki.dae@samsung.com \
    --cc=a.hajda@samsung.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=thierry.reding@gmail.com \
    --cc=treding@nvidia.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.