From: Rajesh Yadav <ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
Rajesh Yadav <ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org
Subject: [DPU PATCH 00/11] Refactor DPU device/driver hierarchy and add runtime_pm support
Date: Thu, 10 May 2018 13:59:34 +0530 [thread overview]
Message-ID: <1525940985-30428-1-git-send-email-ryadav@codeaurora.org> (raw)
SoCs containing mdp5 or dpu have a MDSS top level wrapper which includes
sub-blocks as mdp5/dpu, dsi, dp, hdmi etc. The MDSS top level wrapper
manages common resources like common clocks, main power supply and
interrupts for its sub-blocks.
But current dpu driver implementation is based on a flat device hierarchy
where MDSS/DPU HW blocks were represented by single device and DSI/DP etc.
are represented as independent devices w/o any relationships b/t these
nodes which doesn't model the HW associations precisely.
A minimal MDSS and DPU controller device separation is done in following
patch series [1] but currently both these devices match to a single driver
which is getting probed two times and all the resources are still tied to
DPU device.
Moreover, all the power resource management in DPU driver is part of
power_handle module which manages these resources via a custom
implementation.
Irq domain handling is part of DPU device, due to lack of a dedicated
driver for MDSS top level wrapper device.
This patch series aims at adding separate drivers for MDSS top level
wrapper device and DPU child device. MDP5 device/driver is used as a
reference for this refactoring effort. Both the drivers implement
runtime_pm support for their power resource management. Child nodes can
control common resources managed by parent device due to parent child
relationship defined in dt. The top level MDSS device acts as an
interrupt controller and manages hwirq mappings for its child devices.
Inorder to add MDP5 and DPU specific MDSS driver implementation, this patch
series also subclasses existing msm_mdss define. A helper interface
(msm_mdss_funcs) is added to invoke the platform specific implementations.
This change also corrects hw catalog offsets for all sub blocks present
within DPU device. The offset are now defined wrt DPU base address
(instead of using MDSS base address).
Clock and Power handling code have been removed from dpu_power_handle since
each device manages it's resources via runtime_pm. Now, since
dpu_power_handle manages only bus scaling and power enable/disable
notifications and it's usage is restricted to DPU driver only, moved
dpu_power_handle code to DPU folder.
This patch series depends on [1].
1 - https://lists.freedesktop.org/archives/freedreno/2018-April/002354.html
Rajesh Yadav (11):
drm/msm: remove pm_runtime_enable call from msm_drv
drm/msm/mdp5: subclass msm_mdss for mdp5
drm/msm/dpu: add MDSS top level driver for dpu
drm/msm/dpu: create new platform driver for dpu device
drm/msm/dpu: update dpu sub-block offsets wrt dpu base address
drm/msm/dpu: use runtime_pm calls on dpu device
drm/msm/dpu: remove clock management code from dpu_power_handle
drm/msm/dpu: remove power management code from dpu_power_handle
drm/msm/dp: remove dpu_power_handle calls from dp driver
drm/msm/dpu: use runtime_pm calls in dpu_dbg
drm/msm/dpu: move dpu_power_handle to dpu folder
drivers/gpu/drm/msm/Makefile | 3 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 106 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 14 -
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 51 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 12 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 19 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 2 +
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 17 +-
.../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 5 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 77 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 7 -
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 47 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 11 -
drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c | 48 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 354 +++++--
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 16 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 301 ++++++
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 6 +-
drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c | 694 +++++++++++++
drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h | 288 ++++++
drivers/gpu/drm/msm/disp/mdp5/mdp5_mdss.c | 154 +--
drivers/gpu/drm/msm/dp/dp_power.c | 32 +-
drivers/gpu/drm/msm/dp/dp_power.h | 4 +-
drivers/gpu/drm/msm/dpu_dbg.c | 18 +-
drivers/gpu/drm/msm/dpu_dbg.h | 13 +-
drivers/gpu/drm/msm/dpu_io_util.c | 55 +
drivers/gpu/drm/msm/dpu_power_handle.c | 1075 --------------------
drivers/gpu/drm/msm/dpu_power_handle.h | 330 ------
drivers/gpu/drm/msm/msm_drv.c | 86 +-
drivers/gpu/drm/msm/msm_drv.h | 10 +-
drivers/gpu/drm/msm/msm_kms.h | 22 +-
include/linux/dpu_io_util.h | 2 +
32 files changed, 1871 insertions(+), 2008 deletions(-)
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.c
create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_power_handle.h
delete mode 100644 drivers/gpu/drm/msm/dpu_power_handle.c
delete mode 100644 drivers/gpu/drm/msm/dpu_power_handle.h
--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
next reply other threads:[~2018-05-10 8:29 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-10 8:29 Rajesh Yadav [this message]
2018-05-10 8:29 ` [DPU PATCH 01/11] drm/msm: remove redundant pm_runtime_enable call from msm_drv Rajesh Yadav
[not found] ` <1525940985-30428-2-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:02 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 02/11] drm/msm/mdp5: subclass msm_mdss for mdp5 Rajesh Yadav
2018-05-10 13:37 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 04/11] drm/msm/dpu: create new platform driver for dpu device Rajesh Yadav
[not found] ` <1525940985-30428-5-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:00 ` Sean Paul
2018-05-10 17:00 ` Jordan Crouse
[not found] ` <1525940985-30428-1-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 8:29 ` [DPU PATCH 03/11] drm/msm/dpu: add MDSS top level driver for dpu Rajesh Yadav
[not found] ` <1525940985-30428-4-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 14:14 ` Sean Paul
2018-05-10 16:56 ` Jordan Crouse
2018-05-10 8:29 ` [DPU PATCH 05/11] drm/msm/dpu: update dpu sub-block offsets wrt dpu base address Rajesh Yadav
2018-05-10 15:02 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 06/11] drm/msm/dpu: use runtime_pm calls on dpu device Rajesh Yadav
[not found] ` <1525940985-30428-7-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:04 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 07/11] drm/msm/dpu: remove clock management code from dpu_power_handle Rajesh Yadav
[not found] ` <1525940985-30428-8-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:21 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 08/11] drm/msm/dpu: remove power " Rajesh Yadav
[not found] ` <1525940985-30428-9-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:22 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 09/11] drm/msm/dp: remove dpu_power_handle calls from dp driver Rajesh Yadav
[not found] ` <1525940985-30428-10-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:23 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 10/11] drm/msm/dpu: use runtime_pm calls in dpu_dbg Rajesh Yadav
[not found] ` <1525940985-30428-11-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:26 ` Sean Paul
2018-05-10 8:29 ` [DPU PATCH 11/11] drm/msm/dpu: move dpu_power_handle to dpu folder Rajesh Yadav
[not found] ` <1525940985-30428-12-git-send-email-ryadav-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2018-05-10 15:30 ` 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=1525940985-30428-1-git-send-email-ryadav@codeaurora.org \
--to=ryadav-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
--cc=hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.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).