From: Thomas Zimmermann <tzimmermann@suse.de>
To: airlied@redhat.com, daniel@ffwll.ch, kraxel@redhat.com,
noralf@tronnes.org, sam@ravnborg.org, emil.velikov@collabora.com,
john.p.donnelly@oracle.com
Cc: John Donnelly <John.p.donnelly@oracle.com>,
Thomas Zimmermann <tzimmermann@suse.de>,
dri-devel@lists.freedesktop.org
Subject: [PATCH v3 13/15] drm/mgag200: Use simple-display data structures
Date: Fri, 15 May 2020 10:32:31 +0200 [thread overview]
Message-ID: <20200515083233.32036-14-tzimmermann@suse.de> (raw)
In-Reply-To: <20200515083233.32036-1-tzimmermann@suse.de>
The MGA CRTC data structure struct mga_crtc contains unused additional
fields; so it can removed. The standard DRM CRTC and encoder structures
are embedded now in struct drm_simple_display_pipe. Done in preparation
of converting mgag200 to simple KMS helpers.
v3:
* remove now-unused define MGAG200FB_CONN_LIMIT
* remove unused define MATROX_DPMS_CLEARED
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Tested-by: John Donnelly <John.p.donnelly@oracle.com>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Emil Velikov <emil.velikov@collabora.com>
---
drivers/gpu/drm/mgag200/mgag200_drv.h | 15 ++------------
drivers/gpu/drm/mgag200/mgag200_mode.c | 28 ++++++--------------------
2 files changed, 8 insertions(+), 35 deletions(-)
diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
index 0cf498d1e900c..d929ca3a767a3 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -19,6 +19,7 @@
#include <drm/drm_fb_helper.h>
#include <drm/drm_gem.h>
#include <drm/drm_gem_vram_helper.h>
+#include <drm/drm_simple_kms_helper.h>
#include "mgag200_reg.h"
@@ -32,8 +33,6 @@
#define DRIVER_MINOR 0
#define DRIVER_PATCHLEVEL 0
-#define MGAG200FB_CONN_LIMIT 1
-
#define RREG8(reg) ioread8(((void __iomem *)mdev->rmmio) + (reg))
#define WREG8(reg, v) iowrite8(v, ((void __iomem *)mdev->rmmio) + (reg))
#define RREG32(reg) ioread32(((void __iomem *)mdev->rmmio) + (reg))
@@ -103,18 +102,8 @@
#define MGAG200_MAX_FB_HEIGHT 4096
#define MGAG200_MAX_FB_WIDTH 4096
-#define MATROX_DPMS_CLEARED (-1)
-
-#define to_mga_crtc(x) container_of(x, struct mga_crtc, base)
#define to_mga_connector(x) container_of(x, struct mga_connector, base)
-struct mga_crtc {
- struct drm_crtc base;
- u8 lut_r[256], lut_g[256], lut_b[256];
- int last_dpms;
- bool enabled;
-};
-
struct mga_i2c_chan {
struct i2c_adapter adapter;
struct drm_device *dev;
@@ -175,7 +164,7 @@ struct mga_device {
u32 unique_rev_id;
struct mga_connector connector;
- struct drm_encoder encoder;
+ struct drm_simple_display_pipe display_pipe;
};
static inline struct mga_device *to_mga_device(struct drm_device *dev)
diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c
index d6f9763a4a450..00bbc1f9b7db3 100644
--- a/drivers/gpu/drm/mgag200/mgag200_mode.c
+++ b/drivers/gpu/drm/mgag200/mgag200_mode.c
@@ -1475,15 +1475,6 @@ static int mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
return 0;
}
-/* Simple cleanup function */
-static void mga_crtc_destroy(struct drm_crtc *crtc)
-{
- struct mga_crtc *mga_crtc = to_mga_crtc(crtc);
-
- drm_crtc_cleanup(crtc);
- kfree(mga_crtc);
-}
-
static void mga_crtc_disable(struct drm_crtc *crtc)
{
DRM_DEBUG_KMS("\n");
@@ -1501,7 +1492,7 @@ static void mga_crtc_disable(struct drm_crtc *crtc)
static const struct drm_crtc_funcs mga_crtc_funcs = {
.gamma_set = mga_crtc_gamma_set,
.set_config = drm_crtc_helper_set_config,
- .destroy = mga_crtc_destroy,
+ .destroy = drm_crtc_cleanup,
};
static const struct drm_crtc_helper_funcs mga_helper_funcs = {
@@ -1517,20 +1508,13 @@ static const struct drm_crtc_helper_funcs mga_helper_funcs = {
static void mga_crtc_init(struct mga_device *mdev)
{
struct drm_device *dev = mdev->dev;
- struct mga_crtc *mga_crtc;
-
- mga_crtc = kzalloc(sizeof(struct mga_crtc) +
- (MGAG200FB_CONN_LIMIT * sizeof(struct drm_connector *)),
- GFP_KERNEL);
-
- if (mga_crtc == NULL)
- return;
+ struct drm_crtc *crtc = &mdev->display_pipe.crtc;
- drm_crtc_init(dev, &mga_crtc->base, &mga_crtc_funcs);
+ drm_crtc_init(dev, crtc, &mga_crtc_funcs);
- drm_mode_crtc_set_gamma_size(&mga_crtc->base, MGAG200_LUT_SIZE);
+ drm_mode_crtc_set_gamma_size(crtc, MGAG200_LUT_SIZE);
- drm_crtc_helper_add(&mga_crtc->base, &mga_helper_funcs);
+ drm_crtc_helper_add(crtc, &mga_helper_funcs);
}
/*
@@ -1718,7 +1702,7 @@ static unsigned int mgag200_preferred_depth(struct mga_device *mdev)
int mgag200_modeset_init(struct mga_device *mdev)
{
struct drm_device *dev = mdev->dev;
- struct drm_encoder *encoder = &mdev->encoder;
+ struct drm_encoder *encoder = &mdev->display_pipe.encoder;
struct drm_connector *connector = &mdev->connector.base;
int ret;
--
2.26.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-05-15 8:33 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-15 8:32 [PATCH v3 00/15] drm/mgag200: Convert to atomic modesetting Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 01/15] drm/mgag200: Remove HW cursor Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 02/15] drm/mgag200: Clean up mga_set_start_address() Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 03/15] drm/mgag200: Clean up mga_crtc_do_set_base() Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 04/15] drm/mgag200: Move mode-setting code into separate helper function Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 05/15] drm/mgag200: Split MISC register update into PLL selection, SYNC and I/O Thomas Zimmermann
2020-06-03 9:09 ` [drm/mgag200] e44e907dd8: phoronix-test-suite.glmark2.800x600.score -64.9% regression kernel test robot
2020-06-15 20:58 ` Emil Velikov
2020-06-16 3:10 ` Rong Chen
2020-06-16 3:29 ` [LKP] " Rong Chen
2020-06-16 13:49 ` Emil Velikov
2020-06-17 1:35 ` Rong Chen
2020-06-16 13:49 ` Thomas Zimmermann
2020-06-17 1:42 ` Rong Chen
2020-06-16 14:24 ` Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 06/15] drm/mgag200: Update mode registers after plane registers Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 07/15] drm/mgag200: Set pitch in a separate helper function Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 08/15] drm/mgag200: Set primary plane's format in " Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 09/15] drm/mgag200: Move TAGFIFO reset into separate function Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 10/15] drm/mgag200: Move hiprilvl setting into separate functions Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 11/15] drm/mgag200: Move register initialization into separate function Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 12/15] drm/mgag200: Remove out-commented suspend/resume helpers Thomas Zimmermann
2020-05-15 8:32 ` Thomas Zimmermann [this message]
2020-05-15 8:32 ` [PATCH v3 14/15] drm/mgag200: Convert to simple KMS helper Thomas Zimmermann
2020-05-15 8:32 ` [PATCH v3 15/15] drm/mgag200: Replace VRAM helpers with SHMEM helpers Thomas Zimmermann
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=20200515083233.32036-14-tzimmermann@suse.de \
--to=tzimmermann@suse.de \
--cc=airlied@redhat.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=emil.velikov@collabora.com \
--cc=john.p.donnelly@oracle.com \
--cc=kraxel@redhat.com \
--cc=noralf@tronnes.org \
--cc=sam@ravnborg.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).