/* Находим ноду DSI */
if (lt9611->dsi0_node) {
/*
* Проверяем, зарегистрирован ли уже хост.
* Если хост еще не готов, уходим в контролируемый DEFER.
* На i.MX8MP с флагом attach-bridge хост зарегистрируется и вызовет нас снова.
*/
struct mipi_dsi_host *host = of_find_mipi_dsi_host_by_node(lt9611->dsi0_node);
if (!host) {
/* Проверяем родителя на случай контейнера ports */
struct device_node *parent = of_get_parent(lt9611->dsi0_node);
host = of_find_mipi_dsi_host_by_node(parent);
of_node_put(parent);
if (!host) {
dev_dbg(dev, "DSI host not ready yet, deferring probe\n");
ret = -EPROBE_DEFER;
goto err_remove_bridge;
}
}
/* Регистрация DSI устройства */
lt9611->dsi0 = lt9611_attach_dsi(lt9611, lt9611->dsi0_node);
if (IS_ERR(lt9611->dsi0)) {
ret = PTR_ERR(lt9611->dsi0);
goto err_remove_bridge;
}
}