aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tilcdc
diff options
context:
space:
mode:
authorJyri Sarha <jsarha@ti.com>2016-02-23 05:44:27 -0500
committerJyri Sarha <jsarha@ti.com>2016-02-25 09:39:47 -0500
commitd0ec32caef0baa490b419895ef61c8481d49f7cd (patch)
tree692f1536a070894fdf9abef665c9e77c99bc0596 /drivers/gpu/drm/tilcdc
parentd66284fba15014daacef64cfc610a249553534c6 (diff)
drm/tilcdc: Use devm_kzalloc() and devm_kcalloc() for private data
Use devm_kzalloc() and devm_kcalloc() for private data allocation at driver load time. Signed-off-by: Jyri Sarha <jsarha@ti.com> Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/tilcdc')
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_crtc.c4
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_drv.c19
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_panel.c20
-rw-r--r--drivers/gpu/drm/tilcdc/tilcdc_tfp410.c24
4 files changed, 21 insertions, 46 deletions
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
index 5f4da8c86ce2..051e5e1b7ad6 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_crtc.c
@@ -127,8 +127,6 @@ static void tilcdc_crtc_destroy(struct drm_crtc *crtc)
127 of_node_put(crtc->port); 127 of_node_put(crtc->port);
128 drm_crtc_cleanup(crtc); 128 drm_crtc_cleanup(crtc);
129 drm_flip_work_cleanup(&tilcdc_crtc->unref_work); 129 drm_flip_work_cleanup(&tilcdc_crtc->unref_work);
130
131 kfree(tilcdc_crtc);
132} 130}
133 131
134static int tilcdc_verify_fb(struct drm_crtc *crtc, struct drm_framebuffer *fb) 132static int tilcdc_verify_fb(struct drm_crtc *crtc, struct drm_framebuffer *fb)
@@ -755,7 +753,7 @@ struct drm_crtc *tilcdc_crtc_create(struct drm_device *dev)
755 struct drm_crtc *crtc; 753 struct drm_crtc *crtc;
756 int ret; 754 int ret;
757 755
758 tilcdc_crtc = kzalloc(sizeof(*tilcdc_crtc), GFP_KERNEL); 756 tilcdc_crtc = devm_kzalloc(dev->dev, sizeof(*tilcdc_crtc), GFP_KERNEL);
759 if (!tilcdc_crtc) { 757 if (!tilcdc_crtc) {
760 dev_err(dev->dev, "allocation failed\n"); 758 dev_err(dev->dev, "allocation failed\n");
761 return NULL; 759 return NULL;
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 41ec890c4bca..709bc903524d 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -143,9 +143,6 @@ static int tilcdc_unload(struct drm_device *dev)
143 143
144 pm_runtime_disable(dev->dev); 144 pm_runtime_disable(dev->dev);
145 145
146 kfree(priv->saved_register);
147 kfree(priv);
148
149 return 0; 146 return 0;
150} 147}
151 148
@@ -161,13 +158,12 @@ static int tilcdc_load(struct drm_device *dev, unsigned long flags)
161 u32 bpp = 0; 158 u32 bpp = 0;
162 int ret; 159 int ret;
163 160
164 priv = kzalloc(sizeof(*priv), GFP_KERNEL); 161 priv = devm_kzalloc(dev->dev, sizeof(*priv), GFP_KERNEL);
165 if (priv) 162 if (priv)
166 priv->saved_register = kcalloc(tilcdc_num_regs(), 163 priv->saved_register =
167 sizeof(*priv->saved_register), 164 devm_kcalloc(dev->dev, tilcdc_num_regs(),
168 GFP_KERNEL); 165 sizeof(*priv->saved_register), GFP_KERNEL);
169 if (!priv || !priv->saved_register) { 166 if (!priv || !priv->saved_register) {
170 kfree(priv);
171 dev_err(dev->dev, "failed to allocate private data\n"); 167 dev_err(dev->dev, "failed to allocate private data\n");
172 return -ENOMEM; 168 return -ENOMEM;
173 } 169 }
@@ -180,7 +176,7 @@ static int tilcdc_load(struct drm_device *dev, unsigned long flags)
180 priv->wq = alloc_ordered_workqueue("tilcdc", 0); 176 priv->wq = alloc_ordered_workqueue("tilcdc", 0);
181 if (!priv->wq) { 177 if (!priv->wq) {
182 ret = -ENOMEM; 178 ret = -ENOMEM;
183 goto fail_free_priv; 179 goto fail_unset_priv;
184 } 180 }
185 181
186 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 182 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -346,10 +342,9 @@ fail_free_wq:
346 flush_workqueue(priv->wq); 342 flush_workqueue(priv->wq);
347 destroy_workqueue(priv->wq); 343 destroy_workqueue(priv->wq);
348 344
349fail_free_priv: 345fail_unset_priv:
350 dev->dev_private = NULL; 346 dev->dev_private = NULL;
351 kfree(priv->saved_register); 347
352 kfree(priv);
353 return ret; 348 return ret;
354} 349}
355 350
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_panel.c b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
index 8dcf02a79b23..ff7774c17d7c 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_panel.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_panel.c
@@ -45,14 +45,6 @@ struct panel_encoder {
45}; 45};
46#define to_panel_encoder(x) container_of(x, struct panel_encoder, base) 46#define to_panel_encoder(x) container_of(x, struct panel_encoder, base)
47 47
48
49static void panel_encoder_destroy(struct drm_encoder *encoder)
50{
51 struct panel_encoder *panel_encoder = to_panel_encoder(encoder);
52 drm_encoder_cleanup(encoder);
53 kfree(panel_encoder);
54}
55
56static void panel_encoder_dpms(struct drm_encoder *encoder, int mode) 48static void panel_encoder_dpms(struct drm_encoder *encoder, int mode)
57{ 49{
58 struct panel_encoder *panel_encoder = to_panel_encoder(encoder); 50 struct panel_encoder *panel_encoder = to_panel_encoder(encoder);
@@ -90,7 +82,7 @@ static void panel_encoder_mode_set(struct drm_encoder *encoder,
90} 82}
91 83
92static const struct drm_encoder_funcs panel_encoder_funcs = { 84static const struct drm_encoder_funcs panel_encoder_funcs = {
93 .destroy = panel_encoder_destroy, 85 .destroy = drm_encoder_cleanup,
94}; 86};
95 87
96static const struct drm_encoder_helper_funcs panel_encoder_helper_funcs = { 88static const struct drm_encoder_helper_funcs panel_encoder_helper_funcs = {
@@ -107,7 +99,8 @@ static struct drm_encoder *panel_encoder_create(struct drm_device *dev,
107 struct drm_encoder *encoder; 99 struct drm_encoder *encoder;
108 int ret; 100 int ret;
109 101
110 panel_encoder = kzalloc(sizeof(*panel_encoder), GFP_KERNEL); 102 panel_encoder = devm_kzalloc(dev->dev, sizeof(*panel_encoder),
103 GFP_KERNEL);
111 if (!panel_encoder) { 104 if (!panel_encoder) {
112 dev_err(dev->dev, "allocation failed\n"); 105 dev_err(dev->dev, "allocation failed\n");
113 return NULL; 106 return NULL;
@@ -128,7 +121,7 @@ static struct drm_encoder *panel_encoder_create(struct drm_device *dev,
128 return encoder; 121 return encoder;
129 122
130fail: 123fail:
131 panel_encoder_destroy(encoder); 124 drm_encoder_cleanup(encoder);
132 return NULL; 125 return NULL;
133} 126}
134 127
@@ -147,10 +140,8 @@ struct panel_connector {
147 140
148static void panel_connector_destroy(struct drm_connector *connector) 141static void panel_connector_destroy(struct drm_connector *connector)
149{ 142{
150 struct panel_connector *panel_connector = to_panel_connector(connector);
151 drm_connector_unregister(connector); 143 drm_connector_unregister(connector);
152 drm_connector_cleanup(connector); 144 drm_connector_cleanup(connector);
153 kfree(panel_connector);
154} 145}
155 146
156static enum drm_connector_status panel_connector_detect( 147static enum drm_connector_status panel_connector_detect(
@@ -223,7 +214,8 @@ static struct drm_connector *panel_connector_create(struct drm_device *dev,
223 struct drm_connector *connector; 214 struct drm_connector *connector;
224 int ret; 215 int ret;
225 216
226 panel_connector = kzalloc(sizeof(*panel_connector), GFP_KERNEL); 217 panel_connector = devm_kzalloc(dev->dev, sizeof(*panel_connector),
218 GFP_KERNEL);
227 if (!panel_connector) { 219 if (!panel_connector) {
228 dev_err(dev->dev, "allocation failed\n"); 220 dev_err(dev->dev, "allocation failed\n");
229 return NULL; 221 return NULL;
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
index 1c230172b402..7716f42f8aab 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c
@@ -54,14 +54,6 @@ struct tfp410_encoder {
54}; 54};
55#define to_tfp410_encoder(x) container_of(x, struct tfp410_encoder, base) 55#define to_tfp410_encoder(x) container_of(x, struct tfp410_encoder, base)
56 56
57
58static void tfp410_encoder_destroy(struct drm_encoder *encoder)
59{
60 struct tfp410_encoder *tfp410_encoder = to_tfp410_encoder(encoder);
61 drm_encoder_cleanup(encoder);
62 kfree(tfp410_encoder);
63}
64
65static void tfp410_encoder_dpms(struct drm_encoder *encoder, int mode) 57static void tfp410_encoder_dpms(struct drm_encoder *encoder, int mode)
66{ 58{
67 struct tfp410_encoder *tfp410_encoder = to_tfp410_encoder(encoder); 59 struct tfp410_encoder *tfp410_encoder = to_tfp410_encoder(encoder);
@@ -99,7 +91,7 @@ static void tfp410_encoder_mode_set(struct drm_encoder *encoder,
99} 91}
100 92
101static const struct drm_encoder_funcs tfp410_encoder_funcs = { 93static const struct drm_encoder_funcs tfp410_encoder_funcs = {
102 .destroy = tfp410_encoder_destroy, 94 .destroy = drm_encoder_cleanup,
103}; 95};
104 96
105static const struct drm_encoder_helper_funcs tfp410_encoder_helper_funcs = { 97static const struct drm_encoder_helper_funcs tfp410_encoder_helper_funcs = {
@@ -116,7 +108,8 @@ static struct drm_encoder *tfp410_encoder_create(struct drm_device *dev,
116 struct drm_encoder *encoder; 108 struct drm_encoder *encoder;
117 int ret; 109 int ret;
118 110
119 tfp410_encoder = kzalloc(sizeof(*tfp410_encoder), GFP_KERNEL); 111 tfp410_encoder = devm_kzalloc(dev->dev, sizeof(*tfp410_encoder),
112 GFP_KERNEL);
120 if (!tfp410_encoder) { 113 if (!tfp410_encoder) {
121 dev_err(dev->dev, "allocation failed\n"); 114 dev_err(dev->dev, "allocation failed\n");
122 return NULL; 115 return NULL;
@@ -138,7 +131,7 @@ static struct drm_encoder *tfp410_encoder_create(struct drm_device *dev,
138 return encoder; 131 return encoder;
139 132
140fail: 133fail:
141 tfp410_encoder_destroy(encoder); 134 drm_encoder_cleanup(encoder);
142 return NULL; 135 return NULL;
143} 136}
144 137
@@ -157,10 +150,8 @@ struct tfp410_connector {
157 150
158static void tfp410_connector_destroy(struct drm_connector *connector) 151static void tfp410_connector_destroy(struct drm_connector *connector)
159{ 152{
160 struct tfp410_connector *tfp410_connector = to_tfp410_connector(connector);
161 drm_connector_unregister(connector); 153 drm_connector_unregister(connector);
162 drm_connector_cleanup(connector); 154 drm_connector_cleanup(connector);
163 kfree(tfp410_connector);
164} 155}
165 156
166static enum drm_connector_status tfp410_connector_detect( 157static enum drm_connector_status tfp410_connector_detect(
@@ -228,7 +219,8 @@ static struct drm_connector *tfp410_connector_create(struct drm_device *dev,
228 struct drm_connector *connector; 219 struct drm_connector *connector;
229 int ret; 220 int ret;
230 221
231 tfp410_connector = kzalloc(sizeof(*tfp410_connector), GFP_KERNEL); 222 tfp410_connector = devm_kzalloc(dev->dev, sizeof(*tfp410_connector),
223 GFP_KERNEL);
232 if (!tfp410_connector) { 224 if (!tfp410_connector) {
233 dev_err(dev->dev, "allocation failed\n"); 225 dev_err(dev->dev, "allocation failed\n");
234 return NULL; 226 return NULL;
@@ -313,7 +305,7 @@ static int tfp410_probe(struct platform_device *pdev)
313 return -ENXIO; 305 return -ENXIO;
314 } 306 }
315 307
316 tfp410_mod = kzalloc(sizeof(*tfp410_mod), GFP_KERNEL); 308 tfp410_mod = devm_kzalloc(&pdev->dev, sizeof(*tfp410_mod), GFP_KERNEL);
317 if (!tfp410_mod) 309 if (!tfp410_mod)
318 return -ENOMEM; 310 return -ENOMEM;
319 311
@@ -366,7 +358,6 @@ fail_adapter:
366 i2c_put_adapter(tfp410_mod->i2c); 358 i2c_put_adapter(tfp410_mod->i2c);
367 359
368fail: 360fail:
369 kfree(tfp410_mod);
370 tilcdc_module_cleanup(mod); 361 tilcdc_module_cleanup(mod);
371 return ret; 362 return ret;
372} 363}
@@ -380,7 +371,6 @@ static int tfp410_remove(struct platform_device *pdev)
380 gpio_free(tfp410_mod->gpio); 371 gpio_free(tfp410_mod->gpio);
381 372
382 tilcdc_module_cleanup(mod); 373 tilcdc_module_cleanup(mod);
383 kfree(tfp410_mod);
384 374
385 return 0; 375 return 0;
386} 376}