Commit f05c9e13 authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/mgag200: Use simple-display data structures

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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Tested-by: default avatarJohn Donnelly <John.p.donnelly@oracle.com>
Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
Acked-by: default avatarEmil Velikov <emil.velikov@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200515083233.32036-14-tzimmermann@suse.de
parent 9413adc0
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <drm/drm_fb_helper.h> #include <drm/drm_fb_helper.h>
#include <drm/drm_gem.h> #include <drm/drm_gem.h>
#include <drm/drm_gem_vram_helper.h> #include <drm/drm_gem_vram_helper.h>
#include <drm/drm_simple_kms_helper.h>
#include "mgag200_reg.h" #include "mgag200_reg.h"
...@@ -32,8 +33,6 @@ ...@@ -32,8 +33,6 @@
#define DRIVER_MINOR 0 #define DRIVER_MINOR 0
#define DRIVER_PATCHLEVEL 0 #define DRIVER_PATCHLEVEL 0
#define MGAG200FB_CONN_LIMIT 1
#define RREG8(reg) ioread8(((void __iomem *)mdev->rmmio) + (reg)) #define RREG8(reg) ioread8(((void __iomem *)mdev->rmmio) + (reg))
#define WREG8(reg, v) iowrite8(v, ((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)) #define RREG32(reg) ioread32(((void __iomem *)mdev->rmmio) + (reg))
...@@ -103,18 +102,8 @@ ...@@ -103,18 +102,8 @@
#define MGAG200_MAX_FB_HEIGHT 4096 #define MGAG200_MAX_FB_HEIGHT 4096
#define MGAG200_MAX_FB_WIDTH 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) #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 mga_i2c_chan {
struct i2c_adapter adapter; struct i2c_adapter adapter;
struct drm_device *dev; struct drm_device *dev;
...@@ -175,7 +164,7 @@ struct mga_device { ...@@ -175,7 +164,7 @@ struct mga_device {
u32 unique_rev_id; u32 unique_rev_id;
struct mga_connector connector; 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) static inline struct mga_device *to_mga_device(struct drm_device *dev)
......
...@@ -1475,15 +1475,6 @@ static int mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, ...@@ -1475,15 +1475,6 @@ static int mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green,
return 0; 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) static void mga_crtc_disable(struct drm_crtc *crtc)
{ {
DRM_DEBUG_KMS("\n"); DRM_DEBUG_KMS("\n");
...@@ -1501,7 +1492,7 @@ static void mga_crtc_disable(struct drm_crtc *crtc) ...@@ -1501,7 +1492,7 @@ static void mga_crtc_disable(struct drm_crtc *crtc)
static const struct drm_crtc_funcs mga_crtc_funcs = { static const struct drm_crtc_funcs mga_crtc_funcs = {
.gamma_set = mga_crtc_gamma_set, .gamma_set = mga_crtc_gamma_set,
.set_config = drm_crtc_helper_set_config, .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 = { static const struct drm_crtc_helper_funcs mga_helper_funcs = {
...@@ -1517,20 +1508,13 @@ 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) static void mga_crtc_init(struct mga_device *mdev)
{ {
struct drm_device *dev = mdev->dev; struct drm_device *dev = mdev->dev;
struct mga_crtc *mga_crtc; struct drm_crtc *crtc = &mdev->display_pipe.crtc;
mga_crtc = kzalloc(sizeof(struct mga_crtc) +
(MGAG200FB_CONN_LIMIT * sizeof(struct drm_connector *)),
GFP_KERNEL);
if (mga_crtc == NULL)
return;
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) ...@@ -1718,7 +1702,7 @@ static unsigned int mgag200_preferred_depth(struct mga_device *mdev)
int mgag200_modeset_init(struct mga_device *mdev) int mgag200_modeset_init(struct mga_device *mdev)
{ {
struct drm_device *dev = mdev->dev; 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; struct drm_connector *connector = &mdev->connector.base;
int ret; int ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment