All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Stultz <john.stultz@linaro.org>
To: lkml <linux-kernel@vger.kernel.org>
Cc: John Stultz <john.stultz@linaro.org>,
	Rongrong Zou <zourongrong@gmail.com>,
	Xinliang Liu <z.liuxinliang@hisilicon.com>,
	David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH v4 10/25] drm: kirin: Move workqueue to ade_hw_ctx structure
Date: Mon, 19 Aug 2019 23:03:06 +0000	[thread overview]
Message-ID: <20190819230321.56480-11-john.stultz@linaro.org> (raw)
In-Reply-To: <20190819230321.56480-1-john.stultz@linaro.org>

The workqueue used to reset the display when we hit an LDI
underflow error is ADE specific, so since this patch series
works to make the kirin_crtc structure more generic, move the
workqueue to the ade_hw_ctx structure instead.

Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Xinliang Liu <z.liuxinliang@hisilicon.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 8f50115a22d8..191ee59f68b6 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -52,6 +52,7 @@ struct ade_hw_ctx {
 	struct clk *media_noc_clk;
 	struct clk *ade_pix_clk;
 	struct reset_control *reset;
+	struct work_struct display_reset_wq;
 	bool power_on;
 	int irq;
 
@@ -61,7 +62,6 @@ struct ade_hw_ctx {
 struct kirin_crtc {
 	struct drm_crtc base;
 	void *hw_ctx;
-	struct work_struct display_reset_wq;
 	bool enable;
 };
 
@@ -349,9 +349,9 @@ static void ade_crtc_disable_vblank(struct drm_crtc *crtc)
 
 static void drm_underflow_wq(struct work_struct *work)
 {
-	struct kirin_crtc *acrtc = container_of(work, struct kirin_crtc,
+	struct ade_hw_ctx *ctx = container_of(work, struct ade_hw_ctx,
 					      display_reset_wq);
-	struct drm_device *drm_dev = (&acrtc->base)->dev;
+	struct drm_device *drm_dev = ctx->crtc->dev;
 	struct drm_atomic_state *state;
 
 	state = drm_atomic_helper_suspend(drm_dev);
@@ -362,7 +362,6 @@ static irqreturn_t ade_irq_handler(int irq, void *data)
 {
 	struct ade_hw_ctx *ctx = data;
 	struct drm_crtc *crtc = ctx->crtc;
-	struct kirin_crtc *kcrtc = to_kirin_crtc(crtc);
 	void __iomem *base = ctx->base;
 	u32 status;
 
@@ -379,7 +378,7 @@ static irqreturn_t ade_irq_handler(int irq, void *data)
 		ade_update_bits(base + LDI_INT_CLR, UNDERFLOW_INT_EN_OFST,
 				MASK(1), 1);
 		DRM_ERROR("LDI underflow!");
-		schedule_work(&kcrtc->display_reset_wq);
+		schedule_work(&ctx->display_reset_wq);
 	}
 
 	return IRQ_HANDLED;
@@ -1016,6 +1015,7 @@ static void *ade_hw_ctx_alloc(struct platform_device *pdev,
 	if (ret)
 		return ERR_PTR(-EIO);
 
+	INIT_WORK(&ctx->display_reset_wq, drm_underflow_wq);
 	ctx->crtc = crtc;
 
 	return ctx;
@@ -1071,8 +1071,6 @@ static int ade_drm_init(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	INIT_WORK(&kcrtc->display_reset_wq, drm_underflow_wq);
-
 	return 0;
 }
 
-- 
2.17.1


WARNING: multiple messages have this Message-ID (diff)
From: John Stultz <john.stultz@linaro.org>
To: lkml <linux-kernel@vger.kernel.org>
Cc: David Airlie <airlied@linux.ie>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Xinliang Liu <z.liuxinliang@hisilicon.com>,
	Rongrong Zou <zourongrong@gmail.com>,
	Sam Ravnborg <sam@ravnborg.org>
Subject: [PATCH v4 10/25] drm: kirin: Move workqueue to ade_hw_ctx structure
Date: Mon, 19 Aug 2019 23:03:06 +0000	[thread overview]
Message-ID: <20190819230321.56480-11-john.stultz@linaro.org> (raw)
In-Reply-To: <20190819230321.56480-1-john.stultz@linaro.org>

The workqueue used to reset the display when we hit an LDI
underflow error is ADE specific, so since this patch series
works to make the kirin_crtc structure more generic, move the
workqueue to the ade_hw_ctx structure instead.

Cc: Rongrong Zou <zourongrong@gmail.com>
Cc: Xinliang Liu <z.liuxinliang@hisilicon.com>
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Xinliang Liu <z.liuxinliang@hisilicon.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
---
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
index 8f50115a22d8..191ee59f68b6 100644
--- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
+++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c
@@ -52,6 +52,7 @@ struct ade_hw_ctx {
 	struct clk *media_noc_clk;
 	struct clk *ade_pix_clk;
 	struct reset_control *reset;
+	struct work_struct display_reset_wq;
 	bool power_on;
 	int irq;
 
@@ -61,7 +62,6 @@ struct ade_hw_ctx {
 struct kirin_crtc {
 	struct drm_crtc base;
 	void *hw_ctx;
-	struct work_struct display_reset_wq;
 	bool enable;
 };
 
@@ -349,9 +349,9 @@ static void ade_crtc_disable_vblank(struct drm_crtc *crtc)
 
 static void drm_underflow_wq(struct work_struct *work)
 {
-	struct kirin_crtc *acrtc = container_of(work, struct kirin_crtc,
+	struct ade_hw_ctx *ctx = container_of(work, struct ade_hw_ctx,
 					      display_reset_wq);
-	struct drm_device *drm_dev = (&acrtc->base)->dev;
+	struct drm_device *drm_dev = ctx->crtc->dev;
 	struct drm_atomic_state *state;
 
 	state = drm_atomic_helper_suspend(drm_dev);
@@ -362,7 +362,6 @@ static irqreturn_t ade_irq_handler(int irq, void *data)
 {
 	struct ade_hw_ctx *ctx = data;
 	struct drm_crtc *crtc = ctx->crtc;
-	struct kirin_crtc *kcrtc = to_kirin_crtc(crtc);
 	void __iomem *base = ctx->base;
 	u32 status;
 
@@ -379,7 +378,7 @@ static irqreturn_t ade_irq_handler(int irq, void *data)
 		ade_update_bits(base + LDI_INT_CLR, UNDERFLOW_INT_EN_OFST,
 				MASK(1), 1);
 		DRM_ERROR("LDI underflow!");
-		schedule_work(&kcrtc->display_reset_wq);
+		schedule_work(&ctx->display_reset_wq);
 	}
 
 	return IRQ_HANDLED;
@@ -1016,6 +1015,7 @@ static void *ade_hw_ctx_alloc(struct platform_device *pdev,
 	if (ret)
 		return ERR_PTR(-EIO);
 
+	INIT_WORK(&ctx->display_reset_wq, drm_underflow_wq);
 	ctx->crtc = crtc;
 
 	return ctx;
@@ -1071,8 +1071,6 @@ static int ade_drm_init(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	INIT_WORK(&kcrtc->display_reset_wq, drm_underflow_wq);
-
 	return 0;
 }
 
-- 
2.17.1

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

  parent reply	other threads:[~2019-08-19 23:04 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-19 23:02 [PATCH v4 00/25] drm: Kirin driver cleanups to prep for Kirin960 support John Stultz
2019-08-19 23:02 ` [PATCH v4 01/25] drm: kirin: Fix for hikey620 display offset problem John Stultz
2019-08-19 23:02 ` [PATCH v4 02/25] drm: kirin: Remove HISI_KIRIN_DW_DSI config option John Stultz
2019-08-19 23:02 ` [PATCH v4 03/25] drm: kirin: Remove unreachable return John Stultz
2019-08-19 23:02   ` John Stultz
2019-08-19 23:03 ` [PATCH v4 04/25] drm: kirin: Remove uncessary parameter indirection John Stultz
2019-08-19 23:03 ` [PATCH v4 05/25] drm: kirin: Remove out_format from ade_crtc John Stultz
2019-08-19 23:03 ` [PATCH v4 06/25] drm: kirin: Rename ade_plane to kirin_plane John Stultz
2019-08-19 23:03 ` [PATCH v4 07/25] drm: kirin: Rename ade_crtc to kirin_crtc John Stultz
2019-08-19 23:03 ` [PATCH v4 08/25] drm: kirin: Dynamically allocate the hw_ctx John Stultz
2019-08-19 23:03 ` [PATCH v4 09/25] drm: kirin: Move request irq handle in ade hw ctx alloc John Stultz
2019-08-19 23:03 ` John Stultz [this message]
2019-08-19 23:03   ` [PATCH v4 10/25] drm: kirin: Move workqueue to ade_hw_ctx structure John Stultz
2019-08-19 23:03 ` [PATCH v4 11/25] drm: kirin: Move kirin_crtc, kirin_plane, kirin_format to kirin_drm_drv.h John Stultz
2019-08-19 23:03   ` John Stultz
2019-08-19 23:03 ` [PATCH v4 12/25] drm: kirin: Reanme dc_ops to kirin_drm_data John Stultz
2019-08-19 23:03 ` [PATCH v4 13/25] drm: kirin: Move ade crtc/plane help functions to driver_data John Stultz
2019-08-19 23:03 ` [PATCH v4 14/25] drm: kirin: Move channel formats to driver data John Stultz
2019-08-19 23:03 ` [PATCH v4 15/25] drm: kirin: Move mode config function to driver_data John Stultz
2019-08-19 23:03   ` John Stultz
2019-08-19 23:03 ` [PATCH v4 16/25] drm: kirin: Move plane number and primay plane in driver data John Stultz
2019-08-19 23:03   ` John Stultz
2019-08-19 23:03 ` [PATCH v4 17/25] drm: kirin: Move config max_width and max_height to " John Stultz
2019-08-19 23:03 ` [PATCH v4 18/25] drm: kirin: Move drm driver " John Stultz
2019-08-19 23:03   ` John Stultz
2019-08-19 23:03 ` [PATCH v4 19/25] drm: kirin: Add register connect helper functions in drm init John Stultz
2019-08-19 23:03 ` [PATCH v4 20/25] drm: kirin: Rename plane_init and crtc_init John Stultz
2019-08-19 23:03 ` [PATCH v4 21/25] drm: kirin: Fix dev->driver_data setting John Stultz
2019-08-19 23:03 ` [PATCH v4 22/25] drm: kirin: Make driver_data variable non-global John Stultz
2019-08-19 23:03 ` [PATCH v4 23/25] drm: kirin: Add alloc_hw_ctx/clean_hw_ctx ops in driver data John Stultz
2019-08-19 23:03 ` [PATCH v4 24/25] drm: kirin: Pass driver data to crtc init and plane init John Stultz
2019-08-19 23:03 ` [PATCH v4 25/25] drm: kirin: Move ade drm init to kirin drm drv John Stultz
2019-08-20 20:01 ` [PATCH v4 00/25] drm: Kirin driver cleanups to prep for Kirin960 support Sam Ravnborg
2019-08-20 20:01   ` Sam Ravnborg
2019-08-20 20:38   ` John Stultz
2019-08-20 20:38     ` John Stultz

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=20190819230321.56480-11-john.stultz@linaro.org \
    --to=john.stultz@linaro.org \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sam@ravnborg.org \
    --cc=z.liuxinliang@hisilicon.com \
    --cc=zourongrong@gmail.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.