diff options
| author | Ludovic Desroches <ludovic.desroches@microchip.com> | 2025-12-18 14:26:01 +0100 |
|---|---|---|
| committer | Manikandan Muralidharan <manikandan.m@microchip.com> | 2026-01-20 15:52:47 +0530 |
| commit | 227ef8cf93a5328642d844d0f61dbd941e90a2a9 (patch) | |
| tree | 01437e4bd4fa5e8113b31e14b534e6fd8380b975 /drivers/gpu | |
| parent | 87cac7a5f99e7c7ec9687e3f1e61138da41683b7 (diff) | |
drm/atmel-hlcdc: use drmm_simple_encoder_alloc()
Simplify the code using drmm_simple_encoder_alloc to handle allocation
and initialization at once.
Signed-off-by: Ludovic Desroches <ludovic.desroches@microchip.com>
Reviewed-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Link: https://patch.msgid.link/20251218-lcd_cleanup_mainline-v2-3-df837aba878f@microchip.com
Signed-off-by: Manikandan Muralidharan <manikandan.m@microchip.com>
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c index 0b8a86afb096..1f43e0feeeda 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c @@ -73,22 +73,19 @@ static int atmel_hlcdc_attach_endpoint(struct drm_device *dev, int endpoint) struct drm_bridge *bridge; int ret; - ep = of_graph_get_endpoint_by_regs(dev->dev->of_node, 0, endpoint); - if (!ep) - return -ENODEV; - ret = drm_of_find_panel_or_bridge(dev->dev->of_node, 0, endpoint, &panel, &bridge); - if (ret) { - of_node_put(ep); + if (ret) return ret; - } - output = devm_kzalloc(dev->dev, sizeof(*output), GFP_KERNEL); - if (!output) { - of_node_put(ep); - return -ENOMEM; - } + output = drmm_simple_encoder_alloc(dev, struct atmel_hlcdc_rgb_output, + encoder, DRM_MODE_ENCODER_NONE); + if (IS_ERR(output)) + return PTR_ERR(output); + + ep = of_graph_get_endpoint_by_regs(dev->dev->of_node, 0, endpoint); + if (!ep) + return -ENODEV; output->bus_fmt = atmel_hlcdc_of_bus_fmt(ep); of_node_put(ep); @@ -97,10 +94,6 @@ static int atmel_hlcdc_attach_endpoint(struct drm_device *dev, int endpoint) return -EINVAL; } - ret = drm_simple_encoder_init(dev, &output->encoder, - DRM_MODE_ENCODER_NONE); - if (ret) - return ret; output->encoder.possible_crtcs = 0x1; @@ -120,8 +113,6 @@ static int atmel_hlcdc_attach_endpoint(struct drm_device *dev, int endpoint) drm_panel_bridge_remove(bridge); } - drm_encoder_cleanup(&output->encoder); - return ret; } |
