Lines Matching full:companion
75 struct drm_bridge *companion; member
402 /* Enable the companion LVDS encoder in dual-link mode. */ in __rcar_lvds_atomic_enable()
403 if (lvds->link_type != RCAR_LVDS_SINGLE_LINK && lvds->companion) in __rcar_lvds_atomic_enable()
404 __rcar_lvds_atomic_enable(lvds->companion, state, crtc, in __rcar_lvds_atomic_enable()
434 * encoder and odd pixels from the companion encoder. in __rcar_lvds_atomic_enable()
437 * companion encoder. in __rcar_lvds_atomic_enable()
446 * ST_SWAP is reserved for the companion encoder, only in __rcar_lvds_atomic_enable()
450 | (lvds->companion && swap_pixels ? in __rcar_lvds_atomic_enable()
457 * PLL clock configuration on all instances but the companion in in __rcar_lvds_atomic_enable()
460 if (lvds->link_type == RCAR_LVDS_SINGLE_LINK || lvds->companion) { in __rcar_lvds_atomic_enable()
548 /* Disable the companion LVDS encoder in dual-link mode. */ in rcar_lvds_atomic_disable()
549 if (lvds->link_type != RCAR_LVDS_SINGLE_LINK && lvds->companion) in rcar_lvds_atomic_disable()
550 lvds->companion->funcs->atomic_disable(lvds->companion, in rcar_lvds_atomic_disable()
619 struct device_node *companion; in rcar_lvds_parse_dt_companion() local
626 /* Locate the companion LVDS encoder for dual-link operation, if any. */ in rcar_lvds_parse_dt_companion()
627 companion = of_parse_phandle(dev->of_node, "renesas,companion", 0); in rcar_lvds_parse_dt_companion()
628 if (!companion) in rcar_lvds_parse_dt_companion()
632 * Sanity check: the companion encoder must have the same compatible in rcar_lvds_parse_dt_companion()
636 if (!of_device_is_compatible(companion, match->compatible)) { in rcar_lvds_parse_dt_companion()
637 dev_err(dev, "Companion LVDS encoder is invalid\n"); in rcar_lvds_parse_dt_companion()
649 port1 = of_graph_get_port_by_id(companion, 1); in rcar_lvds_parse_dt_companion()
666 * encoder, and odd pixels from the companion encoder. in rcar_lvds_parse_dt_companion()
680 lvds->companion = of_drm_find_bridge(companion); in rcar_lvds_parse_dt_companion()
681 if (!lvds->companion) { in rcar_lvds_parse_dt_companion()
687 "Dual-link configuration detected (companion encoder %pOF)\n", in rcar_lvds_parse_dt_companion()
688 companion); in rcar_lvds_parse_dt_companion()
694 * FIXME: We should not be messing with the companion encoder private in rcar_lvds_parse_dt_companion()
695 * data from the primary encoder, we should rather let the companion in rcar_lvds_parse_dt_companion()
696 * encoder work things out on its own. However, the companion encoder in rcar_lvds_parse_dt_companion()
702 companion_lvds = bridge_to_rcar_lvds(lvds->companion); in rcar_lvds_parse_dt_companion()
706 of_node_put(companion); in rcar_lvds_parse_dt_companion()