From: Tomasz Figa <tfiga@chromium.org>
To: dri-devel@lists.freedesktop.org
Cc: linux-arm-kernel@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org,
Heiko Stuebner <heiko@sntech.de>, David Airlie <airlied@linux.ie>,
Mark Yao <mark.yao@rock-chips.com>,
Sean Paul <seanpaul@chromium.org>,
Daniel Kurtz <djkurtz@chromium.org>,
Tomasz Figa <tfiga@chromium.org>
Subject: [PATCH 0/8] drm/rockchip: Flip wait clean-up
Date: Wed, 14 Sep 2016 21:54:53 +0900 [thread overview]
Message-ID: <1473857701-9250-1-git-send-email-tfiga@chromium.org> (raw)
The display controller found on Rockchip SoCs supported by Rockchip DRM
driver (VOP) is a bit problematic, because it does not provide hardware
vblank counter. Because vblank interrupt is used to feed the software
counter, the driver had custom code to wait for flip completion to avoid
race between atomic flush and vblank interrupt handler.
This, however, brought a different set of issues. In fact, even with the
custom wait code, there is stil a race between the handler and driver
state update (of the values used to compare with registers to determine
if flip has completed). On top of that, legacy cursor updates are not
implemented properly and have to wait for vblank to complete, which
is against the API specification.
This series attempts to clean up the driver from this custom waiting code,
eliminating related races and bringing correct handling of legacy cursor
plane. It also gives a nice effect of more than 100 lines of code removed.
This is a forward port of patches from 4.4 kernel used by ChromiumOS and
tested there. Even though the code base has not changed significantly, it
would be nice if someone with proper testing environment could give them
a try.
Based on for-next branch of Sean Paul's dogwood tree:
https://cgit.freedesktop.org/~seanpaul/dogwood/log/?h=for-next
git://people.freedesktop.org/~seanpaul/dogwood
Tomasz Figa (8):
drm/rockchip: Clear interrupt status bits before enabling
drm/rockchip: Get rid of some unnecessary code
drm/rockchip: Avoid race with vblank count increment
drm/rockchip: Unreference framebuffers from flip work
drm/rockchip: Replace custom wait_for_vblanks with helper
drm/rockchip: Do not enable vblank without event
drm/rockchip: Always signal event in next vblank after cfg_done
drm/rockchip: Kill vop_plane_state
drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 1 -
drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 64 +------
drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 247 +++++++++++-----------------
3 files changed, 95 insertions(+), 217 deletions(-)
--
2.8.0.rc3.226.g39d4020
next reply other threads:[~2016-09-14 12:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-14 12:54 Tomasz Figa [this message]
2016-09-14 12:54 ` [PATCH 1/8] drm/rockchip: Clear interrupt status bits before enabling Tomasz Figa
2016-09-14 12:54 ` [PATCH 2/8] drm/rockchip: Get rid of some unnecessary code Tomasz Figa
2016-09-18 1:50 ` Mark yao
2016-09-18 4:01 ` Tomasz Figa
2016-09-20 1:36 ` Mark yao
2016-09-14 12:54 ` [PATCH 3/8] drm/rockchip: Avoid race with vblank count increment Tomasz Figa
2016-09-14 12:54 ` [PATCH 4/8] drm/rockchip: Unreference framebuffers from flip work Tomasz Figa
2016-09-14 12:54 ` [PATCH 5/8] drm/rockchip: Replace custom wait_for_vblanks with helper Tomasz Figa
2016-09-14 12:54 ` [PATCH 6/8] drm/rockchip: Do not enable vblank without event Tomasz Figa
2016-09-14 12:55 ` [PATCH 7/8] drm/rockchip: Always signal event in next vblank after cfg_done Tomasz Figa
2016-09-14 12:55 ` [PATCH 8/8] drm/rockchip: Kill vop_plane_state Tomasz Figa
2016-09-15 14:02 ` [PATCH 0/8] drm/rockchip: Flip wait clean-up Sean Paul
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=1473857701-9250-1-git-send-email-tfiga@chromium.org \
--to=tfiga@chromium.org \
--cc=airlied@linux.ie \
--cc=djkurtz@chromium.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=mark.yao@rock-chips.com \
--cc=seanpaul@chromium.org \
/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;
as well as URLs for NNTP newsgroup(s).