[Freedreno] [PATCH 08/11] drm/msm/dpu: Remove dpu_irq and unused functions

Sean Paul sean at poorly.run
Tue Nov 6 14:46:11 UTC 2018


On Mon, Nov 05, 2018 at 04:31:00PM -0700, Jordan Crouse wrote:
> dpu_irq.c does some unneeded checks and passes control
> to dpu_core_irq.c  The simple functions can be defined
> in the same file where we use them and the files and
> their associated hangers on can be deleted.
> 
> Additionally the postinstall hook isn't used even
> in dpu_core_irq.c so zap that entire path.
> 
> Signed-off-by: Jordan Crouse <jcrouse at codeaurora.org>

Nice!

Reviewed-by: Sean Paul <sean at poorly.run>

> ---
>  drivers/gpu/drm/msm/Makefile                 |  1 -
>  drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 15 +----
>  drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h |  7 ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c      | 66 --------------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h      | 59 -----------------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c      | 22 ++++++-
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h      |  1 -
>  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c     |  5 ++
>  8 files changed, 28 insertions(+), 148 deletions(-)
>  delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c
>  delete mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h
> 
> diff --git a/drivers/gpu/drm/msm/Makefile b/drivers/gpu/drm/msm/Makefile
> index e067dd1341b1..4b181c2a88d6 100644
> --- a/drivers/gpu/drm/msm/Makefile
> +++ b/drivers/gpu/drm/msm/Makefile
> @@ -68,7 +68,6 @@ msm-y := \
>  	disp/dpu1/dpu_hw_util.o \
>  	disp/dpu1/dpu_hw_vbif.o \
>  	disp/dpu1/dpu_io_util.o \
> -	disp/dpu1/dpu_irq.o \
>  	disp/dpu1/dpu_kms.o \
>  	disp/dpu1/dpu_mdss.o \
>  	disp/dpu1/dpu_plane.o \
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c
> index 7607aac9449c..f66070cb2f42 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c
> @@ -364,10 +364,7 @@ void dpu_core_irq_preinstall(struct dpu_kms *dpu_kms)
>  	struct msm_drm_private *priv;
>  	int i;
>  
> -	if (!dpu_kms) {
> -		DPU_ERROR("invalid dpu_kms\n");
> -		return;
> -	} else if (!dpu_kms->dev) {
> +	if (!dpu_kms->dev) {
>  		DPU_ERROR("invalid drm device\n");
>  		return;
>  	} else if (!dpu_kms->dev->dev_private) {
> @@ -398,20 +395,12 @@ void dpu_core_irq_preinstall(struct dpu_kms *dpu_kms)
>  	}
>  }
>  
> -int dpu_core_irq_postinstall(struct dpu_kms *dpu_kms)
> -{
> -	return 0;
> -}
> -
>  void dpu_core_irq_uninstall(struct dpu_kms *dpu_kms)
>  {
>  	struct msm_drm_private *priv;
>  	int i;
>  
> -	if (!dpu_kms) {
> -		DPU_ERROR("invalid dpu_kms\n");
> -		return;
> -	} else if (!dpu_kms->dev) {
> +	if (!dpu_kms->dev) {
>  		DPU_ERROR("invalid drm device\n");
>  		return;
>  	} else if (!dpu_kms->dev->dev_private) {
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h
> index 5e98bba46af5..884f77fa3eb6 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h
> @@ -23,13 +23,6 @@
>   */
>  void dpu_core_irq_preinstall(struct dpu_kms *dpu_kms);
>  
> -/**
> - * dpu_core_irq_postinstall - perform post-installation of core IRQ handler
> - * @dpu_kms:		DPU handle
> - * @return:		0 if success; error code otherwise
> - */
> -int dpu_core_irq_postinstall(struct dpu_kms *dpu_kms);
> -
>  /**
>   * dpu_core_irq_uninstall - uninstall core IRQ handler
>   * @dpu_kms:		DPU handle
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c
> deleted file mode 100644
> index d5e6ce0140cf..000000000000
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 and
> - * only version 2 as published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - */
> -
> -#define pr_fmt(fmt)	"[drm:%s:%d] " fmt, __func__, __LINE__
> -
> -#include <linux/irqdomain.h>
> -#include <linux/irq.h>
> -#include <linux/kthread.h>
> -
> -#include "dpu_irq.h"
> -#include "dpu_core_irq.h"
> -
> -irqreturn_t dpu_irq(struct msm_kms *kms)
> -{
> -	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> -
> -	return dpu_core_irq(dpu_kms);
> -}
> -
> -void dpu_irq_preinstall(struct msm_kms *kms)
> -{
> -	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> -
> -	if (!dpu_kms->dev || !dpu_kms->dev->dev) {
> -		pr_err("invalid device handles\n");
> -		return;
> -	}
> -
> -	dpu_core_irq_preinstall(dpu_kms);
> -}
> -
> -int dpu_irq_postinstall(struct msm_kms *kms)
> -{
> -	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> -	int rc;
> -
> -	if (!kms) {
> -		DPU_ERROR("invalid parameters\n");
> -		return -EINVAL;
> -	}
> -
> -	rc = dpu_core_irq_postinstall(dpu_kms);
> -
> -	return rc;
> -}
> -
> -void dpu_irq_uninstall(struct msm_kms *kms)
> -{
> -	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> -
> -	if (!kms) {
> -		DPU_ERROR("invalid parameters\n");
> -		return;
> -	}
> -
> -	dpu_core_irq_uninstall(dpu_kms);
> -}
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h
> deleted file mode 100644
> index 3e147f7176e2..000000000000
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h
> +++ /dev/null
> @@ -1,59 +0,0 @@
> -/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License version 2 and
> - * only version 2 as published by the Free Software Foundation.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - */
> -
> -#ifndef __DPU_IRQ_H__
> -#define __DPU_IRQ_H__
> -
> -#include <linux/kernel.h>
> -#include <linux/irqdomain.h>
> -
> -#include "msm_kms.h"
> -
> -/**
> - * dpu_irq_controller - define MDSS level interrupt controller context
> - * @enabled_mask:	enable status of MDSS level interrupt
> - * @domain:		interrupt domain of this controller
> - */
> -struct dpu_irq_controller {
> -	unsigned long enabled_mask;
> -	struct irq_domain *domain;
> -};
> -
> -/**
> - * dpu_irq_preinstall - perform pre-installation of MDSS IRQ handler
> - * @kms:		pointer to kms context
> - * @return:		none
> - */
> -void dpu_irq_preinstall(struct msm_kms *kms);
> -
> -/**
> - * dpu_irq_postinstall - perform post-installation of MDSS IRQ handler
> - * @kms:		pointer to kms context
> - * @return:		0 if success; error code otherwise
> - */
> -int dpu_irq_postinstall(struct msm_kms *kms);
> -
> -/**
> - * dpu_irq_uninstall - uninstall MDSS IRQ handler
> - * @drm_dev:		pointer to kms context
> - * @return:		none
> - */
> -void dpu_irq_uninstall(struct msm_kms *kms);
> -
> -/**
> - * dpu_irq - MDSS level IRQ handler
> - * @kms:		pointer to kms context
> - * @return:		interrupt handling status
> - */
> -irqreturn_t dpu_irq(struct msm_kms *kms);
> -
> -#endif /* __DPU_IRQ_H__ */
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 7e3ba128cbaf..2a91881048c8 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -706,10 +706,30 @@ static void _dpu_kms_set_encoder_mode(struct msm_kms *kms,
>  			encoder->base.id, rc);
>  }
>  
> +static irqreturn_t dpu_irq(struct msm_kms *kms)
> +{
> +	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> +
> +	return dpu_core_irq(dpu_kms);
> +}
> +
> +static void dpu_irq_preinstall(struct msm_kms *kms)
> +{
> +	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> +
> +	dpu_core_irq_preinstall(dpu_kms);
> +}
> +
> +static void dpu_irq_uninstall(struct msm_kms *kms)
> +{
> +	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
> +
> +	dpu_core_irq_uninstall(dpu_kms);
> +}
> +
>  static const struct msm_kms_funcs kms_funcs = {
>  	.hw_init         = dpu_kms_hw_init,
>  	.irq_preinstall  = dpu_irq_preinstall,
> -	.irq_postinstall = dpu_irq_postinstall,
>  	.irq_uninstall   = dpu_irq_uninstall,
>  	.irq             = dpu_irq,
>  	.prepare_commit  = dpu_kms_prepare_commit,
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> index 12a2eb90e6b5..e7539c9870e4 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
> @@ -30,7 +30,6 @@
>  #include "dpu_hw_top.h"
>  #include "dpu_rm.h"
>  #include "dpu_power_handle.h"
> -#include "dpu_irq.h"
>  #include "dpu_core_perf.h"
>  
>  #define DRMID(x) ((x) ? (x)->base.id : -1)
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> index 2235ef8129f4..19abf719811a 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> @@ -9,6 +9,11 @@
>  
>  #define HW_INTR_STATUS			0x0010
>  
> +struct dpu_irq_controller {
> +	unsigned long enabled_mask;
> +	struct irq_domain *domain;
> +};
> +
>  struct dpu_mdss {
>  	struct msm_mdss base;
>  	void __iomem *mmio;
> -- 
> 2.18.0
> 
> _______________________________________________
> Freedreno mailing list
> Freedreno at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/freedreno

-- 
Sean Paul, Software Engineer, Google / Chromium OS


More information about the dri-devel mailing list