Lines Matching full:companion
76 struct drm_bridge *companion; member
403 /* Enable the companion LVDS encoder in dual-link mode. */ in __rcar_lvds_atomic_enable()
404 if (lvds->link_type != RCAR_LVDS_SINGLE_LINK && lvds->companion) in __rcar_lvds_atomic_enable()
405 __rcar_lvds_atomic_enable(lvds->companion, state, crtc, in __rcar_lvds_atomic_enable()
435 * encoder and odd pixels from the companion encoder. in __rcar_lvds_atomic_enable()
438 * companion encoder. in __rcar_lvds_atomic_enable()
447 * ST_SWAP is reserved for the companion encoder, only in __rcar_lvds_atomic_enable()
451 | (lvds->companion && swap_pixels ? in __rcar_lvds_atomic_enable()
458 * PLL clock configuration on all instances but the companion in in __rcar_lvds_atomic_enable()
461 if (lvds->link_type == RCAR_LVDS_SINGLE_LINK || lvds->companion) { in __rcar_lvds_atomic_enable()
549 /* Disable the companion LVDS encoder in dual-link mode. */ in rcar_lvds_atomic_disable()
550 if (lvds->link_type != RCAR_LVDS_SINGLE_LINK && lvds->companion) in rcar_lvds_atomic_disable()
551 lvds->companion->funcs->atomic_disable(lvds->companion, in rcar_lvds_atomic_disable()
620 struct device_node *companion; in rcar_lvds_parse_dt_companion() local
627 /* Locate the companion LVDS encoder for dual-link operation, if any. */ in rcar_lvds_parse_dt_companion()
628 companion = of_parse_phandle(dev->of_node, "renesas,companion", 0); in rcar_lvds_parse_dt_companion()
629 if (!companion) in rcar_lvds_parse_dt_companion()
633 * Sanity check: the companion encoder must have the same compatible in rcar_lvds_parse_dt_companion()
637 if (!of_device_is_compatible(companion, match->compatible)) { in rcar_lvds_parse_dt_companion()
638 dev_err(dev, "Companion LVDS encoder is invalid\n"); in rcar_lvds_parse_dt_companion()
650 port1 = of_graph_get_port_by_id(companion, 1); in rcar_lvds_parse_dt_companion()
667 * encoder, and odd pixels from the companion encoder. in rcar_lvds_parse_dt_companion()
681 lvds->companion = of_drm_find_bridge(companion); in rcar_lvds_parse_dt_companion()
682 if (!lvds->companion) { in rcar_lvds_parse_dt_companion()
688 "Dual-link configuration detected (companion encoder %pOF)\n", in rcar_lvds_parse_dt_companion()
689 companion); in rcar_lvds_parse_dt_companion()
695 * FIXME: We should not be messing with the companion encoder private in rcar_lvds_parse_dt_companion()
696 * data from the primary encoder, we should rather let the companion in rcar_lvds_parse_dt_companion()
697 * encoder work things out on its own. However, the companion encoder in rcar_lvds_parse_dt_companion()
703 companion_lvds = bridge_to_rcar_lvds(lvds->companion); in rcar_lvds_parse_dt_companion()
707 of_node_put(companion); in rcar_lvds_parse_dt_companion()