drm/arc: Embedd a drm_connector for sim case
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 12 Jan 2021 08:43:48 +0000 (09:43 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 25 Feb 2021 11:03:43 +0000 (12:03 +0100)
Removes the last devm_kzalloc, which means we're now prepared to use
drmm_mode_config_cleanup!

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210112084358.2771527-5-daniel.vetter@ffwll.ch
drivers/gpu/drm/arc/arcpgu.h
drivers/gpu/drm/arc/arcpgu_sim.c

index 52afd63..c52cdd2 100644 (file)
@@ -15,6 +15,7 @@ struct arcpgu_drm_private {
        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)
index 134afb9..e42fe5d 100644 (file)
 #define YRES_MAX       8192
 
 
-struct arcpgu_drm_connector {
-       struct drm_connector connector;
-};
-
 static int arcpgu_drm_connector_get_modes(struct drm_connector *connector)
 {
        int count;
@@ -57,7 +53,6 @@ static struct drm_encoder_funcs arcpgu_drm_encoder_funcs = {
 int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np)
 {
        struct arcpgu_drm_private *arcpgu = dev_to_arcpgu(drm);
-       struct arcpgu_drm_connector *arcpgu_connector;
        struct drm_encoder *encoder;
        struct drm_connector *connector;
        int ret;
@@ -72,14 +67,7 @@ int arcpgu_drm_sim_init(struct drm_device *drm, struct device_node *np)
        if (ret)
                return ret;
 
-       arcpgu_connector = devm_kzalloc(drm->dev, sizeof(*arcpgu_connector),
-                                       GFP_KERNEL);
-       if (!arcpgu_connector) {
-               ret = -ENOMEM;
-               goto error_encoder_cleanup;
-       }
-
-       connector = &arcpgu_connector->connector;
+       connector = &arcpgu->sim_conn;
        drm_connector_helper_add(connector, &arcpgu_drm_connector_helper_funcs);
 
        ret = drm_connector_init(drm, connector, &arcpgu_drm_connector_funcs,