diff options
Diffstat (limited to 'drivers/staging/imx-drm/parallel-display.c')
-rw-r--r-- | drivers/staging/imx-drm/parallel-display.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/staging/imx-drm/parallel-display.c b/drivers/staging/imx-drm/parallel-display.c index 9b51d73..a8064fc 100644 --- a/drivers/staging/imx-drm/parallel-display.c +++ b/drivers/staging/imx-drm/parallel-display.c @@ -23,6 +23,7 @@ #include <drm/drm_fb_helper.h> #include <drm/drm_crtc_helper.h> #include <linux/videodev2.h> +#include <linux/pinctrl/consumer.h> #include "imx-drm.h" @@ -188,18 +189,27 @@ static int imx_pd_register(struct imx_parallel_display *imxpd) return 0; } -static int __devinit imx_pd_probe(struct platform_device *pdev) +static int imx_pd_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; const u8 *edidp; struct imx_parallel_display *imxpd; int ret; const char *fmt; + struct pinctrl *pinctrl; imxpd = devm_kzalloc(&pdev->dev, sizeof(*imxpd), GFP_KERNEL); if (!imxpd) return -ENOMEM; + pinctrl = devm_pinctrl_get_select_default(&pdev->dev); + if (IS_ERR(pinctrl)) { + ret = PTR_ERR(pinctrl); + dev_warn(&pdev->dev, "pinctrl_get_select_default failed with %d", + ret); + return ret; + } + edidp = of_get_property(np, "edid", &imxpd->edid_len); if (edidp) imxpd->edid = kmemdup(edidp, imxpd->edid_len, GFP_KERNEL); @@ -225,7 +235,7 @@ static int __devinit imx_pd_probe(struct platform_device *pdev) return 0; } -static int __devexit imx_pd_remove(struct platform_device *pdev) +static int imx_pd_remove(struct platform_device *pdev) { struct imx_parallel_display *imxpd = platform_get_drvdata(pdev); struct drm_connector *connector = &imxpd->connector; @@ -246,7 +256,7 @@ static const struct of_device_id imx_pd_dt_ids[] = { static struct platform_driver imx_pd_driver = { .probe = imx_pd_probe, - .remove = __devexit_p(imx_pd_remove), + .remove = imx_pd_remove, .driver = { .of_match_table = imx_pd_dt_ids, .name = "imx-parallel-display", |