From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Bjorn Andersson <bjorn.andersson@linaro.org>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>, Abhinav Kumar <abhinavk@codeaurora.org> Cc: Jonathan Marek <jonathan@marek.ca>, Stephen Boyd <sboyd@kernel.org>, David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Subject: [PATCH v2 0/6] drm/msm/dpu: rework irq handling Date: Sun, 16 May 2021 23:29:05 +0300 [thread overview] Message-ID: <20210516202910.2141079-1-dmitry.baryshkov@linaro.org> (raw) Simplify IRQ handling. dpu_irq_map is a huge table consisting of all possible IRQ entries (including a plenty of 'reserved' = not existing IRQs). It is always used to lookup the interrupt index (in the table) and then to use this index to lookup related interrupt register and mask. For the long period of time these indices had 1:1 correspondence to register/mask pairs. SC7280 introduced 'additional' IRQs removing this correpondence. Replace all IRQ lookup with stable irq indices, which correponds directly to the register/bit pair. The irq indices are now fetched from the hw catalog rather than being looked up using the hw block id and irq type. Changes since v1: - move IRQ indices to hw catalog rather than looking them up from the big dpu_irq_map table (as suggested by Bjorn). - add patch to squash irq enable/disable into dpu_core_irq_register_callback()/dpu_core_irq_unregister_callback() Changes since RFC: - rebase on top of msm/msm-next to include SC7280 changes. The following changes since commit f2f46b878777e0d3f885c7ddad48f477b4dea247: drm/msm/dp: initialize audio_comp when audio starts (2021-05-06 16:26:57 -0700) are available in the Git repository at: https://git.linaro.org/people/dmitry.baryshkov/kernel.git dpu-irq-simplify-2 for you to fetch changes up to ec3d935f9a18aeb3ebf5482eba7133cec020e047: drm/msm/dpu: simplify IRQ enabling/disabling (2021-05-16 23:19:56 +0300) ---------------------------------------------------------------- Dmitry Baryshkov (6): drm/msm/dpu: merge dpu_hw_intr_get_interrupt_statuses into dpu_hw_intr_dispatch_irqs drm/msm/dpu: hw_intr: always call dpu_hw_intr_clear_intr_status_nolock drm/msm/dpu: define interrupt register names drm/msm/dpu: replace IRQ lookup with the data in hw catalog drm/msm/dpu: drop remains of old irq lookup subsystem drm/msm/dpu: simplify IRQ enabling/disabling drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 203 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 43 - drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 74 +- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 4 - .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 40 +- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 33 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 202 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 14 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 1450 ++------------------ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 112 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 2 - drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 36 +- 12 files changed, 330 insertions(+), 1883 deletions(-)
WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> To: Bjorn Andersson <bjorn.andersson@linaro.org>, Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>, Abhinav Kumar <abhinavk@codeaurora.org> Cc: Jonathan Marek <jonathan@marek.ca>, Stephen Boyd <sboyd@kernel.org>, linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, David Airlie <airlied@linux.ie>, freedreno@lists.freedesktop.org Subject: [PATCH v2 0/6] drm/msm/dpu: rework irq handling Date: Sun, 16 May 2021 23:29:05 +0300 [thread overview] Message-ID: <20210516202910.2141079-1-dmitry.baryshkov@linaro.org> (raw) Simplify IRQ handling. dpu_irq_map is a huge table consisting of all possible IRQ entries (including a plenty of 'reserved' = not existing IRQs). It is always used to lookup the interrupt index (in the table) and then to use this index to lookup related interrupt register and mask. For the long period of time these indices had 1:1 correspondence to register/mask pairs. SC7280 introduced 'additional' IRQs removing this correpondence. Replace all IRQ lookup with stable irq indices, which correponds directly to the register/bit pair. The irq indices are now fetched from the hw catalog rather than being looked up using the hw block id and irq type. Changes since v1: - move IRQ indices to hw catalog rather than looking them up from the big dpu_irq_map table (as suggested by Bjorn). - add patch to squash irq enable/disable into dpu_core_irq_register_callback()/dpu_core_irq_unregister_callback() Changes since RFC: - rebase on top of msm/msm-next to include SC7280 changes. The following changes since commit f2f46b878777e0d3f885c7ddad48f477b4dea247: drm/msm/dp: initialize audio_comp when audio starts (2021-05-06 16:26:57 -0700) are available in the Git repository at: https://git.linaro.org/people/dmitry.baryshkov/kernel.git dpu-irq-simplify-2 for you to fetch changes up to ec3d935f9a18aeb3ebf5482eba7133cec020e047: drm/msm/dpu: simplify IRQ enabling/disabling (2021-05-16 23:19:56 +0300) ---------------------------------------------------------------- Dmitry Baryshkov (6): drm/msm/dpu: merge dpu_hw_intr_get_interrupt_statuses into dpu_hw_intr_dispatch_irqs drm/msm/dpu: hw_intr: always call dpu_hw_intr_clear_intr_status_nolock drm/msm/dpu: define interrupt register names drm/msm/dpu: replace IRQ lookup with the data in hw catalog drm/msm/dpu: drop remains of old irq lookup subsystem drm/msm/dpu: simplify IRQ enabling/disabling drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 203 +-- drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 43 - drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 74 +- drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 4 - .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 40 +- .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 33 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 202 ++- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 14 +- drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 1450 ++------------------ drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 112 +- drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 2 - drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 36 +- 12 files changed, 330 insertions(+), 1883 deletions(-)
next reply other threads:[~2021-05-16 20:29 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-16 20:29 Dmitry Baryshkov [this message] 2021-05-16 20:29 ` [PATCH v2 0/6] drm/msm/dpu: rework irq handling Dmitry Baryshkov 2021-05-16 20:29 ` [PATCH v2 1/6] drm/msm/dpu: merge dpu_hw_intr_get_interrupt_statuses into dpu_hw_intr_dispatch_irqs Dmitry Baryshkov 2021-05-16 20:29 ` Dmitry Baryshkov 2021-05-24 21:44 ` [Freedreno] " abhinavk 2021-05-24 21:44 ` abhinavk 2021-05-16 20:29 ` [PATCH v2 2/6] drm/msm/dpu: hw_intr: always call dpu_hw_intr_clear_intr_status_nolock Dmitry Baryshkov 2021-05-16 20:29 ` Dmitry Baryshkov 2021-05-24 21:46 ` [Freedreno] " abhinavk 2021-05-24 21:46 ` abhinavk 2021-05-16 20:29 ` [PATCH v2 3/6] drm/msm/dpu: define interrupt register names Dmitry Baryshkov 2021-05-16 20:29 ` Dmitry Baryshkov 2021-05-24 21:51 ` [Freedreno] " abhinavk 2021-05-24 21:51 ` abhinavk 2021-05-16 20:29 ` [PATCH v2 4/6] drm/msm/dpu: replace IRQ lookup with the data in hw catalog Dmitry Baryshkov 2021-05-16 20:29 ` Dmitry Baryshkov 2021-05-24 21:57 ` [Freedreno] " abhinavk 2021-05-24 21:57 ` abhinavk 2021-05-26 2:09 ` Dmitry Baryshkov 2021-05-26 2:09 ` Dmitry Baryshkov 2021-05-16 20:29 ` [PATCH v2 5/6] drm/msm/dpu: drop remains of old irq lookup subsystem Dmitry Baryshkov 2021-05-16 20:29 ` Dmitry Baryshkov 2021-05-24 21:58 ` [Freedreno] " abhinavk 2021-05-24 21:58 ` abhinavk 2021-05-16 20:29 ` [PATCH v2 6/6] drm/msm/dpu: simplify IRQ enabling/disabling Dmitry Baryshkov 2021-05-16 20:29 ` Dmitry Baryshkov 2021-05-24 22:13 ` [Freedreno] " abhinavk 2021-05-24 22:13 ` abhinavk
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=20210516202910.2141079-1-dmitry.baryshkov@linaro.org \ --to=dmitry.baryshkov@linaro.org \ --cc=abhinavk@codeaurora.org \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=jonathan@marek.ca \ --cc=linux-arm-msm@vger.kernel.org \ --cc=robdclark@gmail.com \ --cc=sboyd@kernel.org \ --cc=sean@poorly.run \ /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: linkBe 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.