All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bryan O'Donoghue <bod@kernel.org>
To: Neil Armstrong <neil.armstrong@linaro.org>,
	Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	Vinod Koul <vkoul@kernel.org>,
	Kishon Vijay Abraham I <kishon@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
	linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver
Date: Wed, 18 Mar 2026 15:47:53 +0000	[thread overview]
Message-ID: <baa40d8c-cd0e-4661-b951-fe992c8e96bd@kernel.org> (raw)
In-Reply-To: <16b10f17-ecd3-4cdd-ac3f-f64127d60ace@linaro.org>

On 18/03/2026 15:07, Neil Armstrong wrote:
> On 3/18/26 14:17, Bryan O'Donoghue wrote:
>> On 18/03/2026 10:15, Neil Armstrong wrote:
>>>> +    /*
>>>> +     * phy_configure_opts_mipi_dphy.lanes starts from zero to
>>>> +     * the maximum number of enabled lanes.
>>>> +     *
>>>> +     * TODO: add support for bitmask of enabled lanes and polarities
>>>> +     * of those lanes to the phy_configure_opts_mipi_dphy struct.
>>>> +     * For now take the polarities as zero and the position as fixed
>>>> +     * this is fine as no current upstream implementation maps otherwise.
>>>> +     */
>>>
>>> This is wrong since you loose the lanes mapping defined in DT, which is still in CAMSS
>>> but is a PHY property. The lanes layout is not a property of the CSI controller,
>>> CSI controller only need to know the lanes count, and not the layout.
>>
>> Lane layout is a PHY concern but, the PHY API gives us phy_configure_opts_mipi_dphy which should be extended to provide layout and polarity. This would then be of benefit to more than just qcom/camss.
> 
> Why ? the only concern between a controller and a PHY is the lane count to calculate the bandwidth, the actual pin layout is certainly not a controller concern.

Controllers already get the lane count by way of data-lanes = <x y z q> 
or <x y> or <x> if we didn't do that we would need to specify the 
data-lanes in the controller and again in the PHY.

>>
>> Right now none of the CAMSS users for this driver depend on any other mapping and I propose a separate series to fix phy_configure_opts_mipi_dphy rather than introduce data-lanes to DPHY.
> 
> None of the upstream users of camss.

No, we are establishing from x1 use of standard drivers/phy. New users 
will do it this way. The posted dtsi for the laptops can use the linear 
lane layout and default polarities.

In a follow on series we can extend phy_configure_opts_mipi_dphy to 
parse data-lanes = <> into count and mask, to the benefit of any user of 
phy_configure_opts_mipi_dphy.

Since that will touch more then qcom specific stuff and will touch at 
least two subsystems, that should be its own separate series.

> The problem is even larger, as you replied in [1], the csiphy is still exposed as a media element from the CAMSS driver, this means this driver is not complete,
> it should be a media driver entirely with eventually an internal PHY aux driver, but this would be entirely implementation specific.
> 
> Either the PHY is standalone and the PHY consumer only calls phy_open/init/configure/power_on/power_off/exit, otherwise it's not a fully standaline PHY but a composite device like here.

This is not a composite device any more than the existing upstream
implementations which follow the same model:

- Cadence CSI2RX + Cadence DPHY (TI J721E/AM62A)
- Rockchip rkisp1 + phy-rockchip-inno-csidphy

Both use phys = <&phandle>, the media driver manages V4L2 endpoints
and lane counts, the PHY driver handles the electrical layer via
phy_configure().

To this list we will add qcom camss, there's nothing exotic being proposed.

> I propose that you write a proper media driver for the qcom csiphy, which eventually spins a PHY driver as an aux device.

None of these SoC D-PHYs are written as V4L2 media drivers that spawn 
auxiliary devices. They all use the phys = <&phandle> model. The media 
driver manages the V4L2 endpoints and lane counts, passing the 
configuration down via phy_configure_opts_mipi_dphy.

I just don't see what is so special about CAMSS that it needs to have 
its own special PHY implementation. drivers/phy the standard API and 
specification of data-lanes etc in the controller seems pretty "bog 
standard".

---
bod

WARNING: multiple messages have this Message-ID (diff)
From: Bryan O'Donoghue <bod@kernel.org>
To: Neil Armstrong <neil.armstrong@linaro.org>,
	Bryan O'Donoghue <bryan.odonoghue@linaro.org>,
	Vinod Koul <vkoul@kernel.org>,
	Kishon Vijay Abraham I <kishon@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>
Cc: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>,
	linux-arm-msm@vger.kernel.org, linux-phy@lists.infradead.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver
Date: Wed, 18 Mar 2026 15:47:53 +0000	[thread overview]
Message-ID: <baa40d8c-cd0e-4661-b951-fe992c8e96bd@kernel.org> (raw)
In-Reply-To: <16b10f17-ecd3-4cdd-ac3f-f64127d60ace@linaro.org>

On 18/03/2026 15:07, Neil Armstrong wrote:
> On 3/18/26 14:17, Bryan O'Donoghue wrote:
>> On 18/03/2026 10:15, Neil Armstrong wrote:
>>>> +    /*
>>>> +     * phy_configure_opts_mipi_dphy.lanes starts from zero to
>>>> +     * the maximum number of enabled lanes.
>>>> +     *
>>>> +     * TODO: add support for bitmask of enabled lanes and polarities
>>>> +     * of those lanes to the phy_configure_opts_mipi_dphy struct.
>>>> +     * For now take the polarities as zero and the position as fixed
>>>> +     * this is fine as no current upstream implementation maps otherwise.
>>>> +     */
>>>
>>> This is wrong since you loose the lanes mapping defined in DT, which is still in CAMSS
>>> but is a PHY property. The lanes layout is not a property of the CSI controller,
>>> CSI controller only need to know the lanes count, and not the layout.
>>
>> Lane layout is a PHY concern but, the PHY API gives us phy_configure_opts_mipi_dphy which should be extended to provide layout and polarity. This would then be of benefit to more than just qcom/camss.
> 
> Why ? the only concern between a controller and a PHY is the lane count to calculate the bandwidth, the actual pin layout is certainly not a controller concern.

Controllers already get the lane count by way of data-lanes = <x y z q> 
or <x y> or <x> if we didn't do that we would need to specify the 
data-lanes in the controller and again in the PHY.

>>
>> Right now none of the CAMSS users for this driver depend on any other mapping and I propose a separate series to fix phy_configure_opts_mipi_dphy rather than introduce data-lanes to DPHY.
> 
> None of the upstream users of camss.

No, we are establishing from x1 use of standard drivers/phy. New users 
will do it this way. The posted dtsi for the laptops can use the linear 
lane layout and default polarities.

In a follow on series we can extend phy_configure_opts_mipi_dphy to 
parse data-lanes = <> into count and mask, to the benefit of any user of 
phy_configure_opts_mipi_dphy.

Since that will touch more then qcom specific stuff and will touch at 
least two subsystems, that should be its own separate series.

> The problem is even larger, as you replied in [1], the csiphy is still exposed as a media element from the CAMSS driver, this means this driver is not complete,
> it should be a media driver entirely with eventually an internal PHY aux driver, but this would be entirely implementation specific.
> 
> Either the PHY is standalone and the PHY consumer only calls phy_open/init/configure/power_on/power_off/exit, otherwise it's not a fully standaline PHY but a composite device like here.

This is not a composite device any more than the existing upstream
implementations which follow the same model:

- Cadence CSI2RX + Cadence DPHY (TI J721E/AM62A)
- Rockchip rkisp1 + phy-rockchip-inno-csidphy

Both use phys = <&phandle>, the media driver manages V4L2 endpoints
and lane counts, the PHY driver handles the electrical layer via
phy_configure().

To this list we will add qcom camss, there's nothing exotic being proposed.

> I propose that you write a proper media driver for the qcom csiphy, which eventually spins a PHY driver as an aux device.

None of these SoC D-PHYs are written as V4L2 media drivers that spawn 
auxiliary devices. They all use the phys = <&phandle> model. The media 
driver manages the V4L2 endpoints and lane counts, passing the 
configuration down via phy_configure_opts_mipi_dphy.

I just don't see what is so special about CAMSS that it needs to have 
its own special PHY implementation. drivers/phy the standard API and 
specification of data-lanes etc in the controller seems pretty "bog 
standard".

---
bod

-- 
linux-phy mailing list
linux-phy@lists.infradead.org
https://lists.infradead.org/mailman/listinfo/linux-phy

  parent reply	other threads:[~2026-03-18 15:47 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-15 23:52 [PATCH v4 0/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver Bryan O'Donoghue
2026-03-15 23:52 ` Bryan O'Donoghue
2026-03-15 23:52 ` [PATCH v4 1/2] dt-bindings: phy: qcom: Add CSI2 C-PHY/DPHY schema Bryan O'Donoghue
2026-03-15 23:52   ` Bryan O'Donoghue
2026-03-16  1:58   ` Vladimir Zapolskiy
2026-03-16  1:58     ` Vladimir Zapolskiy
2026-03-16  2:45     ` Dmitry Baryshkov
2026-03-16  2:45       ` Dmitry Baryshkov
2026-03-16 10:49       ` Konrad Dybcio
2026-03-16 10:49         ` Konrad Dybcio
2026-03-16 12:09         ` Bryan O'Donoghue
2026-03-16 12:09           ` Bryan O'Donoghue
2026-03-16  7:42   ` Krzysztof Kozlowski
2026-03-16  7:42     ` Krzysztof Kozlowski
2026-03-16 21:31   ` Vijay Kumar Tumati
2026-03-16 21:31     ` Vijay Kumar Tumati
2026-03-17  5:26     ` Bryan O'Donoghue
2026-03-17  5:26       ` Bryan O'Donoghue
2026-03-17 20:25       ` Vijay Kumar Tumati
2026-03-17 20:25         ` Vijay Kumar Tumati
2026-03-23 14:22         ` Konrad Dybcio
2026-03-23 14:22           ` Konrad Dybcio
2026-03-23 14:29           ` Bryan O'Donoghue
2026-03-23 14:29             ` Bryan O'Donoghue
2026-03-15 23:52 ` [PATCH v4 2/2] phy: qcom-mipi-csi2: Add a CSI2 MIPI DPHY driver Bryan O'Donoghue
2026-03-15 23:52   ` Bryan O'Donoghue
2026-03-16 10:12   ` Krzysztof Kozlowski
2026-03-16 10:12     ` Krzysztof Kozlowski
2026-03-16 12:04     ` Bryan O'Donoghue
2026-03-16 12:04       ` Bryan O'Donoghue
2026-03-18 10:15   ` Neil Armstrong
2026-03-18 10:15     ` Neil Armstrong
2026-03-18 13:17     ` Bryan O'Donoghue
2026-03-18 13:17       ` Bryan O'Donoghue
2026-03-18 15:07       ` Neil Armstrong
2026-03-18 15:07         ` Neil Armstrong
2026-03-18 15:27         ` Dmitry Baryshkov
2026-03-18 15:27           ` Dmitry Baryshkov
2026-03-19 13:08           ` Vladimir Zapolskiy
2026-03-19 13:08             ` Vladimir Zapolskiy
2026-03-19 13:17             ` Bryan O'Donoghue
2026-03-19 13:17               ` Bryan O'Donoghue
2026-03-19 14:05               ` Neil Armstrong
2026-03-19 14:05                 ` Neil Armstrong
2026-03-19 15:06                 ` Bryan O'Donoghue
2026-03-19 15:06                   ` Bryan O'Donoghue
2026-03-19 14:56               ` Vladimir Zapolskiy
2026-03-19 14:56                 ` Vladimir Zapolskiy
2026-03-19 15:18                 ` Bryan O'Donoghue
2026-03-19 15:18                   ` Bryan O'Donoghue
2026-03-19 16:08                   ` Neil Armstrong
2026-03-19 16:08                     ` Neil Armstrong
2026-03-19 16:56                     ` Bryan O'Donoghue
2026-03-19 16:56                       ` Bryan O'Donoghue
2026-03-19 17:39                       ` Neil Armstrong
2026-03-19 17:39                         ` Neil Armstrong
2026-03-27 10:19                         ` Konrad Dybcio
2026-03-27 10:19                           ` Konrad Dybcio
2026-03-20  0:37                   ` Vladimir Zapolskiy
2026-03-20  0:37                     ` Vladimir Zapolskiy
2026-03-20  9:56                     ` Bryan O'Donoghue
2026-03-20  9:56                       ` Bryan O'Donoghue
2026-03-18 15:47         ` Bryan O'Donoghue [this message]
2026-03-18 15:47           ` Bryan O'Donoghue
2026-03-22 16:44   ` kernel test robot
2026-03-22 16:44     ` kernel test robot
2026-03-22 23:31   ` kernel test robot
2026-03-22 23:31     ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=baa40d8c-cd0e-4661-b951-fe992c8e96bd@kernel.org \
    --to=bod@kernel.org \
    --cc=bryan.odonoghue@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kishon@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=neil.armstrong@linaro.org \
    --cc=robh@kernel.org \
    --cc=vkoul@kernel.org \
    --cc=vladimir.zapolskiy@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.