summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/tiny/arcpgu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/tiny/arcpgu.c')
-rw-r--r--drivers/gpu/drm/tiny/arcpgu.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/gpu/drm/tiny/arcpgu.c b/drivers/gpu/drm/tiny/arcpgu.c
index 2748d1f21d86..c93d61ac0bb7 100644
--- a/drivers/gpu/drm/tiny/arcpgu.c
+++ b/drivers/gpu/drm/tiny/arcpgu.c
@@ -250,10 +250,10 @@ DEFINE_DRM_GEM_DMA_FOPS(arcpgu_drm_ops);
static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
{
struct platform_device *pdev = to_platform_device(arcpgu->drm.dev);
- struct device_node *encoder_node = NULL, *endpoint_node = NULL;
+ struct device_node *encoder_node __free(device_node) = NULL;
+ struct device_node *endpoint_node = NULL;
struct drm_connector *connector = NULL;
struct drm_device *drm = &arcpgu->drm;
- struct resource *res;
int ret;
arcpgu->clk = devm_clk_get(drm->dev, "pxlclk");
@@ -270,8 +270,7 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
drm->mode_config.max_height = 1080;
drm->mode_config.funcs = &arcpgu_drm_modecfg_funcs;
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- arcpgu->regs = devm_ioremap_resource(&pdev->dev, res);
+ arcpgu->regs = devm_platform_ioremap_resource(pdev, 0);
if (IS_ERR(arcpgu->regs))
return PTR_ERR(arcpgu->regs);
@@ -310,10 +309,9 @@ static int arcpgu_load(struct arcpgu_drm_private *arcpgu)
return ret;
if (encoder_node) {
- struct drm_bridge *bridge;
-
/* Locate drm bridge from the hdmi encoder DT node */
- bridge = of_drm_find_bridge(encoder_node);
+ struct drm_bridge *bridge __free(drm_bridge_put) =
+ of_drm_find_and_get_bridge(encoder_node);
if (!bridge)
return -EPROBE_DEFER;