public inbox for linux-rockchip@lists.infradead.org
 help / color / mirror / Atom feed
From: Yakir Yang <ykk@rock-chips.com>
To: daniel.vetter@intel.com,
	Krzysztof Kozlowski <k.kozlowski@samsung.com>,
	linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-rockchip@lists.infradead.org, Mark Yao <yzq@rock-chips.com>,
	Jingoo Han <jingoohan1@gmail.com>,
	emil.l.velikov@gmail.com, dianders@chromium.org,
	dri-devel@lists.freedesktop.org, tfiga@chromium.org,
	Thierry Reding <treding@nvidia.com>,
	Dan Carpenter <dan.carpenter@oracle.com>
Subject: Re: [RFC PATCH v1 0/2]
Date: Fri, 3 Jun 2016 13:45:52 +0800	[thread overview]
Message-ID: <57511990.9050906@rock-chips.com> (raw)
In-Reply-To: <20160602141910.GL7231@phenom.ffwll.local>


[-- Attachment #1.1: Type: text/plain, Size: 3762 bytes --]

Hi Daniel,

On 06/02/2016 10:19 PM, Daniel Vetter wrote:
> On Wed, Jun 01, 2016 at 10:54:09AM +0800, Yakir Yang wrote:
>> Hi Daniel,
>>
>> On 05/31/2016 10:38 PM, Daniel Vetter wrote:
>>> On Tue, May 31, 2016 at 09:37:36PM +0800, Yakir Yang wrote:
>>>> The full name of PSR is Panel Self Refresh, panel device could refresh
>>>> itself with the hardware framebuffer in panel, this would make a lots
>>>> of sense to save the power consumption.
>>>>
>>>> For example, when desktop haven't change the context for a long time,
>>>> then we could refresh the data to the hardware framebuffer of panel,
>>>> and then let panel enter into PSR mode. After that system could poweroff
>>>> the LCDC controller and eDP controller, just let panel refresh the screen
>>>> by itself.
>>>>
>>>> It's hard to decide when panel should enter into PSR or exit from PSR, in
>>>> this time I chose to let the drm_vblank enable/disable event driver the PSR.
>>>>
>>>> This thread is based on Mark's RK3399 VOP thread[0] and my RK3399 eDP
>>>> thread[1].
>>>>
>>>> [0]: https://patchwork.kernel.org/patch/8886041/
>>>> [1]: https://patchwork.kernel.org/patch/9132713/
>>> Looks like you didn't wire up the drm_framebuffer->funcs->dirty callback
>>> for manual upload of simple clients like bootsplash or fbdev. I think
>>> that's needed. At least it's needed for every other manual upload dsi and
>>> edp psr implementation.
>>> -Daniel
>> That's great, thanks for your remind. Seems like userspace which does
>> frontbuffer rendering must call this ioctl to flush out the changes on
>> manual-update display outputs. It's helpful to hook this callback to
>> notify eDP refresh the eDP RFB(remote frame buffer).
>>
>> But I think this is hard to used on Rockchip eDP controller, Rockchip eDP
>> driver just used two modes, Sink Device PSR_S0 (PSR inactive), and Sink
>> Device PSR_S2 (PSR active, display from RFB).
>>
>> I think the "dirty" callback is only used when Sink device enter into PSR_S3
>> mode (PSR active, capture and display), need to update the remote frame
>> buffer. But on Rockchip platform the panel would be very easy to lose frame
>> in this PSR mode. I'm confused in this case, so I didn't enable that.
>>
>> If we didn't enable the PSR_S3 mode, then we don't need to update the panel
>> remote frame buffer, so this "->dirty" callback would be unused in this
>> case.
> Sorry missed your reply here somehow. Every time you don't scan out the
> drm_framebuffer directly, but from any kind of intermediate buffer, you
> _must_ implement the dirty callback. Usually the simplest way is to kick
> the device out of self-refresh and arm the time to re-enter self-refresh.

Sounds good, use timer to driver the PSR status, and abandon the vblank
enable/disable event. Okay, I start to do some experiments.

> I'm not entirely clear where your RFB is, so no idea whether that is
> scanning out from the drm_framebuffer data directly, or whether that's
> some on-chip or in-sink framebuffer cache.

RFB is an in-sink framebuffer cache. When Sink enter into PSR_State1 or
PSR_State3, then it can capture the eDP timing from source to update the 
RFB.



> We have a ridiculously nasty testuite in i-g-t for all these cases (we use
> it to validate our framebuffer compression code, psr code and soon also
> dsi manual upload). Unfortunately it's not yet ported over to be a generic
> testcase. But at least for PSR that would be easy, since every PSR panel
> has eDP sink crc support. And the testcase does require some kind of
> display CRC support to validate actual screen contents, as opposed to
> what's in memory in the drm_framebuffer.
> -Daniel

Sorry, I'm not very clear about what you mean, seems you have a reference
code about PSR test ;)

Thanks,
- Yakir


[-- Attachment #1.2.1: Type: text/html, Size: 4935 bytes --]

[-- Attachment #1.2.2: adidgajg.png --]
[-- Type: image/png, Size: 44532 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

      reply	other threads:[~2016-06-03  5:45 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-31 13:37 [RFC PATCH v1 0/2] Yakir Yang
2016-05-31 13:39 ` [RFC PATCH v1 1/2] drm/rockchip: add a notify event about vblank enable/disable Yakir Yang
2016-05-31 14:36   ` Daniel Vetter
2016-06-01  2:52     ` Yakir Yang
2016-05-31 13:39 ` [RFC PATCH v1 2/2] drm/rockchip: analogix: add eDP PSR function Yakir Yang
2016-05-31 14:38 ` [RFC PATCH v1 0/2] Daniel Vetter
2016-06-01  2:41   ` Yakir Yang
2016-06-01  2:54   ` Yakir Yang
2016-06-02 14:19     ` Daniel Vetter
2016-06-03  5:45       ` Yakir Yang [this message]

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=57511990.9050906@rock-chips.com \
    --to=ykk@rock-chips.com \
    --cc=dan.carpenter@oracle.com \
    --cc=daniel.vetter@intel.com \
    --cc=dianders@chromium.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=emil.l.velikov@gmail.com \
    --cc=jingoohan1@gmail.com \
    --cc=k.kozlowski@samsung.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=tfiga@chromium.org \
    --cc=treding@nvidia.com \
    --cc=yzq@rock-chips.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox