diff options
| author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2018-03-01 15:02:30 -0500 |
|---|---|---|
| committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2018-03-02 08:11:07 -0500 |
| commit | c39bbb903ce337a3f6a7fe0ac8d30e0876699fc2 (patch) | |
| tree | 32c9a873220f942e3a45a555a606258681bff7a9 /drivers/gpu/drm/omapdrm/displays | |
| parent | 4cba7071b70de271415a4d9e8bfb1e420d5942b1 (diff) | |
drm: omapdrm: displays: panel-dsi-cm: Fix field access before set
The driver accesses the ddata->in field before it gets set in the
dsicm_connect() function. Use the local in pointer variable instead.
Fixes: 7877632b4cd0 ("drm: omapdrm: displays: Get panel source at connect time")
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/gpu/drm/omapdrm/displays')
| -rw-r--r-- | drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c index f960e55d64ea..428de90fced1 100644 --- a/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c +++ b/drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | |||
| @@ -778,13 +778,13 @@ static int dsicm_connect(struct omap_dss_device *dssdev) | |||
| 778 | goto err_connect; | 778 | goto err_connect; |
| 779 | } | 779 | } |
| 780 | 780 | ||
| 781 | r = in->ops.dsi->request_vc(ddata->in, &ddata->channel); | 781 | r = in->ops.dsi->request_vc(in, &ddata->channel); |
| 782 | if (r) { | 782 | if (r) { |
| 783 | dev_err(dev, "failed to get virtual channel\n"); | 783 | dev_err(dev, "failed to get virtual channel\n"); |
| 784 | goto err_req_vc; | 784 | goto err_req_vc; |
| 785 | } | 785 | } |
| 786 | 786 | ||
| 787 | r = in->ops.dsi->set_vc_id(ddata->in, ddata->channel, TCH); | 787 | r = in->ops.dsi->set_vc_id(in, ddata->channel, TCH); |
| 788 | if (r) { | 788 | if (r) { |
| 789 | dev_err(dev, "failed to set VC_ID\n"); | 789 | dev_err(dev, "failed to set VC_ID\n"); |
| 790 | goto err_vc_id; | 790 | goto err_vc_id; |
| @@ -794,7 +794,7 @@ static int dsicm_connect(struct omap_dss_device *dssdev) | |||
| 794 | return 0; | 794 | return 0; |
| 795 | 795 | ||
| 796 | err_vc_id: | 796 | err_vc_id: |
| 797 | in->ops.dsi->release_vc(ddata->in, ddata->channel); | 797 | in->ops.dsi->release_vc(in, ddata->channel); |
| 798 | err_req_vc: | 798 | err_req_vc: |
| 799 | in->ops.dsi->disconnect(in, dssdev); | 799 | in->ops.dsi->disconnect(in, dssdev); |
| 800 | err_connect: | 800 | err_connect: |
