summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/tidss/tidss_encoder.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2020-04-24 10:13:15 +1000
committerDave Airlie <airlied@redhat.com>2020-04-24 10:14:04 +1000
commite32b2484b3e00170b6cf57d99a18972e174e10ea (patch)
tree49900d2b140812d5cfeecb77c4746b65590641df /drivers/gpu/drm/tidss/tidss_encoder.c
parent11c5ec788b454609e60c78b0b6b24da8dae62931 (diff)
parent9da67433f64eb89e5a7b47977507806c6ea026e7 (diff)
Merge tag 'drm-misc-fixes-2020-04-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixesdrm-fixes-2020-04-24
A few resources-related fixes (tidss, dp_mst, scheduler), probe fixes and DT bindings adjustments. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maxime Ripard <maxime@cerno.tech> Link: https://patchwork.freedesktop.org/patch/msgid/20200423103224.7hvyr3v7dmuny2bz@gilmour.lan
Diffstat (limited to 'drivers/gpu/drm/tidss/tidss_encoder.c')
-rw-r--r--drivers/gpu/drm/tidss/tidss_encoder.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/gpu/drm/tidss/tidss_encoder.c b/drivers/gpu/drm/tidss/tidss_encoder.c
index 83785b0a66a9..30bf2a65949c 100644
--- a/drivers/gpu/drm/tidss/tidss_encoder.c
+++ b/drivers/gpu/drm/tidss/tidss_encoder.c
@@ -55,12 +55,18 @@ static int tidss_encoder_atomic_check(struct drm_encoder *encoder,
return 0;
}
+static void tidss_encoder_destroy(struct drm_encoder *encoder)
+{
+ drm_encoder_cleanup(encoder);
+ kfree(encoder);
+}
+
static const struct drm_encoder_helper_funcs encoder_helper_funcs = {
.atomic_check = tidss_encoder_atomic_check,
};
static const struct drm_encoder_funcs encoder_funcs = {
- .destroy = drm_encoder_cleanup,
+ .destroy = tidss_encoder_destroy,
};
struct drm_encoder *tidss_encoder_create(struct tidss_device *tidss,
@@ -69,7 +75,7 @@ struct drm_encoder *tidss_encoder_create(struct tidss_device *tidss,
struct drm_encoder *enc;
int ret;
- enc = devm_kzalloc(tidss->dev, sizeof(*enc), GFP_KERNEL);
+ enc = kzalloc(sizeof(*enc), GFP_KERNEL);
if (!enc)
return ERR_PTR(-ENOMEM);
@@ -77,8 +83,10 @@ struct drm_encoder *tidss_encoder_create(struct tidss_device *tidss,
ret = drm_encoder_init(&tidss->ddev, enc, &encoder_funcs,
encoder_type, NULL);
- if (ret < 0)
+ if (ret < 0) {
+ kfree(enc);
return ERR_PTR(ret);
+ }
drm_encoder_helper_add(enc, &encoder_helper_funcs);