mode *adjusted_mode = &crtc_state->adjusted_mode;
> struct cdns_dsi_cfg *dsi_cfg = &dsi_state->dsi_cfg;
> + struct videomode vm;
>
> /* cdns-dsi requires negative syncs */
> adjusted_mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
> adjusted_mode->flags |= DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC;
>
> - return cdns_dsi_check_conf(dsi, adjusted_mode, dsi_cfg);
> + drm_display_mode_to_videomode(adjusted_mode, &vm);
> +
> + return cdns_dsi_check_conf(dsi, &vm, dsi_cfg);
> }
>
> static struct drm_bridge_state *
>
With the above taken care of,
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
Hi Tomi,
On 14/04/25 16:41, Tomi Valkeinen wrote:
> The driver currently expects the pixel clock and the HS clock to be
> compatible, but the DPHY PLL doesn't give very finely grained rates.
> This often leads to the situation where the pipeline just fails, as the
> resulting HS clock is just too
Hi Tomi,
On 14/04/25 16:41, Tomi Valkeinen wrote:
> The driver tries to calculate the value for REG_WAKEUP_TIME. However,
> the calculation itself is not correct, and to add on it, the resulting
> value is almost always larger than the field's size, so the actual
> result is more or less random.>
Tomi Valkeinen
> ---
> drivers/phy/cadence/cdns-dphy.c | 5 +
> 1 file changed, 5 insertions(+)
>
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
ic_check to set the sync flags to negative
> ones.
>
> Signed-off-by: Tomi Valkeinen
> ---
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 6 +-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
ulate it, let's move
> it there. Especially as the following patch will remove
> cdns_dsi_adjust_phy_config().
>
> Signed-off-by: Tomi Valkeinen
> ---
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 14 --
> 1 file changed, 8 insertions(+), 6 deletions(-)
rivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 7 +--
> 1 file changed, 1 insertion(+), 6 deletions(-)
>
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
Hi,
On 14/04/25 16:41, Tomi Valkeinen wrote:
> Remove extra line at the end of the file.
>
> Signed-off-by: Tomi Valkeinen
> ---
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 1 -
> 1 file changed, 1 deletion(-)
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
>
> Signed-off-by: Tomi Valkeinen
> ---
> drivers/gpu/drm/tidss/tidss_crtc.c | 2 +-
> drivers/gpu/drm/tidss/tidss_dispc.c | 16
> 2 files changed, 9 insertions(+), 9 deletions(-)
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
si_get_dphy_pll_cfg(dphy, cfg,
> - opts, &dsi_hfp_ext);
> + ret = cdns_get_dphy_pll_cfg(dphy, cfg, opts);
> if (ret)
> return ret;
>
>
Apart from the small comment above,
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
rtc_* mode values are not expected to be populated yet.
Fixes: a53d987756ea ("drm/bridge: cdns-dsi: Move DSI mode check to
_atomic_check()")
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --g
| 3 +++
> drivers/gpu/drm/tidss/tidss_drv.h | 2 ++
> drivers/gpu/drm/tidss/tidss_plane.h | 2 ++
> drivers/gpu/drm/tidss/tidss_scale_coefs.h | 2 ++
> 4 files changed, 9 insertions(+)
>
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
Hi Tomi,
On 08/04/25 12:39, Tomi Valkeinen wrote:
> Hi,
>
> On 08/04/2025 09:09, Tomi Valkeinen wrote:
>> Hi,
>>
>> On 07/04/2025 20:59, Aradhya Bhatia wrote:
>>> Hi Tomi,
>>>
>>> On 02/04/25 19:00, Tomi Valkeinen wrote:
>>>> The
Hi Tomi,
On 02/04/25 19:00, Tomi Valkeinen wrote:
> The docs say about mode_valid():
>
> "it is not allowed to look at anything else but the passed-in mode, and
> validate it against configuration-invariant hardware constraints"
>
> We're doing a lot more than just looking at the mode. The main
rivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 48
> --
> 1 file changed, 22 insertions(+), 26 deletions(-)
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
f-by: Tomi Valkeinen
> ---
> drivers/gpu/drm/tidss/tidss_crtc.c | 23 +++
> drivers/gpu/drm/tidss/tidss_dispc.c | 6 ++
> drivers/gpu/drm/tidss/tidss_dispc.h | 2 ++
> 3 files changed, 27 insertions(+), 4 deletions(-)
>
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
lkeinen
> ---
> drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 11 +++
> 1 file changed, 11 insertions(+)
>
Reviewed-by: Aradhya Bhatia
--
Regards
Aradhya
From: Aradhya Bhatia
The cdns-dsi controller requires that it be turned on completely before
the input DPI's source has begun streaming[0]. Not having that, allows
for a small window before cdns-dsi enable and after cdns-dsi disable
where the previous entity (in this case tidss's vid
crtc_disable
bridge[1]_post_disable
...
bridge[n]_post_disable
Signed-off-by: Aradhya Bhatia
---
include/drm/drm_bridge.h | 249 ---
1 file changed, 183 insertions(+), 66 deletions(-)
diff --git a/include/drm/drm_bridge.h b/include/drm
From: Aradhya Bhatia
The way any singular display pipeline, in need of a modeset, gets
enabled is as follows -
crtc enable
(all) bridge pre-enable
encoder enable
(all) bridge enable
- and the disable sequence is exactly the reverse of this.
The crtc operations
peline are pre_enabled. Fix that by
re-ordering the sequence of bridge pre_enable and bridge post_disable.
Acked-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Tested-by: Alexander Sverdlin
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drive
741957-1-aradhya.bha...@linux.dev/
v9:
https://lore.kernel.org/all/20250209121032.32655-1-aradhya.bha...@linux.dev/
v10:
https://lore.kernel.org/all/20250226155228.564289-1-aradhya.bha...@linux.dev/
v11:
https://lore.kernel.org/all/20250329113925.68204-1-aradhya.bha...@linux.dev/
---
Aradhya Bhatia (5):
: Aradhya Bhatia
---
drivers/gpu/drm/drm_atomic_helper.c | 91 -
1 file changed, 88 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c
b/drivers/gpu/drm/drm_atomic_helper.c
index d185486071c5..86824f769623 100644
--- a/drivers/gpu/drm
Hi Francesco,
On 28/03/25 18:14, Francesco Dolcini wrote:
> Hello Aradhya,
>
> On Wed, Feb 26, 2025 at 11:42:56PM +0530, Aradhya Bhatia wrote:
>> The AM62Px SoC has 2 OLDI TXes like AM62x SoC. However, the AM62Px SoC also
>> has
>> 2 separate DSSes. The 2 OLDI TXes ca
From: Aradhya Bhatia
Fix the OF node pointer passed to the of_drm_find_bridge() call to find
the next bridge in the display chain.
The code to find the next panel (and create its panel-bridge) works
fine, but to find the next (non-panel) bridge does not.
To find the next bridge in the pipeline
bridge driver will be introduced.
Mark the existing OLDI code separately by renaming all the current OLDI
identifiers with the 'AM65X_' prefix in tidss driver, to help
distinguish from the upcoming OLDI bridge driver.
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
---
drive
crtc_disable
bridge[1]_post_disable
...
bridge[n]_post_disable
Signed-off-by: Aradhya Bhatia
---
include/drm/drm_bridge.h | 216 +++
1 file changed, 150 insertions(+), 66 deletions(-)
diff --git a/include/drm/drm_bridge.h b/include/drm
From: Aradhya Bhatia
At present, the DSI mode configuration check happens during the
_atomic_enable() phase, which is not really the best place for this.
Moreover, if the mode is not valid, the driver gives a warning and
continues the hardware configuration.
Move the DSI mode configuration
From: Aradhya Bhatia
The way any singular display pipeline, in need of a modeset, gets
enabled is as follows -
crtc enable
(all) bridge pre-enable
encoder enable
(all) bridge enable
- and the disable sequence is exactly the reverse of this.
The crtc operations
From: Aradhya Bhatia
The AM62x and AM62Px SoCs feature 2 OLDI TXes each, which makes it
possible to connect them in dual-link or cloned single-link OLDI display
modes. The current OLDI support in tidss_dispc.c can only support for
a single OLDI TX, connected to a VP and doesn't really su
Hi Alexander,
On 26/03/25 00:27, Sverdlin, Alexander wrote:
> Hi Aradhya!
>
> On Thu, 2025-03-20 at 18:54 +0530, Aradhya Bhatia wrote:
>>> I've tried to test the patchset with necessary pre-requisites and DT
>>> additions
>>> with a single channel LVD
form
https://www.beagleboard.org/boards/beagleplay
[4]: GitHub Fork for OLDI tests
https://github.com/aradhya07/linux-ab/tree/next_oldi-v7_1-tests
[5]: ("ti,am65x-dss.yaml: oldi-txes: Missing additionalProperties/
unevaluatedProperties constraint")
https://lore.kernel.org/all/172107979988.1595945.966
From: Aradhya Bhatia
The OLDI transmitters (TXes) do not have registers of their own, and are
dependent on the source video-ports (VPs) from the DSS to provide
configuration data. This hardware doesn't directly sit on the internal
bus of the SoC, but does so via the DSS. Hence, the OLDI TXe
From: Aradhya Bhatia
Reduce tab size from 8 spaces to 4 spaces to make the bindings
consistent, and easy to expand.
Acked-by: Rob Herring (Arm)
Reviewed-by: Laurent Pinchart
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
.../bindings/display/ti
From: Aradhya Bhatia
Add a helper API that can be used by the DSI hosts to find the required
input bus format for the given output dsi pixel format.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya
From: Aradhya Bhatia
Add support for the input format negotiation hook, that uses the helper
drm_mipi_dsi_get_input_bus_fmt() for dsi hosts, to figure out the
required input format.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Signed-off-by: Aradhya
From: Aradhya Bhatia
Once the DSI Link and DSI Phy are initialized, the code needs to wait
for Clk and Data Lanes to be ready, before continuing configuration.
This is in accordance with the DSI Start-up procedure, found in the
Technical Reference Manual of Texas Instrument's J721E SoC[0]
From: Aradhya Bhatia
The driver code doesn't have a Phy de-initialization path as yet, and so
it does not clear the phy_initialized flag while suspending. This is a
problem because after resume the driver looks at this flag to determine
if a Phy re-initialization is required or not. It
peline are pre_enabled. Fix that by
re-ordering the sequence of bridge pre_enable and bridge post_disable.
Acked-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Tested-by: Alexander Sverdlin
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drive
: Aradhya Bhatia
---
drivers/gpu/drm/drm_atomic_helper.c | 91 -
1 file changed, 88 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c
b/drivers/gpu/drm/drm_atomic_helper.c
index d185486071c5..86824f769623 100644
--- a/drivers/gpu/drm
From: Aradhya Bhatia
The cdns-dsi controller requires that it be turned on completely before
the input DPI's source has begun streaming[0]. Not having that, allows
for a small window before cdns-dsi enable and after cdns-dsi disable
where the previous entity (in this case tidss's vid
From: Aradhya Bhatia
Instead of manually finding the next bridge/panel, and maintaining the
panel-bridge (in-case the next entity is a panel), switch to using the
automatically managing devm_drm_of_get_bridge() API.
Drop the drm_panel support completely from the driver while at it.
Reviewed-by
From: Aradhya Bhatia
Check for the return value of the phy_mipi_dphy_get_default_config()
call, and in case of an error, return back the same.
Fixes: fced5a364dee ("drm/bridge: cdns: Convert to phy framework")
Cc: sta...@vger.kernel.org
Reviewed-by: Tomi Valkeinen
Reviewed-by: Dmitry
t...@ti.com/
v4: https://lore.kernel.org/all/20240622110929.3115714-1-a-bhat...@ti.com/
v5:
https://lore.kernel.org/all/20241019195411.266860-1-aradhya.bha...@linux.dev/
v6:
https://lore.kernel.org/all/2025092738.308889-1-aradhya.bha...@linux.dev/
v7:
https://lore.kernel.org/all/20250114055626.188
From: Aradhya Bhatia
The crtc_* mode parameters do not get generated (duplicated in this
case) from the regular parameters before the mode validation phase
begins.
The rest of the code conditionally uses the crtc_* parameters only
during the bridge enable phase, but sticks to the regular
Hi Alexander,
Thank you for testing and reviewing the patches!
On 19/03/25 23:30, Sverdlin, Alexander wrote:
> Thank you for the patches, Aradhya!
>
> On Sun, 2024-11-24 at 20:06 +0530, Aradhya Bhatia wrote:
>> Regardless, I'd appreciate it if somebody can test it, and rep
Hi,
On 18/03/25 19:05, Sverdlin, Alexander wrote:
> Hi Aradhya!
>
> On Sun, 2024-11-24 at 20:06 +0530, Aradhya Bhatia wrote:
>> From: Aradhya Bhatia
>>
>> The AM62x and AM62Px SoCs feature 2 OLDI TXes each, which makes it
>> possible to connect them in dua
Hi,
All the patches within this series have been reviewed.
Are there any more concerns that should be taken care of?
On 26/02/25 21:22, Aradhya Bhatia wrote:
> Hello all,
>
> This series provides some crucial fixes and improvements for the Cadence's DSI
> TX (cdns-dsi)
From: Aradhya Bhatia
The OLDI transmitters (TXes) do not have registers of their own, and are
dependent on the source video-ports (VPs) from the DSS to provide
configuration data. This hardware doesn't directly sit on the internal
bus of the SoC, but does so via the DSS. Hence, the OLDI TXe
From: Aradhya Bhatia
The AM62x and AM62Px SoCs feature 2 OLDI TXes each, which makes it
possible to connect them in dual-link or cloned single-link OLDI display
modes. The current OLDI support in tidss_dispc.c can only support for
a single OLDI TX, connected to a VP and doesn't really su
bridge driver will be introduced.
Mark the existing OLDI code separately by renaming all the current OLDI
identifiers with the 'AM65X_' prefix in tidss driver, to help
distinguish from the upcoming OLDI bridge driver.
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm/tidss/tidss_dispc.c
From: Aradhya Bhatia
Reduce tab size from 8 spaces to 4 spaces to make the bindings
consistent, and easy to expand.
Acked-by: Rob Herring (Arm)
Reviewed-by: Laurent Pinchart
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
.../bindings/display/ti
/github.com/aradhya07/linux-ab/tree/next_oldi-v6_3-tests
[5]: ("ti,am65x-dss.yaml: oldi-txes: Missing additionalProperties/
unevaluatedProperties constraint")
https://lore.kernel.org/all/172107979988.1595945.9666141982402158422.r...@kernel.org/
[6]: Undo drop of OLDI clone mode suppo
From: Aradhya Bhatia
The cdns-dsi controller requires that it be turned on completely before
the input DPI's source has begun streaming[0]. Not having that, allows
for a small window before cdns-dsi enable and after cdns-dsi disable
where the previous entity (in this case tidss's vid
From: Aradhya Bhatia
At present, the DSI mode configuration check happens during the
_atomic_enable() phase, which is not really the best place for this.
Moreover, if the mode is not valid, the driver gives a warning and
continues the hardware configuration.
Move the DSI mode configuration
peline are pre_enabled. Fix that by
re-ordering the sequence of bridge pre_enable and bridge post_disable.
Acked-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm/drm_atomic_helper.c | 8 --
is meant to be an interim patch, to cleanly pave the way for
the sequence re-ordering patch, and maintain bisectability in the
process.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Jayesh Choudhary
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
---
Note on
From: Aradhya Bhatia
The way any singular display pipeline, in need of a modeset, gets
enabled is as follows -
crtc enable
(all) bridge pre-enable
encoder enable
(all) bridge enable
- and the disable sequence is exactly the reverse of this.
The crtc operations
From: Aradhya Bhatia
Change the existing (and deprecated) bridge hooks, to the bridge
atomic APIs.
Add drm helpers for duplicate_state, destroy_state, and bridge_reset
bridge hooks.
Further add support for the input format negotiation hook.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi
From: Aradhya Bhatia
Instead of manually finding the next bridge/panel, and maintaining the
panel-bridge (in-case the next entity is a panel), switch to using the
automatically managing devm_drm_of_get_bridge() API.
Drop the drm_panel support completely from the driver while at it.
Reviewed-by
From: Aradhya Bhatia
Once the DSI Link and DSI Phy are initialized, the code needs to wait
for Clk and Data Lanes to be ready, before continuing configuration.
This is in accordance with the DSI Start-up procedure, found in the
Technical Reference Manual of Texas Instrument's J721E SoC[0]
From: Aradhya Bhatia
The crtc_* mode parameters do not get generated (duplicated in this
case) from the regular parameters before the mode validation phase
begins.
The rest of the code conditionally uses the crtc_* parameters only
during the bridge enable phase, but sticks to the regular
From: Aradhya Bhatia
Add a helper API that can be used by the DSI hosts to find the required
input bus format for the given output dsi pixel format.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Tested-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya
From: Aradhya Bhatia
Check for the return value of the phy_mipi_dphy_get_default_config()
call, and in case of an error, return back the same.
Fixes: fced5a364dee ("drm/bridge: cdns: Convert to phy framework")
Cc: sta...@vger.kernel.org
Reviewed-by: Tomi Valkeinen
Reviewed-by: Dmitry
radhya.bha...@linux.dev/
v6:
https://lore.kernel.org/all/2025092738.308889-1-aradhya.bha...@linux.dev/
v7: https://lore.kernel.org/all/20250114055626.18816-1-aradhya.bha...@linux.dev/
v8:
https://lore.kernel.org/all/20250126191551.741957-1-aradhya.bha...@linux.dev/
v9: https://lore.kernel.org/
From: Aradhya Bhatia
The driver code doesn't have a Phy de-initialization path as yet, and so
it does not clear the phy_initialized flag while suspending. This is a
problem because after resume the driver looks at this flag to determine
if a Phy re-initialization is required or not. It
From: Aradhya Bhatia
Fix the OF node pointer passed to the of_drm_find_bridge() call to find
the next bridge in the display chain.
The code to find the next panel (and create its panel-bridge) works
fine, but to find the next (non-panel) bridge does not.
To find the next bridge in the pipeline
Hi Tomi,
On 13/02/25 18:50, Tomi Valkeinen wrote:
> Hi,
>
> On 13/02/2025 14:33, Aradhya Bhatia wrote:
>
>>>> + ti,companion-oldi:
>>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>>> + description:
>>>> + phandle to
Hi Tomi,
Thank you for reviewing the patches!
On 11/02/25 17:54, Tomi Valkeinen wrote:
> Hi,
>
> On 09/02/2025 18:09, Aradhya Bhatia wrote:
>> From: Aradhya Bhatia
>>
>> The OLDI transmitters (TXes) do not have registers of their own, and are
>> dependent on
https://www.beagleboard.org/boards/beagleplay
[4]: GitHub Fork for OLDI tests
https://github.com/aradhya07/linux-ab/tree/next_oldi_v5_5-tests
[5]: ("ti,am65x-dss.yaml: oldi-txes: Missing additionalProperties/
unevaluatedProperties constraint")
https://lore.kernel.org/all/172107979988.1595
From: Aradhya Bhatia
Reduce tab size from 8 spaces to 4 spaces to make the bindings
consistent, and easy to expand.
Acked-by: Rob Herring (Arm)
Reviewed-by: Laurent Pinchart
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
.../bindings/display/ti
From: Aradhya Bhatia
The OLDI transmitters (TXes) do not have registers of their own, and are
dependent on the source video-ports (VPs) from the DSS to provide
configuration data. This hardware doesn't directly sit on the internal
bus of the SoC, but does so via the DSS. Hence, the OLDI TXe
From: Aradhya Bhatia
The AM62x and AM62Px SoCs feature 2 OLDI TXes each, which makes it
possible to connect them in dual-link or cloned single-link OLDI display
modes. The current OLDI support in tidss_dispc.c can only support for
a single OLDI TX, connected to a VP and doesn't really su
Hi Jayesh,
Thank you for testing this out, and reporting the error I had
overlooked.
On 04/02/25 17:59, Jayesh Choudhary wrote:
> Hello Aradhya,
>
> On 27/01/25 00:45, Aradhya Bhatia wrote:
>> The encoder-bridge ops occur by looping over the new connector states of
>> the d
is meant to be an interim patch, to cleanly pave the way for
the sequence re-ordering patch, and maintain bisectability in the
process.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Jayesh Choudhary
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
---
Note on checkpatch warnings:
This
peline are pre_enabled. Fix that by
re-ordering the sequence of bridge pre_enable and bridge post_disable.
Acked-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm/drm_atomic_helper.c | 8
1 file changed, 4 insert
From: Aradhya Bhatia
The way any singular display pipeline, in need of a modeset, gets
enabled is as follows -
crtc enable
(all) bridge pre-enable
encoder enable
(all) bridge enable
- and the disable sequence is exactly the reverse of this.
The crtc operations
From: Aradhya Bhatia
The cdns-dsi controller requires that it be turned on completely before
the input DPI's source has begun streaming[0]. Not having that, allows
for a small window before cdns-dsi enable and after cdns-dsi disable
where the previous entity (in this case tidss's vid
From: Aradhya Bhatia
At present, the DSI mode configuration check happens during the
_atomic_enable() phase, which is not really the best place for this.
Moreover, if the mode is not valid, the driver gives a warning and
continues the hardware configuration.
Move the DSI mode configuration
From: Aradhya Bhatia
Change the existing (and deprecated) bridge hooks, to the bridge
atomic APIs.
Add drm helpers for duplicate_state, destroy_state, and bridge_reset
bridge hooks.
Further add support for the input format negotiation hook.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi
From: Aradhya Bhatia
Once the DSI Link and DSI Phy are initialized, the code needs to wait
for Clk and Data Lanes to be ready, before continuing configuration.
This is in accordance with the DSI Start-up procedure, found in the
Technical Reference Manual of Texas Instrument's J721E SoC[0]
From: Aradhya Bhatia
Add a helper API that can be used by the DSI hosts to find the required
input bus format for the given output dsi pixel format.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm
From: Aradhya Bhatia
Instead of manually finding the next bridge/panel, and maintaining the
panel-bridge (in-case the next entity is a panel), switch to using the
automatically managing devm_drm_of_get_bridge() API.
Drop the drm_panel support completely from the driver while at it.
Reviewed-by
From: Aradhya Bhatia
Check for the return value of the phy_mipi_dphy_get_default_config()
call, and in case of an error, return back the same.
Fixes: fced5a364dee ("drm/bridge: cdns: Convert to phy framework")
Cc: sta...@vger.kernel.org
Reviewed-by: Tomi Valkeinen
Reviewed-by: Dmitry
From: Aradhya Bhatia
The crtc_* mode parameters do not get generated (duplicated in this
case) from the regular parameters before the mode validation phase
begins.
The rest of the code conditionally uses the crtc_* parameters only
during the bridge enable phase, but sticks to the regular
0240617105311.1587489-1-a-bhat...@ti.com/
v4: https://lore.kernel.org/all/20240622110929.3115714-1-a-bhat...@ti.com/
v5:
https://lore.kernel.org/all/20241019195411.266860-1-aradhya.bha...@linux.dev/
v6:
https://lore.kernel.org/all/2025092738.308889-1-aradhya.bha...@linux.dev/
v7: https://lore.kernel.org/a
From: Aradhya Bhatia
The driver code doesn't have a Phy de-initialization path as yet, and so
it does not clear the phy_initialized flag while suspending. This is a
problem because after resume the driver looks at this flag to determine
if a Phy re-initialization is required or not. It
From: Aradhya Bhatia
Fix the OF node pointer passed to the of_drm_find_bridge() call to find
the next bridge in the display chain.
The code to find the next panel (and create its panel-bridge) works
fine, but to find the next (non-panel) bridge does not.
To find the next bridge in the pipeline
From: Aradhya Bhatia
Instead of manually finding the next bridge/panel, and maintaining the
panel-bridge (in-case the next entity is a panel), switch to using the
automatically managing devm_drm_of_get_bridge() API.
Drop the drm_panel support completely from the driver while at it.
Reviewed-by
From: Aradhya Bhatia
Fix the OF node pointer passed to the of_drm_find_bridge() call to find
the next bridge in the display chain.
The code to find the next panel (and create its panel-bridge) works
fine, but to find the next (non-panel) bridge does not.
To find the next bridge in the pipeline
From: Aradhya Bhatia
The cdns-dsi controller requires that it be turned on completely before
the input DPI's source has begun streaming[0]. Not having that, allows
for a small window before cdns-dsi enable and after cdns-dsi disable
where the previous entity (in this case tidss's vid
peline are pre_enabled. Fix that by
re-ordering the sequence of bridge pre_enable and bridge post_disable.
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm/drm_atomic_helper.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drive
is meant to be an interim patch, to cleanly pave the way for
the sequence re-ordering patch, and maintain bisectability in the
process.
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm/drm_atomic_helper.c | 92 +++--
1 file changed, 88 insertions(+), 4 deletions(-)
diff
From: Aradhya Bhatia
The way any singular display pipeline, in need of a modeset, gets
enabled is as follows -
crtc enable
(all) bridge pre-enable
encoder enable
(all) bridge enable
- and the disable sequence is exactly the reverse of this.
The crtc operations
From: Aradhya Bhatia
At present, the DSI mode configuration check happens during the
_atomic_enable() phase, which is not really the best place for this.
Moreover, if the mode is not valid, the driver gives a warning and
continues the hardware configuration.
Move the DSI mode configuration
From: Aradhya Bhatia
Change the existing (and deprecated) bridge hooks, to the bridge
atomic APIs.
Add drm helpers for duplicate_state, destroy_state, and bridge_reset
bridge hooks.
Further add support for the input format negotiation hook.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi
From: Aradhya Bhatia
Add a helper API that can be used by the DSI hosts to find the required
input bus format for the given output dsi pixel format.
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Tomi Valkeinen
Signed-off-by: Aradhya Bhatia
Signed-off-by: Aradhya Bhatia
---
drivers/gpu/drm
From: Aradhya Bhatia
Once the DSI Link and DSI Phy are initialized, the code needs to wait
for Clk and Data Lanes to be ready, before continuing configuration.
This is in accordance with the DSI Start-up procedure, found in the
Technical Reference Manual of Texas Instrument's J721E SoC[0]
From: Aradhya Bhatia
Check for the return value of the phy_mipi_dphy_get_default_config()
call, and incase of an error, return back the same.
Fixes: fced5a364dee ("drm/bridge: cdns: Convert to phy framework")
Cc: Stable List
Reviewed-by: Tomi Valkeinen
Reviewed-by: Dmitry Baryshk
From: Aradhya Bhatia
The crtc_* mode parameters do not get generated (duplicated in this
case) from the regular parameters before the mode validation phase
begins.
The rest of the code conditionally uses the crtc_* parameters only
during the bridge enable phase, but sticks to the regular
1 - 100 of 382 matches
Mail list logo