aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Stach <l.stach@pengutronix.de>2017-03-08 06:13:18 -0500
committerPhilipp Zabel <p.zabel@pengutronix.de>2017-03-16 05:14:39 -0400
commit92681fe7e98eb8c0a3ef6e850db399b2de192562 (patch)
tree7a8fa851b1c359d9615ecdad6f88324a05b79352
parent0d6c9a424498d7167b6c6759b58bd649e96dbf80 (diff)
gpu: ipu-v3: hook up PRG unit
The i.MX6 QuadPlus IPU needs to PRG unit to gain access to the data bus. Make sure it is present and available to be used. Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
-rw-r--r--drivers/gpu/ipu-v3/ipu-common.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-common.c b/drivers/gpu/ipu-v3/ipu-common.c
index 4c8453989746..7aefccec31b1 100644
--- a/drivers/gpu/ipu-v3/ipu-common.c
+++ b/drivers/gpu/ipu-v3/ipu-common.c
@@ -939,6 +939,7 @@ static const struct of_device_id imx_ipu_dt_ids[] = {
939 { .compatible = "fsl,imx51-ipu", .data = &ipu_type_imx51, }, 939 { .compatible = "fsl,imx51-ipu", .data = &ipu_type_imx51, },
940 { .compatible = "fsl,imx53-ipu", .data = &ipu_type_imx53, }, 940 { .compatible = "fsl,imx53-ipu", .data = &ipu_type_imx53, },
941 { .compatible = "fsl,imx6q-ipu", .data = &ipu_type_imx6q, }, 941 { .compatible = "fsl,imx6q-ipu", .data = &ipu_type_imx6q, },
942 { .compatible = "fsl,imx6qp-ipu", .data = &ipu_type_imx6q, },
942 { /* sentinel */ } 943 { /* sentinel */ }
943}; 944};
944MODULE_DEVICE_TABLE(of, imx_ipu_dt_ids); 945MODULE_DEVICE_TABLE(of, imx_ipu_dt_ids);
@@ -1398,11 +1399,19 @@ static int ipu_probe(struct platform_device *pdev)
1398 if (!ipu) 1399 if (!ipu)
1399 return -ENODEV; 1400 return -ENODEV;
1400 1401
1402 ipu->id = of_alias_get_id(np, "ipu");
1403
1404 if (of_device_is_compatible(np, "fsl,imx6qp-ipu")) {
1405 ipu->prg_priv = ipu_prg_lookup_by_phandle(&pdev->dev,
1406 "fsl,prg", ipu->id);
1407 if (!ipu->prg_priv)
1408 return -EPROBE_DEFER;
1409 }
1410
1401 for (i = 0; i < 64; i++) 1411 for (i = 0; i < 64; i++)
1402 ipu->channel[i].ipu = ipu; 1412 ipu->channel[i].ipu = ipu;
1403 ipu->devtype = devtype; 1413 ipu->devtype = devtype;
1404 ipu->ipu_type = devtype->type; 1414 ipu->ipu_type = devtype->type;
1405 ipu->id = of_alias_get_id(np, "ipu");
1406 1415
1407 spin_lock_init(&ipu->lock); 1416 spin_lock_init(&ipu->lock);
1408 mutex_init(&ipu->channel_lock); 1417 mutex_init(&ipu->channel_lock);