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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 18, 2018 at 3:59 PM Jordan Crouse <jcrouse@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx>
> ---
>  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);
> +}
> +

Seems like we could pass in a struct msm_kms directly to the core irq
functions and call to_dpu_kms()
from inside those functions instead so we don't need these wrappers
anymore, but if you prefer the logical
separation that this provides then:

Reviewed-by: Bruce Wang <bzwang@xxxxxxxxxxxx>

>  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
>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux