Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Lucas Stach and committed by
Philipp Zabel
92681fe7 0d6c9a42

+10 -1
+10 -1
drivers/gpu/ipu-v3/ipu-common.c
··· 939 939 { .compatible = "fsl,imx51-ipu", .data = &ipu_type_imx51, }, 940 940 { .compatible = "fsl,imx53-ipu", .data = &ipu_type_imx53, }, 941 941 { .compatible = "fsl,imx6q-ipu", .data = &ipu_type_imx6q, }, 942 + { .compatible = "fsl,imx6qp-ipu", .data = &ipu_type_imx6q, }, 942 943 { /* sentinel */ } 943 944 }; 944 945 MODULE_DEVICE_TABLE(of, imx_ipu_dt_ids); ··· 1399 1398 if (!ipu) 1400 1399 return -ENODEV; 1401 1400 1401 + ipu->id = of_alias_get_id(np, "ipu"); 1402 + 1403 + if (of_device_is_compatible(np, "fsl,imx6qp-ipu")) { 1404 + ipu->prg_priv = ipu_prg_lookup_by_phandle(&pdev->dev, 1405 + "fsl,prg", ipu->id); 1406 + if (!ipu->prg_priv) 1407 + return -EPROBE_DEFER; 1408 + } 1409 + 1402 1410 for (i = 0; i < 64; i++) 1403 1411 ipu->channel[i].ipu = ipu; 1404 1412 ipu->devtype = devtype; 1405 1413 ipu->ipu_type = devtype->type; 1406 - ipu->id = of_alias_get_id(np, "ipu"); 1407 1414 1408 1415 spin_lock_init(&ipu->lock); 1409 1416 mutex_init(&ipu->channel_lock);