Hi Andy, Please trim the context in your answers to the relevant parts, it makes it easier to find the things you said. On Thu, Feb 17, 2022 at 08:00:11PM +0800, Andy Yan wrote: > Hi Sascha: > > > + > > + drm_for_each_encoder_mask(encoder, crtc->dev, crtc_state->encoder_mask) { > > + struct rockchip_encoder *rkencoder = to_rockchip_encoder(encoder); > > + struct device_node *node, *parent; > > + > > + parent = of_get_parent(rkencoder->port); > > + > > + for_each_endpoint_of_node(parent, node) { > > Is there any hurt directly use our downstream vendor kernel method here: use > vcstate->output_if set by encoder driver to get which interface we should > enable here? There is no vcstate->output_if in mainline currently. Ok, we could add that. The other thing is that there are multiple HDMI interfaces and the id of the HDMI encoder is encoded into output_if. Downstream kernel adds OF aliases to the HDMI ports. I didn't want to go that route because it doesn't seem to be very elegant to me. > > You method is ok with device tree, but it tied up this driver to device > tree, we are now tring to extend vop2 driver work with ACPI, so we hope this > driver can be much more flexible. The current rockchip drm driver seems to be pretty much tied to device tree. There are probably many other places that need parallel paths for ACPI support, I think we can delay this particular part until we see the whole picture. In the end we can still retrieve the output_if information differently with ACPI while still retrieving the information from the device tree the way we are doing currently. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |