On Wed, Apr 15, 2020 at 09:40:26AM +0200, Daniel Vetter wrote:
> At less than 500 lines total feels like the right thing to do.
> 
> Also noticed that the simple wrapper around drm_connector_cleanup can
> be dropped.
> 
> Signed-off-by: Daniel Vetter <daniel.vet...@intel.com>
Acked-by: Sam Ravnborg <s...@ravnborg.org>
> ---
>  drivers/gpu/drm/arc/Makefile      |   2 +-
>  drivers/gpu/drm/arc/arcpgu.h      |  39 ------------
>  drivers/gpu/drm/arc/arcpgu_drv.c  | 102 +++++++++++++++++++++++++++++-
>  drivers/gpu/drm/arc/arcpgu_regs.h |  31 ---------
>  drivers/gpu/drm/arc/arcpgu_sim.c  |  74 ----------------------
>  5 files changed, 101 insertions(+), 147 deletions(-)
>  delete mode 100644 drivers/gpu/drm/arc/arcpgu.h
>  delete mode 100644 drivers/gpu/drm/arc/arcpgu_regs.h
>  delete mode 100644 drivers/gpu/drm/arc/arcpgu_sim.c
> 
> diff --git a/drivers/gpu/drm/arc/Makefile b/drivers/gpu/drm/arc/Makefile
> index 379a1145bc2f..b26f2495c532 100644
> --- a/drivers/gpu/drm/arc/Makefile
> +++ b/drivers/gpu/drm/arc/Makefile
> @@ -1,3 +1,3 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> -arcpgu-y := arcpgu_sim.o arcpgu_drv.o
> +arcpgu-y := arcpgu_drv.o
>  obj-$(CONFIG_DRM_ARCPGU) += arcpgu.o
> diff --git a/drivers/gpu/drm/arc/arcpgu.h b/drivers/gpu/drm/arc/arcpgu.h
> deleted file mode 100644
> index 7dce0c2313ba..000000000000
> --- a/drivers/gpu/drm/arc/arcpgu.h
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * ARC PGU DRM driver.
> - *
> - * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
> - */
> -
> -#ifndef _ARCPGU_H_
> -#define _ARCPGU_H_
> -
> -#include <drm/drm_simple_kms_helper.h>
> -
> -struct arcpgu_drm_private {
> -     struct drm_device       drm;
> -     void __iomem            *regs;
> -     struct clk              *clk;
> -     struct drm_simple_display_pipe pipe;
> -     struct drm_connector    sim_conn;
> -};
> -
> -#define dev_to_arcpgu(x) container_of(x, struct arcpgu_drm_private, drm)
> -
> -#define pipe_to_arcpgu_priv(x) container_of(x, struct arcpgu_drm_private, 
> pipe)
> -
> -static inline void arc_pgu_write(struct arcpgu_drm_private *arcpgu,
> -                              unsigned int reg, u32 value)
> -{
> -     iowrite32(value, arcpgu->regs + reg);
> -}
> -
> -static inline u32 arc_pgu_read(struct arcpgu_drm_private *arcpgu,
> -                            unsigned int reg)
> -{
> -     return ioread32(arcpgu->regs + reg);
> -}
> -
> -int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np);
> -
> -#endif
> diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c 
> b/drivers/gpu/drm/arc/arcpgu_drv.c
> index 8fbfd956de0a..b0c941d91545 100644
> --- a/drivers/gpu/drm/arc/arcpgu_drv.c
> +++ b/drivers/gpu/drm/arc/arcpgu_drv.c
> @@ -17,13 +17,111 @@
>  #include <drm/drm_gem_framebuffer_helper.h>
>  #include <drm/drm_of.h>
>  #include <drm/drm_probe_helper.h>
> +#include <drm/drm_simple_kms_helper.h>
>  #include <linux/dma-mapping.h>
>  #include <linux/module.h>
>  #include <linux/of_reserved_mem.h>
>  #include <linux/platform_device.h>
>  
> -#include "arcpgu.h"
> -#include "arcpgu_regs.h"
> +#define ARCPGU_REG_CTRL              0x00
> +#define ARCPGU_REG_STAT              0x04
> +#define ARCPGU_REG_FMT               0x10
> +#define ARCPGU_REG_HSYNC     0x14
> +#define ARCPGU_REG_VSYNC     0x18
> +#define ARCPGU_REG_ACTIVE    0x1c
> +#define ARCPGU_REG_BUF0_ADDR 0x40
> +#define ARCPGU_REG_STRIDE    0x50
> +#define ARCPGU_REG_START_SET 0x84
> +
> +#define ARCPGU_REG_ID                0x3FC
> +
> +#define ARCPGU_CTRL_ENABLE_MASK      0x02
> +#define ARCPGU_CTRL_VS_POL_MASK      0x1
> +#define ARCPGU_CTRL_VS_POL_OFST      0x3
> +#define ARCPGU_CTRL_HS_POL_MASK      0x1
> +#define ARCPGU_CTRL_HS_POL_OFST      0x4
> +#define ARCPGU_MODE_XRGB8888 BIT(2)
> +#define ARCPGU_STAT_BUSY_MASK        0x02
> +
> +struct arcpgu_drm_private {
> +     struct drm_device       drm;
> +     void __iomem            *regs;
> +     struct clk              *clk;
> +     struct drm_simple_display_pipe pipe;
> +     struct drm_connector    sim_conn;
> +};
> +
> +#define dev_to_arcpgu(x) container_of(x, struct arcpgu_drm_private, drm)
> +
> +#define pipe_to_arcpgu_priv(x) container_of(x, struct arcpgu_drm_private, 
> pipe)
> +
> +static inline void arc_pgu_write(struct arcpgu_drm_private *arcpgu,
> +                              unsigned int reg, u32 value)
> +{
> +     iowrite32(value, arcpgu->regs + reg);
> +}
> +
> +static inline u32 arc_pgu_read(struct arcpgu_drm_private *arcpgu,
> +                            unsigned int reg)
> +{
> +     return ioread32(arcpgu->regs + reg);
> +}
> +
> +#define XRES_DEF     640
> +#define YRES_DEF     480
> +
> +#define XRES_MAX     8192
> +#define YRES_MAX     8192
> +
> +static int arcpgu_drm_connector_get_modes(struct drm_connector *connector)
> +{
> +     int count;
> +
> +     count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX);
> +     drm_set_preferred_mode(connector, XRES_DEF, YRES_DEF);
> +     return count;
> +}
> +
> +static const struct drm_connector_helper_funcs
> +arcpgu_drm_connector_helper_funcs = {
> +     .get_modes = arcpgu_drm_connector_get_modes,
> +};
> +
> +static const struct drm_connector_funcs arcpgu_drm_connector_funcs = {
> +     .reset = drm_atomic_helper_connector_reset,
> +     .fill_modes = drm_helper_probe_single_connector_modes,
> +     .destroy = drm_connector_cleanup,
> +     .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> +     .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> +};
> +
> +static int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node 
> *np)
> +{
> +     struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm);
> +     struct drm_encoder *encoder;
> +     struct drm_connector *connector;
> +     int ret;
> +
> +     encoder = &arcpgu->pipe.encoder;
> +
> +     connector = &arcpgu->sim_conn;
> +     drm_connector_helper_add(connector, &arcpgu_drm_connector_helper_funcs);
> +
> +     ret = drm_connector_init(drm, connector, &arcpgu_drm_connector_funcs,
> +                     DRM_MODE_CONNECTOR_VIRTUAL);
> +     if (ret < 0) {
> +             dev_err(drm->dev, "failed to initialize drm connector\n");
> +             return ret;
> +     }
> +
> +     ret = drm_connector_attach_encoder(connector, encoder);
> +     if (ret < 0) {
> +             dev_err(drm->dev, "could not attach connector to encoder\n");
> +             return ret;
> +     }
> +
> +     return 0;
> +}
>  
>  #define ENCODE_PGU_XY(x, y)  ((((x) - 1) << 16) | ((y) - 1))
>  
> diff --git a/drivers/gpu/drm/arc/arcpgu_regs.h 
> b/drivers/gpu/drm/arc/arcpgu_regs.h
> deleted file mode 100644
> index b689a382d556..000000000000
> --- a/drivers/gpu/drm/arc/arcpgu_regs.h
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0-only */
> -/*
> - * ARC PGU DRM driver.
> - *
> - * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
> - */
> -
> -#ifndef _ARC_PGU_REGS_H_
> -#define _ARC_PGU_REGS_H_
> -
> -#define ARCPGU_REG_CTRL              0x00
> -#define ARCPGU_REG_STAT              0x04
> -#define ARCPGU_REG_FMT               0x10
> -#define ARCPGU_REG_HSYNC     0x14
> -#define ARCPGU_REG_VSYNC     0x18
> -#define ARCPGU_REG_ACTIVE    0x1c
> -#define ARCPGU_REG_BUF0_ADDR 0x40
> -#define ARCPGU_REG_STRIDE    0x50
> -#define ARCPGU_REG_START_SET 0x84
> -
> -#define ARCPGU_REG_ID                0x3FC
> -
> -#define ARCPGU_CTRL_ENABLE_MASK      0x02
> -#define ARCPGU_CTRL_VS_POL_MASK      0x1
> -#define ARCPGU_CTRL_VS_POL_OFST      0x3
> -#define ARCPGU_CTRL_HS_POL_MASK      0x1
> -#define ARCPGU_CTRL_HS_POL_OFST      0x4
> -#define ARCPGU_MODE_XRGB8888 BIT(2)
> -#define ARCPGU_STAT_BUSY_MASK        0x02
> -
> -#endif
> diff --git a/drivers/gpu/drm/arc/arcpgu_sim.c 
> b/drivers/gpu/drm/arc/arcpgu_sim.c
> deleted file mode 100644
> index 1a63f0868504..000000000000
> --- a/drivers/gpu/drm/arc/arcpgu_sim.c
> +++ /dev/null
> @@ -1,74 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-only
> -/*
> - * ARC PGU DRM driver.
> - *
> - * Copyright (C) 2016 Synopsys, Inc. (www.synopsys.com)
> - */
> -
> -#include <drm/drm_atomic_helper.h>
> -#include <drm/drm_device.h>
> -#include <drm/drm_probe_helper.h>
> -
> -#include "arcpgu.h"
> -
> -#define XRES_DEF     640
> -#define YRES_DEF     480
> -
> -#define XRES_MAX     8192
> -#define YRES_MAX     8192
> -
> -
> -static int arcpgu_drm_connector_get_modes(struct drm_connector *connector)
> -{
> -     int count;
> -
> -     count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX);
> -     drm_set_preferred_mode(connector, XRES_DEF, YRES_DEF);
> -     return count;
> -}
> -
> -static void arcpgu_drm_connector_destroy(struct drm_connector *connector)
> -{
> -     drm_connector_cleanup(connector);
> -}
> -
> -static const struct drm_connector_helper_funcs
> -arcpgu_drm_connector_helper_funcs = {
> -     .get_modes = arcpgu_drm_connector_get_modes,
> -};
> -
> -static const struct drm_connector_funcs arcpgu_drm_connector_funcs = {
> -     .reset = drm_atomic_helper_connector_reset,
> -     .fill_modes = drm_helper_probe_single_connector_modes,
> -     .destroy = arcpgu_drm_connector_destroy,
> -     .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> -     .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> -};
> -
> -int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np)
> -{
> -     struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm);
> -     struct drm_encoder *encoder;
> -     struct drm_connector *connector;
> -     int ret;
> -
> -     encoder = &arcpgu->pipe.encoder;
> -
> -     connector = &arcpgu->sim_conn;
> -     drm_connector_helper_add(connector, &arcpgu_drm_connector_helper_funcs);
> -
> -     ret = drm_connector_init(drm, connector, &arcpgu_drm_connector_funcs,
> -                     DRM_MODE_CONNECTOR_VIRTUAL);
> -     if (ret < 0) {
> -             dev_err(drm->dev, "failed to initialize drm connector\n");
> -             return ret;
> -     }
> -
> -     ret = drm_connector_attach_encoder(connector, encoder);
> -     if (ret < 0) {
> -             dev_err(drm->dev, "could not attach connector to encoder\n");
> -             return ret;
> -     }
> -
> -     return 0;
> -}
> -- 
> 2.25.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-de...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to