Lines Matching full:companion
39 struct drm_bridge *companion; member
114 if (p2d->companion) { in imx8qxp_pxl2dpi_bridge_mode_set()
115 companion_p2d = bridge_to_p2d(p2d->companion); in imx8qxp_pxl2dpi_bridge_mode_set()
120 p2d->companion->funcs->mode_set(p2d->companion, mode, in imx8qxp_pxl2dpi_bridge_mode_set()
136 if (p2d->companion) in imx8qxp_pxl2dpi_bridge_atomic_disable()
137 p2d->companion->funcs->atomic_disable(p2d->companion, in imx8qxp_pxl2dpi_bridge_atomic_disable()
323 struct device_node *companion; in imx8qxp_pxl2dpi_parse_dt_companion() local
329 /* Locate the companion PXL2DPI for dual-link operation, if any. */ in imx8qxp_pxl2dpi_parse_dt_companion()
330 companion = of_parse_phandle(dev->of_node, "fsl,companion-pxl2dpi", 0); in imx8qxp_pxl2dpi_parse_dt_companion()
331 if (!companion) in imx8qxp_pxl2dpi_parse_dt_companion()
334 if (!of_device_is_available(companion)) { in imx8qxp_pxl2dpi_parse_dt_companion()
335 DRM_DEV_ERROR(dev, "companion PXL2DPI is not available\n"); in imx8qxp_pxl2dpi_parse_dt_companion()
341 * Sanity check: the companion bridge must have the same compatible in imx8qxp_pxl2dpi_parse_dt_companion()
345 if (!of_device_is_compatible(companion, match->compatible)) { in imx8qxp_pxl2dpi_parse_dt_companion()
346 DRM_DEV_ERROR(dev, "companion PXL2DPI is incompatible\n"); in imx8qxp_pxl2dpi_parse_dt_companion()
351 p2d->companion = of_drm_find_bridge(companion); in imx8qxp_pxl2dpi_parse_dt_companion()
352 if (!p2d->companion) { in imx8qxp_pxl2dpi_parse_dt_companion()
355 "failed to find companion bridge: %d\n", in imx8qxp_pxl2dpi_parse_dt_companion()
360 companion_p2d = bridge_to_p2d(p2d->companion); in imx8qxp_pxl2dpi_parse_dt_companion()
366 * even pixels and odd pixels than we need to use the companion PXL2DPI. in imx8qxp_pxl2dpi_parse_dt_companion()
382 "dual-link configuration detected (companion bridge %pOF)\n", in imx8qxp_pxl2dpi_parse_dt_companion()
383 companion); in imx8qxp_pxl2dpi_parse_dt_companion()
385 of_node_put(companion); in imx8qxp_pxl2dpi_parse_dt_companion()