On 12/08/2026 14:24, 楊智成 wrote:
Thanks for the review.
quoted
I read above, but still do not get why TYPE_DPHY/CPHY is not enough.
Isn't DPHY implying it is DSI?
I see your point, and I did not explain this clearly enough in the previous
version.
D-PHY only describes the electrical layer, and both MIPI DSI and MIPI CSI-2
can run on top of it. A CSI-2 receiver's PHY is a D-PHY just as much as a
DSI transmitter's is, so PHY_TYPE_DPHY alone does not tell us which one the
consumer is asking for.
That is the problem here. The RK3588 DC-PHY exposes both a transmitter and
a receiver from a single PHY block, which can be used by two independent
consumers at the same time. This is not a theoretical concern: on this
board a DSI panel is scanning out while the same PHY receives CSI-2 frames
from a camera. With only the electrical layer to identify the PHY, both
consumers would end up with the same phandle cell:
dsi@fde20000 {
phys = <&mipidcphy0 PHY_TYPE_DPHY>; /* wants the TX */
};
csi2@fdd10000 {
phys = <&mipidcphy0 PHY_TYPE_DPHY>; /* wants the RX */
};
There is then nothing in .of_xlate() to distinguish the two requests.
I will make this clearer in the v4 commit message and include the example
above so that the reasoning is easier to follow.
For context, v2 described the direction with a Rockchip-private
RK_DCPHY_DIR_* enum. Michael Riesch suggested using generic constants
instead [1], and Vinod agreed [2].
[1] https://lore.kernel.org/r/82da3622-9c3a-454c-87bc-fb4ec7adb68d@collabora.com (local)
[2] https://lore.kernel.org/r/anSuxfeitSqmSHNr@vaman (local)
quoted
Your tag goes the last.
Sure, I will fix this in v4. The Signed-off-by tag will come last, and I
will check the whole series again.
LLM-pasted and LLM-feeding answer again.
Best regards,
Krzysztof