mirror of https://gitee.com/openkylin/linux.git
gpu: ipu-v3: Do not bail out on missing optional port nodes
The port nodes are documented as optional, treat them accordingly.
Reported-by: Martin Fuzzey <mfuzzey@parkeon.com>
Reported-by: Chris Healy <Chris.Healy@zii.aero>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Fixes: 304e6be652
("gpu: ipu-v3: Assign of_node of child platform devices to corresponding ports")
This commit is contained in:
parent
92e963f50f
commit
17e0521750
|
@ -1050,6 +1050,17 @@ static int ipu_add_client_devices(struct ipu_soc *ipu, unsigned long ipu_base)
|
|||
for (i = 0; i < ARRAY_SIZE(client_reg); i++) {
|
||||
const struct ipu_platform_reg *reg = &client_reg[i];
|
||||
struct platform_device *pdev;
|
||||
struct device_node *of_node;
|
||||
|
||||
/* Associate subdevice with the corresponding port node */
|
||||
of_node = of_graph_get_port_by_id(dev->of_node, i);
|
||||
if (!of_node) {
|
||||
dev_info(dev,
|
||||
"no port@%d node in %s, not using %s%d\n",
|
||||
i, dev->of_node->full_name,
|
||||
(i / 2) ? "DI" : "CSI", i % 2);
|
||||
continue;
|
||||
}
|
||||
|
||||
pdev = platform_device_alloc(reg->name, id++);
|
||||
if (!pdev) {
|
||||
|
@ -1057,17 +1068,9 @@ static int ipu_add_client_devices(struct ipu_soc *ipu, unsigned long ipu_base)
|
|||
goto err_register;
|
||||
}
|
||||
|
||||
pdev->dev.of_node = of_node;
|
||||
pdev->dev.parent = dev;
|
||||
|
||||
/* Associate subdevice with the corresponding port node */
|
||||
pdev->dev.of_node = of_graph_get_port_by_id(dev->of_node, i);
|
||||
if (!pdev->dev.of_node) {
|
||||
dev_err(dev, "missing port@%d node in %s\n", i,
|
||||
dev->of_node->full_name);
|
||||
ret = -ENODEV;
|
||||
goto err_register;
|
||||
}
|
||||
|
||||
ret = platform_device_add_data(pdev, ®->pdata,
|
||||
sizeof(reg->pdata));
|
||||
if (!ret)
|
||||
|
|
Loading…
Reference in New Issue