Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1452430 > unrolled thread
| Started by | Liviu Dudau <Liviu.Dudau@arm.com> |
|---|---|
| First post | 2016-07-29 16:50 +0200 |
| Last post | 2016-08-02 15:40 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
Cleanup patches for mali-dp driver Liviu Dudau <Liviu.Dudau@arm.com> - 2016-07-29 16:50 +0200
[PATCH 2/2] drm: mali-dp: Set the drm->irq_enabled flag to match driver's state. Liviu Dudau <Liviu.Dudau@arm.com> - 2016-07-29 16:50 +0200
Re: [PATCH 2/2] drm: mali-dp: Set the drm->irq_enabled flag to match driver's state. Daniel Vetter <daniel@ffwll.ch> - 2016-08-02 15:40 +0200
| From | Liviu Dudau <Liviu.Dudau@arm.com> |
|---|---|
| Date | 2016-07-29 16:50 +0200 |
| Subject | Cleanup patches for mali-dp driver |
| Message-ID | <s0hgS-5SV-15@gated-at.bofh.it> |
Hi, A couple of patches to fix issues that I have discovered during the development of more Mali DP features :) I would like to take these patches through drm-misc and don't go through the mali-dp tree as I will be going on holiday for a month. If anyone has patches for Mali DP driver (or HDLCD to an extent) please Cc Brian Starkey or use the formal Mali DP mailing list. Many thanks, Liviu
[toc] | [next] | [standalone]
| From | Liviu Dudau <Liviu.Dudau@arm.com> |
|---|---|
| Date | 2016-07-29 16:50 +0200 |
| Subject | [PATCH 2/2] drm: mali-dp: Set the drm->irq_enabled flag to match driver's state. |
| Message-ID | <s0hgS-5SV-13@gated-at.bofh.it> |
| In reply to | #1452430 |
Mali DP driver does not use drm_irq_{un,}install() function so the
drm->irq_enabled flag does not get managed automatically. Among other
DRM framework functions, drm_wait_vblank() checks the value of the
flag and return -EINVAL if not set.
Cc: Brian Starkey <Brian.Starkey@arm.com>
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
---
drivers/gpu/drm/arm/malidp_drv.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
index 87c9249..a1c01e4 100644
--- a/drivers/gpu/drm/arm/malidp_drv.c
+++ b/drivers/gpu/drm/arm/malidp_drv.c
@@ -377,6 +377,8 @@ static int malidp_bind(struct device *dev)
if (ret < 0)
goto irq_init_fail;
+ drm->irq_enabled = true;
+
ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
if (ret < 0) {
DRM_ERROR("failed to initialise vblank\n");
@@ -402,6 +404,7 @@ fbdev_fail:
vblank_fail:
malidp_se_irq_fini(drm);
malidp_de_irq_fini(drm);
+ drm->irq_enabled = false;
irq_init_fail:
component_unbind_all(dev, drm);
bind_fail:
@@ -439,6 +442,7 @@ static void malidp_unbind(struct device *dev)
drm_kms_helper_poll_fini(drm);
malidp_se_irq_fini(drm);
malidp_de_irq_fini(drm);
+ drm->irq_enabled = false;
drm_vblank_cleanup(drm);
component_unbind_all(dev, drm);
of_node_put(malidp->crtc.port);
--
2.9.0
[toc] | [prev] | [next] | [standalone]
| From | Daniel Vetter <daniel@ffwll.ch> |
|---|---|
| Date | 2016-08-02 15:40 +0200 |
| Subject | Re: [PATCH 2/2] drm: mali-dp: Set the drm->irq_enabled flag to match driver's state. |
| Message-ID | <s1I5j-54A-19@gated-at.bofh.it> |
| In reply to | #1452433 |
On Fri, Jul 29, 2016 at 03:44:16PM +0100, Liviu Dudau wrote:
> Mali DP driver does not use drm_irq_{un,}install() function so the
> drm->irq_enabled flag does not get managed automatically. Among other
> DRM framework functions, drm_wait_vblank() checks the value of the
> flag and return -EINVAL if not set.
>
> Cc: Brian Starkey <Brian.Starkey@arm.com>
> Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
> ---
> drivers/gpu/drm/arm/malidp_drv.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c
> index 87c9249..a1c01e4 100644
> --- a/drivers/gpu/drm/arm/malidp_drv.c
> +++ b/drivers/gpu/drm/arm/malidp_drv.c
> @@ -377,6 +377,8 @@ static int malidp_bind(struct device *dev)
> if (ret < 0)
> goto irq_init_fail;
>
> + drm->irq_enabled = true;
I wonder whether we should have a cocci script or something with catching
some of these issues that every new driver seems to hit. Another one is
filling out legacy helpers for all the legacy entry points using atomic
functions. Or still using ->load/unload. Documentation is great, but it
seems like most folks don't read it until they hit a snag ;-)
Just idle musings ...
-Daniel
> +
> ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
> if (ret < 0) {
> DRM_ERROR("failed to initialise vblank\n");
> @@ -402,6 +404,7 @@ fbdev_fail:
> vblank_fail:
> malidp_se_irq_fini(drm);
> malidp_de_irq_fini(drm);
> + drm->irq_enabled = false;
> irq_init_fail:
> component_unbind_all(dev, drm);
> bind_fail:
> @@ -439,6 +442,7 @@ static void malidp_unbind(struct device *dev)
> drm_kms_helper_poll_fini(drm);
> malidp_se_irq_fini(drm);
> malidp_de_irq_fini(drm);
> + drm->irq_enabled = false;
> drm_vblank_cleanup(drm);
> component_unbind_all(dev, drm);
> of_node_put(malidp->crtc.port);
> --
> 2.9.0
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web