Re: [PATCH v13] drm/bridge: it6505: fix hibernate to resume no display issue

2024-05-22 Thread Robert Foss
On Wed, 22 May 2024 14:55:28 +0800, kuro wrote: > From: Kuro Chung > > When the system power resumes, the TTL input of IT6505 may experience > some noise before the video signal stabilizes, necessitating a video > reset. This patch is implemented to prevent a loop of video error > interrupts,

Re: [PATCH v12] drm/bridge: it6505: fix hibernate to resume no display issue

2024-05-21 Thread Robert Foss
Hey, Thanks for spinning another few revisions. On Tue, May 21, 2024 at 9:51 AM kuro wrote: > > From: Kuro Chung > > When the system power resumes, the TTL input of IT6505 may experience > some noise before the video signal stabilizes, necessitating a video > reset. This patch is implemented

Re: [PATCH] drm/bridge: tc358767: Enable FRMSYNC timing generator

2024-05-21 Thread Robert Foss
On Mon, 13 May 2024 04:16:04 +0200, Marek Vasut wrote: > TC9595 datasheet Video Path0 Control (VPCTRL0) Register bit FRMSYNC > description > says "This bit should be disabled only in video mode transmission where Host > transmits video timing together with video data and where pixel clock source

Re: [PATCH v7 1/1] drm/bridge: it6505: fix hibernate to resume no display issue

2024-05-13 Thread Robert Foss
On Mon, May 13, 2024 at 7:42 PM Robert Foss wrote: > > On Mon, May 6, 2024 at 11:36 AM kuro wrote: > > > > From: Kuro > > > > ITE added a FIFO reset bit for input video. When system power resume, > > the TTL input of it6505 may get some noise before vide

Re: [PATCH v7 1/1] drm/bridge: it6505: fix hibernate to resume no display issue

2024-05-13 Thread Robert Foss
> { BIT_INT_AUDIO_FIFO_ERROR, it6505_irq_audio_fifo_error }, > { BIT_INT_LINK_TRAIN_FAIL, it6505_irq_link_train_fail }, > - { BIT_INT_VID_FIFO_ERROR, it6505_irq_video_fifo_error }, > - { BIT_INT_IO_FIFO_OVERFLOW, it6505_irq_io_latch_fifo_overflow > }, > }; > int int_status[3], i; > > @@ -2550,6 +2574,7 @@ static irqreturn_t it6505_int_threaded_handler(int > unused, void *data) > if (it6505_test_bit(irq_vec[i].bit, (unsigned int > *)int_status)) > irq_vec[i].handler(it6505); > } > + it6505_irq_video_handler(it6505, (unsigned int *) int_status); > } > > pm_runtime_put_sync(dev); > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [RESEND 0/6] drm: struct drm_edid conversions

2024-05-13 Thread Robert Foss
On Fri, 10 May 2024 16:26:03 +0300, Jani Nikula wrote: > Resend of the remaining patches from [1]. > > BR, > Jani. > > [1] https://lore.kernel.org/r/cover.1713273659.git.jani.nik...@intel.com > > [...] Fixed checkpatch issue in "drm/bochs: switch to struct drm_edid" Applied, thanks! [1/6]

Re: [RESEND 3/6] drm/bridge: anx7625: use struct drm_edid more

2024-05-13 Thread Robert Foss
On Fri, May 10, 2024 at 3:26 PM Jani Nikula wrote: > > Prefer struct drm_edid based functions over struct edid. > > Signed-off-by: Jani Nikula > > --- > > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc:

Re: [RESEND 2/6] drm/bridge/analogix/anx78xx: switch to struct drm_edid

2024-05-13 Thread Robert Foss
On Fri, May 10, 2024 at 3:26 PM Jani Nikula wrote: > > Prefer struct drm_edid based functions over struct edid. > > Signed-off-by: Jani Nikula > > --- > > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc:

Re: [RESEND 1/6] drm/bridge/analogix/anx6345: switch to struct drm_edid

2024-05-13 Thread Robert Foss
On Fri, May 10, 2024 at 3:26 PM Jani Nikula wrote: > > Prefer struct drm_edid based functions over struct edid. > > Signed-off-by: Jani Nikula > > --- > > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc:

Re: [RESEND 4/6] drm/i2c: tda998x: switch to struct drm_edid

2024-05-13 Thread Robert Foss
r, edid); > - priv->sink_has_audio = drm_detect_monitor_audio(edid); > + n = drm_edid_connector_add_modes(connector); > + priv->sink_has_audio = connector->display_info.has_audio; > mutex_unlock(>audio_mutex); > > - kfree(edid); > + drm_edid_free(drm_edid); > > return n; > } > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [RESEND 5/6] drm/bochs: switch to struct drm_edid

2024-05-13 Thread Robert Foss
evice *dev) > drm_connector_helper_add(connector, > _connector_connector_helper_funcs); > > bochs_hw_load_edid(bochs); > - if (bochs->edid) { > + if (bochs->drm_edid) { > DRM_INFO("Found EDID data blob.\n"); > drm_connector_attach_edid_property(connector); > - drm_connector_update_edid_property(connector, bochs->edid); > + drm_edid_connector_update(>connector, bochs->drm_edid); > } > } > > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [RESEND 6/6] drm/virtio: switch to struct drm_edid

2024-05-13 Thread Robert Foss
new_edid); > + new_edid = drm_edid_read_custom(>conn, virtio_get_edid_block, > resp); > + drm_edid_connector_update(>conn, new_edid); > > spin_lock(>display_info_lock); > - old_edid = output->edid; > - output->edid = new_edid; > + old_edid = output->drm_edid; > + output->drm_edid = new_edid; > spin_unlock(>display_info_lock); > > - kfree(old_edid); > + drm_edid_free(old_edid); > wake_up(>resp_wq); > } > > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [RESEND 4/6] drm/amdgpu: remove amdgpu_connector_edid() and stop using edid_blob_ptr

2024-05-13 Thread Robert Foss
aker_allocation(amdgpu_connector->edid, > ); > if (sad_count < 0) { > DRM_ERROR("Couldn't read Speaker Allocation Data Block: > %d\n", sad_count); > sad_count = 0; > @@ -1340,7 +1340,7 @@ static void dce_v8_0_audio_write_sad_regs(struct > drm_encoder *encoder) > return; > } > > - sad_count = drm_edid_to_sad(amdgpu_connector_edid(connector), ); > + sad_count = drm_edid_to_sad(amdgpu_connector->edid, ); > if (sad_count < 0) > DRM_ERROR("Couldn't read SADs: %d\n", sad_count); > if (sad_count <= 0) > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [RESEND 3/6] drm/radeon: remove radeon_connector_edid() and stop using edid_blob_ptr

2024-05-13 Thread Robert Foss
t; extern bool radeon_connector_is_dp12_capable(struct drm_connector > *connector); > extern int radeon_get_monitor_bpc(struct drm_connector *connector); > > -extern struct edid *radeon_connector_edid(struct drm_connector *connector); > - > extern void radeon_connector_hotplug(struct drm_connector *connector); > extern int radeon_dp_mode_valid_helper(struct drm_connector *connector, >struct drm_display_mode *mode); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [RESEND 2/6] drm/radeon: convert to using is_hdmi and has_audio from display info

2024-05-13 Thread Robert Foss
89d..0f723292409e 100644 > --- a/drivers/gpu/drm/radeon/radeon_encoders.c > +++ b/drivers/gpu/drm/radeon/radeon_encoders.c > @@ -386,7 +386,7 @@ bool radeon_dig_monitor_is_duallink(struct drm_encoder > *encoder, > case DRM_MODE_CONNECTOR_HDMIB: > if (radeon_connector->use_digital) { > /* HDMI 1.3 supports up to 340 Mhz over single link */ > - if (ASIC_IS_DCE6(rdev) && > drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { > + if (ASIC_IS_DCE6(rdev) && > connector->display_info.is_hdmi) { > if (pixel_clock > 34) > return true; > else > @@ -408,7 +408,7 @@ bool radeon_dig_monitor_is_duallink(struct drm_encoder > *encoder, > return false; > else { > /* HDMI 1.3 supports up to 340 Mhz over single link */ > - if (ASIC_IS_DCE6(rdev) && > drm_detect_hdmi_monitor(radeon_connector_edid(connector))) { > + if (ASIC_IS_DCE6(rdev) && > connector->display_info.is_hdmi) { > if (pixel_clock > 34) > return true; > else > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: drm/bridge: adv7511: Attach next bridge without creating connector

2024-05-13 Thread Robert Foss
I connector > already created for us, we should pass DRM_BRIDGE_ATTACH_NO_CONNECTOR > from the root KMS driver side. Which is to forbidden all potential > drm bridge drivers to create a connector in the middle. > > The KMS display driver side could parse the DT to know if there is > a hdmi connector, or merely just hdmi connector device node, or > something else. > > However, other maintainer and/or reviewer's opinion are of cause > more valuable. I send a A-b because I thought the bug is urgency > and it's probably more important to solve this bug first. And > maybe you can Cc: if you like. > Reviewed-by: Robert Foss

Re: [PATCH] drm/bridge: tc358767: Enable FRMSYNC timing generator

2024-05-13 Thread Robert Foss
drzej Hajda > Cc: Daniel Vetter > Cc: David Airlie > Cc: Frieder Schrempf > Cc: Jernej Skrabec > Cc: Jonas Karlman > Cc: Laurent Pinchart > Cc: Lucas Stach > Cc: Maarten Lankhorst > Cc: Maxime Ripard > Cc: Michael Walle > Cc: Neil Armstrong > Cc: Robert

Re: [PATCH v2 00/12] Remove redundant checks on existence of 'bridge->encoder'

2024-05-13 Thread Robert Foss
On Mon, 13 May 2024 23:30:57 +0800, Sui Jingfeng wrote: > The checks on the existence of bridge->encoder in the implementation of > drm_bridge_funcs::attach() is not necessary, as it has already been checked > in the drm_bridge_attach() function call by previous bridge or KMS driver. > The

Re: [PATCH] drm/drm-bridge.c: Drop conditionals around of_node pointers

2024-05-10 Thread Robert Foss
On Wed, 8 May 2024 02:00:00 +0800, Sui Jingfeng wrote: > Having conditional around the of_node pointer of the drm_bridge structure > is not necessary, since drm_bridge structure always has the of_node as its > member. > > Let's drop the conditional to get a better looks, please also note that >

Re: [PATCH 00/14] improve Analogix DP AUX channel handling

2024-05-07 Thread Robert Foss
On Fri, May 3, 2024 at 5:12 PM Lucas Stach wrote: > > Currently the AUX channel support in the Analogix DP driver is severely > limited as the AUX block of the bridge is only initialized when the video > link is to be enabled. This is okay for the purposes of link training, > but does not allow

Re: [PATCH 10/14] drm/bridge: analogix_dp: move macro reset after link bandwidth setting

2024-05-07 Thread Robert Foss
On Fri, May 3, 2024 at 5:13 PM Lucas Stach wrote: > > Setting the link bandwidth may change the PLL parameters, which will cause > the PLL to go out of lock, so make sure to apply the MACRO_RST, which > according to the comment is required to be pulsed after the PLL is locked. > > Signed-off-by:

Re: [PATCH 09/14] drm/bridge: analogix_dp: remove PLL lock check from analogix_dp_config_video

2024-05-07 Thread Robert Foss
On Fri, May 3, 2024 at 5:13 PM Lucas Stach wrote: > > This check is way too late in the DP enable flow. The PLL must be locked > much earlier, before any link training can happen. If the PLL is unlocked > at that point in time there is something seriously wrong in the enable flow. > >

Re: [PATCH 08/14] drm/bridge: analogix_dp: move basic controller init into runtime PM

2024-05-07 Thread Robert Foss
gt; @@ -1726,6 +1720,8 @@ int analogix_dp_resume(struct analogix_dp_device *dp) > > phy_power_on(dp->phy); > > + analogix_dp_init_dp(dp); > + > return 0; > } > EXPORT_SYMBOL_GPL(analogix_dp_resume); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 07/14] drm/bridge: analogix_dp: move platform and PHY power handling into runtime PM

2024-05-07 Thread Robert Foss
p->plat_data); > + > clk_disable_unprepare(dp->clock); > > return 0; > @@ -1729,6 +1721,11 @@ int analogix_dp_resume(struct analogix_dp_device *dp) > return ret; > } > > + if (dp->plat_data->power_on) > + dp->plat_data->power_on(dp->plat_data); > + > + phy_power_on(dp->phy); > + > return 0; > } > EXPORT_SYMBOL_GPL(analogix_dp_resume); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 06/14] drm/bridge: analogix_dp: remove clk handling from analogix_dp_set_bridge

2024-05-07 Thread Robert Foss
(dp, POWER_ALL, 1); > phy_power_off(dp->phy); > > - clk_disable_unprepare(dp->clock); > - > pm_runtime_put_sync(dp->dev); > > ret = analogix_dp_prepare_panel(dp, false, true); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 05/14] drm/bridge: analogix_dp: remove unused analogix_dp_remove

2024-05-07 Thread Robert Foss
v, struct analogix_dp_plat_data > *plat_data); > int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device > *drm_dev); > void analogix_dp_unbind(struct analogix_dp_device *dp); > -void analogix_dp_remove(struct analogix_dp_device *dp); > > int analogix_dp_start_crc(struct drm_connector *connector); > int analogix_dp_stop_crc(struct drm_connector *connector); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 04/14] drm/bridge: analogix_dp: handle clock via runtime PM

2024-05-07 Thread Robert Foss
sable_unprepare(dp->clock); > - return 0; > -} > -EXPORT_SYMBOL_GPL(analogix_dp_suspend); > - > -int analogix_dp_resume(struct analogix_dp_device *dp) > -{ > - int ret; > - > - ret = clk_prepare_enable(dp->clock); > - if (ret < 0) { > - DRM_ERROR("Failed to prepare_enable the clock clk [%d]\n", > ret); > - return ret; > - } > - > - return 0; > -} > -EXPORT_SYMBOL_GPL(analogix_dp_resume); > -#endif > - > int analogix_dp_start_crc(struct drm_connector *connector) > { > struct analogix_dp_device *dp = to_dp(connector); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 03/14] drm/bridge: analogix_dp: register AUX bus after enabling runtime PM

2024-05-07 Thread Robert Foss
_aux; > } > > return 0; > > +err_unregister_aux: > + drm_dp_aux_unregister(>aux); > err_disable_pm_runtime: > pm_runtime_dont_use_autosuspend(dp->dev); > pm_runtime_disable(dp->dev); > - drm_dp_aux_unregister(>aux); > > return ret; > } > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 02/14] drm/rockchip: analogix_dp: add runtime PM handling

2024-05-07 Thread Robert Foss
eg = RK3399_GRF_SOC_CON20, > @@ -485,7 +480,7 @@ struct platform_driver rockchip_dp_driver = { > .remove_new = rockchip_dp_remove, > .driver = { >.name = "rockchip-dp", > - .pm = _dp_pm_ops, > + .pm = pm_ptr(_dp_pm_ops), >.of_match_table = rockchip_dp_dt_ids, > }, > }; > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 01/14] drm/bridge: analogix_dp: remove unused platform power_on_end callback

2024-05-07 Thread Robert Foss
de/drm/bridge/analogix_dp.h > +++ b/include/drm/bridge/analogix_dp.h > @@ -29,8 +29,7 @@ struct analogix_dp_plat_data { > struct drm_connector *connector; > bool skip_connector; > > - int (*power_on_start)(struct analogix_dp_plat_data *); > - int (*power_on_end)(struct analogix_dp_plat_data *); > + int (*power_on)(struct analogix_dp_plat_data *); > int (*power_off)(struct analogix_dp_plat_data *); > int (*attach)(struct analogix_dp_plat_data *, struct drm_bridge *, > struct drm_connector *); > -- > 2.39.2 > Reviewed-by: Robert Foss

Re: [PATCH 2/2] drm/bridge: anx7625: Change TDM setting accroding to dt property

2024-05-06 Thread Robert Foss
On Thu, May 2, 2024 at 11:03 AM Hsin-Te Yuan wrote: > > For some SoCs, the TDM setting is not to shift the first audio data bit, > which is not the default setting of anx7625. In such cases, the TDM > setting should be changed according to the device tree property. > > Signed-off-by: Hsin-Te Yuan

Re: [PATCH RESEND] Revert "drm/bridge: ti-sn65dsi83: Fix enable error path"

2024-04-29 Thread Robert Foss
On Fri, 26 Apr 2024 14:22:59 +0200, Luca Ceresoli wrote: > This reverts commit 8a91b29f1f50ce7742cdbe5cf11d17f128511f3f. > > The regulator_disable() added by the original commit solves one kind of > regulator imbalance but adds another one as it allows the regulator to be > disabled one more time

Re: [PATCH V2] drm/bridge: imx: Fix unmet depenency for PHY_FSL_SAMSUNG_HDMI_PHY

2024-04-25 Thread Robert Foss
On Mon, 22 Apr 2024 05:33:52 -0500, Adam Ford wrote: > When enabling i.MX8MP DWC HDMI driver, it automatically selects > PHY_FSL_SAMSUNG_HDMI_PHY, since it wont' work without the phy. > This may cause some Kconfig warnings during various build tests. > Fix this by implying the phy instead of

Re: [PATCH 1/2] drm/print: drop include debugfs.h and include where needed

2024-04-25 Thread Robert Foss
King > Cc: David Airlie > Cc: Daniel Vetter > Cc: Andrzej Hajda > Cc: Neil Armstrong > Cc: Robert Foss > Cc: Laurent Pinchart > Cc: Jonas Karlman > Cc: Jernej Skrabec > Cc: Maarten Lankhorst > Cc: Maxime Ripard > Cc: Thomas Zimmermann > Cc: Jani Nikula

Re: [PATCH v5 00/10] Improvments for tc358775 with support for tc358765

2024-04-23 Thread Robert Foss
On Sun, 25 Feb 2024 08:19:29 +0200, Tony Lindgren wrote: > Here are v5 patches to improve tc358775 driver and add support for > tc358765. > > Regards, > > Tony > > [...] Thanks for the really nice series, sorry about the delay in applying it. Applied, thanks! [01/10] dt-bindings: display:

Re: [PATCH v6 1/1] drm/bridge: it6505: fix hibernate to resume no display issue

2024-04-23 Thread Robert Foss
On Tue, Apr 23, 2024 at 10:16 AM kuro wrote: > > From: Kuro > > ITE added a FIFO reset bit for input video. When system power resume, > the TTL input of it6505 may get some noise before video signal stable > and the hardware function reset is required. > But the input FIFO reset will also

Re: [PATCH] drm/stm: dsi: relax mode_valid clock tolerance

2024-04-23 Thread Robert Foss
*/ > > - if (px_clock_hz < target_px_clock_hz - CLK_TOLERANCE_HZ || > > - px_clock_hz > target_px_clock_hz + CLK_TOLERANCE_HZ) > > + if (px_clock_hz < mult_frac(target_px_clock_hz, 995, 1000) || > > + px_clock_hz > mult_frac(target_px_clock_hz, 1005, 1000)) > > return MODE_CLOCK_RANGE; > > > > /* sync packets are codes as DSI short packets (4 bytes) */ > > -- > > 2.44.0 > > > Reviewed-by: Robert Foss

Re: [PATCH v2 1/2] drm/print: drop include debugfs.h and include where needed

2024-04-18 Thread Robert Foss
Ripard > Link: > https://patchwork.freedesktop.org/patch/msgid/20240410141434.157908-1-jani.nik...@intel.com > Signed-off-by: Jani Nikula > > --- > > Cc: Jacek Lawrynowicz > Cc: Stanislaw Gruszka > Cc: Oded Gabbay > Cc: Andrzej Hajda > Cc: Neil Armstrong >

Re: [PATCH RESEND v3] drm/bridge: anx7625: Update audio status while detecting

2024-04-16 Thread Robert Foss
On Tue, 16 Apr 2024 07:21:35 +, Hsin-Te Yuan wrote: > Previously, the audio status was not updated during detection, leading > to a persistent audio despite hot plugging events. To resolve this > issue, update the audio status during detection. > > Applied, thanks! [1/1] drm/bridge:

Re: [PATCH v2] drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference

2024-04-16 Thread Robert Foss
Hey Aleksandr, On Fri, Apr 12, 2024 at 10:40 AM Aleksandr Mishin wrote: > > In cdns_mhdp_atomic_enable(), the return value of drm_mode_duplicate() is > assigned to mhdp_state->current_mode, and there is a dereference of it in > drm_mode_set_name(), which will lead to a NULL pointer dereference

Re: [PATCH v3 0/9] drm: Switch from dev_err to dev_err_probe for missing DSI host error path

2024-04-16 Thread Robert Foss
On Mon, 15 Apr 2024 17:49:28 -0400, Nícolas F. R. A. Prado wrote: > This series changes every occurrence of the following pattern: > > dsi_host = of_find_mipi_dsi_host_by_node(dsi); > if (!dsi_host) { > dev_err(dev, "failed to find dsi host\n"); > return

Re: [PATCH] drm/bridge: imx8mp-hdmi-tx: Convert to platform remove callback returning void

2024-04-10 Thread Robert Foss
On Mon, 4 Mar 2024 10:10:06 +0100, Uwe Kleine-König wrote: > The .remove() callback for a platform driver returns an int which makes > many driver authors wrongly assume it's possible to do error handling by > returning an error code. However the value returned is ignored (apart > from emitting a

Re: [PATCH] drm/bridge: imx8mp-hdmi-pvi: Convert to platform remove callback returning void

2024-04-10 Thread Robert Foss
On Mon, 4 Mar 2024 10:05:56 +0100, Uwe Kleine-König wrote: > The .remove() callback for a platform driver returns an int which makes > many driver authors wrongly assume it's possible to do error handling by > returning an error code. However the value returned is ignored (apart > from emitting a

Re: [PATCH] drm: bridge: cdns-mhdp8546: Fix possible null pointer dereference

2024-04-08 Thread Robert Foss
On Mon, 8 Apr 2024 15:58:10 +0300, Aleksandr Mishin wrote: > In cdns_mhdp_atomic_enable(), the return value of drm_mode_duplicate() is > assigned to mhdp_state->current_mode, and there is a dereference of it in > drm_mode_set_name(), which will lead to a NULL pointer dereference on > failure of

Re: [PATCH v3 2/2] drm/bridge: adv7511: get edid in hpd_work to update CEC phys address

2024-03-05 Thread Robert Foss
Sorry to ask for this again, but this series has non-trivial merge conflicts with upstream again. Could you rebase it and send out an updated version?

Re: [PATCH v2 1/2] drm/bridge: Fix improper bridge init order with pre_enable_prev_first

2024-03-05 Thread Robert Foss
On Tue, 28 Mar 2023 22:37:51 +0530, Jagan Teki wrote: > For a given bridge pipeline if any bridge sets pre_enable_prev_first > flag then the pre_enable for the previous bridge will be called before > pre_enable of this bridge and opposite is done for post_disable. > > These are the potential

Re: [PATCH v2 1/2] drm/bridge: Fix improper bridge init order with pre_enable_prev_first

2024-03-05 Thread Robert Foss
On Thu, Feb 29, 2024 at 12:39 PM Frieder Schrempf wrote: > > Hi, > > On 28.03.23 19:07, Jagan Teki wrote: > > For a given bridge pipeline if any bridge sets pre_enable_prev_first > > flag then the pre_enable for the previous bridge will be called before > > pre_enable of this bridge and opposite

Re: [PATCH v2] drm/tegra: Remove existing framebuffer only if we support display

2024-02-26 Thread Robert Foss
On Fri, 23 Feb 2024 16:03:33 +0100, Thierry Reding wrote: > From: Thierry Reding > > Tegra DRM doesn't support display on Tegra234 and later, so make sure > not to remove any existing framebuffers in that case. > > v2: - add comments explaining how this situation can come about > - clear

Re: [PATCH v2] drm/tegra: Remove existing framebuffer only if we support display

2024-02-26 Thread Robert Foss
On Mon, Feb 26, 2024 at 12:36 PM Javier Martinez Canillas wrote: > > Thomas Zimmermann writes: > > > Hi > > > > Am 23.02.24 um 16:03 schrieb Thierry Reding: > >> From: Thierry Reding > >> > >> Tegra DRM doesn't support display on Tegra234 and later, so make sure > >> not to remove any existing

Re: [PATCH v2] drm/bridge: adv7511: fix crash on irq during probe

2024-02-21 Thread Robert Foss
On Mon, 19 Feb 2024 21:21:47 +0100, Alvin Šipraga wrote: > From: Mads Bligaard Nielsen > > Moved IRQ registration down to end of adv7511_probe(). > > If an IRQ already is pending during adv7511_probe > (before adv7511_cec_init) then cec_received_msg_ts > could crash using uninitialized data: >

Re: [PATCH v2 1/1] drm/bridge: Silence error messages upon probe deferral

2024-02-21 Thread Robert Foss
On Tue, Feb 20, 2024 at 3:43 PM Alexander Stein wrote: > > Hi everyone, > > Am Dienstag, 22. August 2023, 13:52:00 CET schrieb Alexander Stein: > > When -EPROBE_DEFER is returned do not raise an error, but silently return > > this error instead. Fixes error like this: > > [drm:drm_bridge_attach]

Re: [PATCH 0/2] drm/bridge: sii902x: Crash fixes

2024-01-23 Thread Robert Foss
On Wed, 03 Jan 2024 15:31:06 +0200, Tomi Valkeinen wrote: > Two small fixes to sii902x for crashes. > > Applied, thanks! [1/2] drm/bridge: sii902x: Fix probing race issue https://cgit.freedesktop.org/drm/drm-misc/commit/?id=dffdfb8f5de1 [2/2] drm/bridge: sii902x: Fix audio codec

Re: [PATCH] drm/bridge: tc358767: Limit the Pixel PLL input range

2024-01-23 Thread Robert Foss
On Thu, 18 Jan 2024 23:02:31 +0100, Marek Vasut wrote: > According to new configuration spreadsheet from Toshiba for TC9595, > the Pixel PLL input clock have to be in range 6..40 MHz. The sheet > calculates those PLL input clock as reference clock divided by both > pre-dividers. Add the extra

Re: [PATCH v3 11/20] drivers/gpu/drm/bridge/synopsys/dw-hdmi.c: remove I2C_CLASS_DDC support

2024-01-22 Thread Robert Foss
c_adapter(struct > dw_hdmi *hdmi) > init_completion(>cmp); > > adap = >adap; > - adap->class = I2C_CLASS_DDC; > adap->owner = THIS_MODULE; > adap->dev.parent = hdmi->dev; > adap->algo = _hdmi_algorithm; > Acked-by: Robert Foss

Re: [PATCH v2 2/2] drm/bridge: adv7511: get edid in hpd_work to update CEC phys address

2024-01-22 Thread Robert Foss
*/ > + edid = __adv7511_get_edid(adv7511, > + > >connector); > + if (edid) > + kfree(edid); kfree(NULL) is safe, so the if statement can be removed. With this fixed, feel free to add my r-b to this full series. Reviewed-by: Robert Foss

Re: [PATCH v4 107/115] drm/bridge: ti-sn65dsi86: Make use of devm_pwmchip_alloc() function

2024-01-22 Thread Robert Foss
e; > + chip->of_pwm_n_cells = 1; > + > + return pwmchip_add(chip); > } > > static void ti_sn_pwm_remove(struct auxiliary_device *adev) > { > struct ti_sn65dsi86 *pdata = dev_get_drvdata(adev->dev.parent); > > - pwmchip_remove(>pchip); > + pwmchip_remove(pdata->pchip); > > if (pdata->pwm_enabled) > pm_runtime_put_sync(pdata->dev); > -- > 2.42.0 > Acked-by: Robert Foss

Re: [PATCH v2 2/2] drm/bridge: ti-sn65dsi86: Never store more than msg->size bytes in AUX xfer

2024-01-22 Thread Robert Foss
gt; + ret = regmap_read(pdata->regmap, SN_AUX_LENGTH_REG, > _len); > + len = min(len, short_len); > if (ret) > goto exit; > } else if (val & AUX_IRQ_STATUS_NAT_I2C_FAIL) { > -- > 2.43.0.472.g3155946c3a-goog > > Reviewed-by: Robert Foss

Re: [PATCH v9 0/2] Add displays support for bsh-smm-s2/pro boards

2024-01-22 Thread Robert Foss
On Mon, 18 Dec 2023 09:43:36 +0100, Dario Binacchi wrote: > The series adds drivers for the displays used by bsh-smm-s2/pro boards. > This required applying some patches to the samsung-dsim driver and the > drm_bridge.c module. > > Changes in v9: > - Updated commit message > - Drop [3/3] arm64:

Re: [PATCH RESEND] drm/bridge: Fixed a DP link training bug

2024-01-09 Thread Robert Foss
On Thu, 21 Dec 2023 17:30:57 +0800, xiazhengqiao wrote: > To have better compatibility for DP sink, there is a retry mechanism > for the link training process to switch between different training process. > The original driver code doesn't reset the retry counter when training > state is pass. If

Re: [PATCH] drm/bridge: samsung-dsim: check the return value only if necessary

2023-12-15 Thread Robert Foss
On Thu, 7 Dec 2023 17:10:43 +0100, Dario Binacchi wrote: > It was useless to check again the "ret" variable if the function > register_host() was not called. > > Applied, thanks! [1/1] drm/bridge: samsung-dsim: check the return value only if necessary

Re: [PATCH v3 0/7] Improve tc358767 regmap usage

2023-12-15 Thread Robert Foss
On Tue, Dec 12, 2023 at 8:53 AM Alexander Stein wrote: > > Hi, > > this series improves the regmap usage by cleaning up current usage as well as > adding more registers to the list of volatile registers. SYSSTAT is added > to the list of precious registers as it is cleared upon read. > This

Re: [PATCH v3 7/7] drm/bridge: tc358767: Add descriptions to register definitions

2023-12-15 Thread Robert Foss
*/ > #define DP0_AUDMNGEN1 0x062c /* DP0 Audio Force N Value Register */ > #define DP0_AMNGENSTATUS 0x0630 /* DP0 Audio Current M Value Register > */ > @@ -277,7 +277,7 @@ > #define AUDIFDATA5 0x071c /* DP0 Audio Info Frame Bytes 23 to > 20 */ >

Re: [PATCH v3 6/7] drm/bridge: tc358767: Add precious register SYSSTAT

2023-12-15 Thread Robert Foss
table, > .reg_format_endian = REGMAP_ENDIAN_BIG, > .val_format_endian = REGMAP_ENDIAN_LITTLE, > -- > 2.34.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 5/7] drm/bridge: tc358767: Add more volatile registers

2023-12-15 Thread Robert Foss
regmap_reg_range(DP0_AMNGENSTATUS, DP0_AMNGENSTATUS), > regmap_reg_range(DP0_AUXWDATA(0), DP0_AUXSTATUS), > regmap_reg_range(DP0_LTSTAT, DP0_SNKLTCHGREQ), > regmap_reg_range(DP_PHY_CTRL, DP_PHY_CTRL), > -- > 2.34.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 4/7] drm/bridge: tc358767: Sort volatile registers according to address

2023-12-15 Thread Robert Foss
TSTS_G, INTSTS_G), > - regmap_reg_range(GPIOI, GPIOI), > }; > > static const struct regmap_access_table tc_volatile_table = { > -- > 2.34.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 3/7] drm/bridge: tc358767: Add more registers to non-writeable range

2023-12-15 Thread Robert Foss
NT: > /* DSI Application Layer */ > case 0x400: > case 0x404: > @@ -1993,7 +2064,11 @@ static const struct regmap_access_table > tc_volatile_table = { > }; > > static const struct regmap_range tc_non_writeable_ranges[] = { > - regmap_reg_range(TC_IDREG, TC_IDREG), > + regmap_reg_range(PPI_BUSYPPI, PPI_BUSYPPI), > + regmap_reg_range(DSI_BUSYDSI, DSI_BUSYDSI), > + regmap_reg_range(DSI_LANESTATUS0, DSI_INTSTATUS), > + regmap_reg_range(TC_IDREG, SYSSTAT), > + regmap_reg_range(GPIOI, GPIOI), > regmap_reg_range(DP0_LTSTAT, DP0_SNKLTCHGREQ), > }; > > -- > 2.34.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 2/7] drm/bridge: tc358767: Fix order of register defines

2023-12-15 Thread Robert Foss
VIDSRC_DSI_RX (1 << 0) > +#define DP0_VIDSRC_DPI_RX (2 << 0) > +#define DP0_VIDSRC_COLOR_BAR (3 << 0) > #define GPIOM 0x0540 > #define GPIOC 0x0544 > #define GPIOO 0x0548 > -- > 2.34.1 > Reviewed-by: Robert Foss

Re: [PATCH] drm/bridge: nxp-ptn3460: simplify some error checking

2023-12-06 Thread Robert Foss
On Wed, 6 Dec 2023 18:05:15 +0300, Dan Carpenter wrote: > The i2c_master_send/recv() functions return negative error codes or > they return "len" on success. So the error handling here can be written > as just normal checks for "if (ret < 0) return ret;". No need to > complicate things. > >

Re: [PATCH] drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking

2023-12-05 Thread Robert Foss
On Tue, Dec 5, 2023, 15:01 Dan Carpenter wrote: > On Tue, Dec 05, 2023 at 02:48:26PM +0100, Robert Foss wrote: > > On Mon, 4 Dec 2023 15:29:00 +0300, Dan Carpenter wrote: > > > The i2c_master_send/recv() functions return negative error codes or the > > > number of byte

Re: [PATCH] drm/bridge: nxp-ptn3460: fix i2c_master_send() error checking

2023-12-05 Thread Robert Foss
On Mon, 4 Dec 2023 15:29:00 +0300, Dan Carpenter wrote: > The i2c_master_send/recv() functions return negative error codes or the > number of bytes that were able to be sent/received. This code has > two problems. 1) Instead of checking if all the bytes were sent or > received, it checks that

Re: [PATCH v1 1/3] drm/bridge: lt8912b: Add suspend/resume support

2023-12-04 Thread Robert Foss
> .driver = { > .name = "lt8912", > .of_match_table = lt8912_dt_match, > + .pm = pm_sleep_ptr(_bridge_pm_ops), > }, > .probe = lt8912_probe, > .remove = lt8912_remove, > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v1 3/3] drm/bridge: lt8912b: Add power supplies

2023-12-04 Thread Robert Foss
upply = supply_names[i]; > + > + return devm_regulator_bulk_get(lt->dev, ARRAY_SIZE(lt->supplies), > + lt->supplies); > +} > + > static int lt8912_parse_dt(struct lt8912 *lt) > { > struct gpio_desc *gp_reset; > @@ -712,6 +738,10 @@ static int lt8912_parse_dt(struct lt8912 *lt) > goto err_free_host_node; > } > > + ret = lt8912_get_regulators(lt); > + if (ret) > + goto err_free_host_node; > + > of_node_put(port_node); > return 0; > > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH 1/2] Revert "drm/bridge: Add 200ms delay to wait FW HPD status stable"

2023-11-29 Thread Robert Foss
On Mon, 20 Nov 2023 17:10:36 +0800, Xin Ji wrote: > This reverts commit 330140d7319fcc4ec68bd924ea212e476bf12275 > > 200ms delay will cause panel display image later than backlight > turn on, revert this patch. > > Applied, thanks! [1/2] Revert "drm/bridge: Add 200ms delay to wait FW HPD

Re: [PATCH v2] drm/bridge: imx93-mipi-dsi: Fix a couple of building warnings

2023-11-28 Thread Robert Foss
On Thu, 23 Nov 2023 13:18:07 +0800, Liu Ying wrote: > Fix a couple of building warnings on used uninitialized 'best_m' and > 'best_n' local variables by initializing 'best_m' to zero and 'best_n' > to UINT_MAX. This makes compiler happy only. No functional change. > > Applied, thanks! [1/1]

Re: [PATCH] drm/bridge: Fix typo in post_disable() description

2023-11-28 Thread Robert Foss
On Fri, 24 Nov 2023 10:42:30 +0100, Dario Binacchi wrote: > s/singals/signals/ > > Applied, thanks! [1/1] drm/bridge: Fix typo in post_disable() description https://cgit.freedesktop.org/drm/drm-misc/commit/?id=288b039db225 Rob

Re: [PATCH 2/2] fbdev/simplefb: Add support for generic power-domains

2023-10-18 Thread Robert Foss
On Wed, Oct 18, 2023 at 12:35 PM Robert Foss wrote: > > On Wed, Oct 11, 2023 at 4:38 PM Thierry Reding > wrote: > > > > From: Thierry Reding > > > > The simple-framebuffer device tree bindings document the power-domains > > property, so make sure

Re: [PATCH 2/2] fbdev/simplefb: Add support for generic power-domains

2023-10-18 Thread Robert Foss
On Wed, Oct 11, 2023 at 4:38 PM Thierry Reding wrote: > > From: Thierry Reding > > The simple-framebuffer device tree bindings document the power-domains > property, so make sure that simplefb supports it. This ensures that the > power domains remain enabled as long as simplefb is active. > >

Re: [PATCH] drm/bridge: lt9611uxc: fix the race in the error path

2023-10-16 Thread Robert Foss
On Thu, 12 Oct 2023 01:00:02 +0300, Dmitry Baryshkov wrote: > If DSI host attachment fails, the LT9611UXC driver will remove the > bridge without ensuring that there is no outstanding HPD work being > done. In rare cases this can result in the warnings regarding the mutex > being incorrect. Fix

Re: [PATCH v3 RESEND 0/9] drm/bridge: imx: Add i.MX93 MIPI DSI support

2023-10-16 Thread Robert Foss
On Mon, 21 Aug 2023 11:39:59 +0800, Liu Ying wrote: > This series aims to add MIPI DSI support for Freescale i.MX93 SoC. > > There is a Synopsys DesignWare MIPI DSI host controller and a Synopsys > Designware MIPI DPHY embedded in i.MX93. Some configurations and > extensions to them are

Re: [PATCH v3 RESEND 9/9] drm/bridge: imx: Add i.MX93 MIPI DSI support

2023-10-16 Thread Robert Foss
static int imx93_dsi_host_attach(void *priv_data, struct mipi_dsi_device > *device) > +{ > + struct imx93_dsi *dsi = priv_data; > + > + dsi->format = device->format; > + > + return 0; > +} > + > +static const struct dw_mipi_dsi_host_ops imx93_dsi_host_ops = { > + .attach = imx93_dsi_host_attach, > +}; > + > +static int imx93_dsi_probe(struct platform_device *pdev) > +{ > + struct device *dev = >dev; > + struct device_node *np = dev->of_node; > + struct imx93_dsi *dsi; > + int ret; > + > + dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL); > + if (!dsi) > + return -ENOMEM; > + > + dsi->regmap = syscon_regmap_lookup_by_phandle(np, > "fsl,media-blk-ctrl"); > + if (IS_ERR(dsi->regmap)) { > + ret = PTR_ERR(dsi->regmap); > + dev_err(dev, "failed to get block ctrl regmap: %d\n", ret); > + return ret; > + } > + > + dsi->clk_pixel = devm_clk_get(dev, "pix"); > + if (IS_ERR(dsi->clk_pixel)) > + return dev_err_probe(dev, PTR_ERR(dsi->clk_pixel), > +"failed to get pixel clock\n"); > + > + dsi->clk_cfg = devm_clk_get(dev, "phy_cfg"); > + if (IS_ERR(dsi->clk_cfg)) > + return dev_err_probe(dev, PTR_ERR(dsi->clk_cfg), > +"failed to get phy cfg clock\n"); > + > + dsi->clk_ref = devm_clk_get(dev, "phy_ref"); > + if (IS_ERR(dsi->clk_ref)) > + return dev_err_probe(dev, PTR_ERR(dsi->clk_ref), > +"failed to get phy ref clock\n"); > + > + dsi->ref_clk_rate = clk_get_rate(dsi->clk_ref); > + if (dsi->ref_clk_rate < REF_CLK_RATE_MIN || > + dsi->ref_clk_rate > REF_CLK_RATE_MAX) { > + dev_err(dev, "invalid phy ref clock rate %lu\n", > + dsi->ref_clk_rate); > + return -EINVAL; > + } > + dev_dbg(dev, "phy ref clock rate: %lu\n", dsi->ref_clk_rate); > + > + dsi->dev = dev; > + dsi->pdata.max_data_lanes = 4; > + dsi->pdata.mode_valid = imx93_dsi_mode_valid; > + dsi->pdata.mode_fixup = imx93_dsi_mode_fixup; > + dsi->pdata.get_input_bus_fmts = imx93_dsi_get_input_bus_fmts; > + dsi->pdata.phy_ops = _dsi_phy_ops; > + dsi->pdata.host_ops = _dsi_host_ops; > + dsi->pdata.priv_data = dsi; > + platform_set_drvdata(pdev, dsi); > + > + dsi->dmd = dw_mipi_dsi_probe(pdev, >pdata); > + if (IS_ERR(dsi->dmd)) > + return dev_err_probe(dev, PTR_ERR(dsi->dmd), > +"failed to probe dw_mipi_dsi\n"); > + > + return 0; > +} > + > +static void imx93_dsi_remove(struct platform_device *pdev) > +{ > + struct imx93_dsi *dsi = platform_get_drvdata(pdev); > + > + dw_mipi_dsi_remove(dsi->dmd); > +} > + > +static const struct of_device_id imx93_dsi_dt_ids[] = { > + { .compatible = "fsl,imx93-mipi-dsi", }, > + { /* sentinel */ } > +}; > +MODULE_DEVICE_TABLE(of, imx93_dsi_dt_ids); > + > +static struct platform_driver imx93_dsi_driver = { > + .probe = imx93_dsi_probe, > + .remove_new = imx93_dsi_remove, > + .driver = { > + .of_match_table = imx93_dsi_dt_ids, > + .name = "imx93_mipi_dsi", > + }, > +}; > +module_platform_driver(imx93_dsi_driver); > + > +MODULE_DESCRIPTION("Freescale i.MX93 MIPI DSI driver"); > +MODULE_AUTHOR("Liu Ying "); > +MODULE_LICENSE("GPL"); > -- > 2.37.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 RESEND 1/9] drm/bridge: synopsys: dw-mipi-dsi: Add dw_mipi_dsi_get_bridge() helper

2023-10-16 Thread Robert Foss
si, struct dw_mipi_dsi > *slave); > +struct drm_bridge *dw_mipi_dsi_get_bridge(struct dw_mipi_dsi *dsi); > > #endif /* __DW_MIPI_DSI__ */ > -- > 2.37.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 RESEND 2/9] drm/bridge: synopsys: dw-mipi-dsi: Add input bus format negotiation support

2023-10-16 Thread Robert Foss
gt; + struct drm_crtc_state *crtc_state, > + struct drm_connector_state *conn_state, > + u32 output_fmt, > + unsigned int *num_input_fmts); > + > const struct dw_mipi_dsi_phy_ops *phy_ops; > const struct dw_mipi_dsi_host_ops *host_ops; > > -- > 2.37.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 RESEND 3/9] drm/bridge: synopsys: dw-mipi-dsi: Force input bus flags

2023-10-16 Thread Robert Foss
; dw_mipi_dsi_bridge_atomic_get_input_bus_fmts, > + .atomic_check = dw_mipi_dsi_bridge_atomic_check, > .atomic_reset = drm_atomic_helper_bridge_reset, > .atomic_pre_enable = dw_mipi_dsi_bridge_atomic_pre_enable, > .atomic_enable = dw_mipi_dsi_bridge_atomic_enable, > -- > 2.37.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 RESEND 4/9] drm/bridge: synopsys: dw-mipi-dsi: Add mode fixup support

2023-10-16 Thread Robert Foss
t; > + bool (*mode_fixup)(void *priv_data, const struct drm_display_mode > *mode, > + struct drm_display_mode *adjusted_mode); > + > u32 *(*get_input_bus_fmts)(void *priv_data, >struct drm_bridge *bridge, >struct drm_bridge_state *bridge_state, > -- > 2.37.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 0/8] ADV7511 driver enhancements

2023-10-16 Thread Robert Foss
On Wed, 30 Aug 2023 15:23:50 +0100, Biju Das wrote: > This patch series aims to improve ADV7511 driver by adding > feature bits and data instead of comparing enum adv7511_type for > various hardware differences between ADV7511, ADV7533 and ADV7535. > > This patch series tested with[1] on RZ/G2L

Re: [PATCH v2 1/8] drm: adv7511: Add struct adv7511_chip_info and use i2c_get_match_data()

2023-10-16 Thread Robert Foss
quot;adi,adv7535", .data = (void *)ADV7535 }, > + { .compatible = "adi,adv7511", .data = _chip_info }, > + { .compatible = "adi,adv7511w", .data = _chip_info }, > + { .compatible = "adi,adv7513", .data = _chip_info }, > + { .compatible = "adi,adv7533", .data = _chip_info }, > + { .compatible = "adi,adv7535", .data = _chip_info }, > { } > }; > MODULE_DEVICE_TABLE(of, adv7511_of_ids); > diff --git a/drivers/gpu/drm/bridge/adv7511/adv7533.c > b/drivers/gpu/drm/bridge/adv7511/adv7533.c > index 7e3e56441aed..c452c4dc1c3f 100644 > --- a/drivers/gpu/drm/bridge/adv7511/adv7533.c > +++ b/drivers/gpu/drm/bridge/adv7511/adv7533.c > @@ -108,11 +108,11 @@ enum drm_mode_status adv7533_mode_valid(struct adv7511 > *adv, > u8 bpp = mipi_dsi_pixel_format_to_bpp(dsi->format); > > /* Check max clock for either 7533 or 7535 */ > - if (mode->clock > (adv->type == ADV7533 ? 8 : 148500)) > + if (mode->clock > (adv->info->type == ADV7533 ? 8 : 148500)) > return MODE_CLOCK_HIGH; > > /* Check max clock for each lane */ > - max_lane_freq = (adv->type == ADV7533 ? 80 : 891000); > + max_lane_freq = (adv->info->type == ADV7533 ? 80 : 891000); > > if (mode->clock * bpp > max_lane_freq * adv->num_dsi_lanes) > return MODE_CLOCK_HIGH; > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 2/8] drm: adv7511: Add max_mode_clock_khz variable to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
ruct adv7511 > *adv, > u8 bpp = mipi_dsi_pixel_format_to_bpp(dsi->format); > > /* Check max clock for either 7533 or 7535 */ > - if (mode->clock > (adv->info->type == ADV7533 ? 8 : 148500)) > + if (mode->clock > adv->info->max_mode_clock_khz) > return MODE_CLOCK_HIGH; > > /* Check max clock for each lane */ > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 3/8] drm: adv7511: Add max_lane_freq_khz variable to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
lane */ > - max_lane_freq = (adv->info->type == ADV7533 ? 80 : 891000); > - > - if (mode->clock * bpp > max_lane_freq * adv->num_dsi_lanes) > + if (mode->clock * bpp > adv->info->max_lane_freq_khz * > adv->num_dsi_lanes) > return MODE_CLOCK_HIGH; > > return MODE_OK; > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 4/8] drm: adv7511: Add supply_names and num_supplies variables to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
gt; .type = ADV7533, > .max_mode_clock_khz = 8, > .max_lane_freq_khz = 80, > + .supply_names = adv7533_supply_names, > + .num_supplies = ARRAY_SIZE(adv7533_supply_names), > }; > > static const struct adv7511_chip_info adv7535_chip_info = { > .type = ADV7535, > .max_mode_clock_khz = 148500, > .max_lane_freq_khz = 891000, > + .supply_names = adv7533_supply_names, > + .num_supplies = ARRAY_SIZE(adv7533_supply_names), > }; > > static const struct i2c_device_id adv7511_i2c_ids[] = { > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 6/8] drm: adv7511: Add has_dsi variable to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
s), > .reg_cec_offset = ADV7533_REG_CEC_OFFSET, > + .has_dsi = true, > }; > > static const struct adv7511_chip_info adv7535_chip_info = { > @@ -1376,6 +1377,7 @@ static const struct adv7511_chip_info adv7535_chip_info > = { > .supply_names = adv7533_supply_names, > .num_supplies = ARRAY_SIZE(adv7533_supply_names), > .reg_cec_offset = ADV7533_REG_CEC_OFFSET, > + .has_dsi = true, > }; > > static const struct i2c_device_id adv7511_i2c_ids[] = { > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 7/8] drm: adv7511: Add link_config variable to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
adv7511_cec_init(dev, adv7511); > @@ -1358,6 +1358,7 @@ static const struct adv7511_chip_info adv7511_chip_info > = { > .type = ADV7511, > .supply_names = adv7511_supply_names, > .num_supplies = ARRAY_SIZE(adv7511_supply_names), > + .link_config = true, > }; > > static const struct adv7511_chip_info adv7533_chip_info = { > -- > 2.25.1 > Reviewed-by: Robert Foss

Re: [PATCH v2 8/8] drm: adv7511: Add hpd_override_enable variable to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
regmap, > ADV7511_REG_POWER2, >ADV7535_REG_POWER2_HPD_OVERRIDE, >ADV7535_REG_POWER2_HPD_OVERRIDE); > @@ -1379,6 +1379,7 @@ static const struct adv7511_chip_info adv7535_chip_info > = { > .num_supplies = ARRAY_SIZE(adv7533_supply_names), > .reg_cec_offset = ADV7533_REG_CEC_OFFSET, > .has_dsi = true, > + .hpd_override_enable = true, > }; > > static const struct i2c_device_id adv7511_i2c_ids[] = { > -- > 2.25.1 Reviewed-by: Robert Foss

Re: [PATCH v2 5/8] drm: adv7511: Add reg_cec_offset variable to struct adv7511_chip_info

2023-10-16 Thread Robert Foss
struct adv7511. > > This will avoid assigning reg_cec_offset based on chip type and also > testing for multiple chip types for calling adv7533_patch_cec_registers(). s/for calling/by calling/ ? Reviewed-by: Robert Foss

Re: [PATCH v3 1/2] drm/bridge: megachips-stdpxxxx-ge-b850v3-fw: switch to drm_do_get_edid()

2023-10-13 Thread Robert Foss
On Thu, 21 Sep 2023 13:47:50 +0300, Ian Ray wrote: > Migrate away from custom EDID parsing and validity checks. > > Note: This is a follow-up to the original RFC by Jani [1]. The first > submission in this series should have been marked v2. > > [1] >

Re: [PATCH v3 2/2] MAINTAINERS: Update entry for megachips-stdpxxxx-ge-b850v3-fw

2023-10-13 Thread Robert Foss
gt; F: > Documentation/devicetree/bindings/display/bridge/megachips-stdp-ge-b850v3-fw.txt > -- > 2.10.1 > Reviewed-by: Robert Foss

Re: [PATCH v3 1/2] drm/bridge: megachips-stdpxxxx-ge-b850v3-fw: switch to drm_do_get_edid()

2023-10-13 Thread Robert Foss
urn block; > - > -err: > - kfree(block); > - return NULL; > + return 0; > } > > static struct edid *ge_b850v3_lvds_get_edid(struct drm_bridge *bridge, > @@ -137,7 +98,7 @@ static struct edid *ge_b850v3_lvds_get_edid(struct > drm_bridge *bridge, > > client = ge_b850v3_lvds_ptr->stdp2690_i2c; > > - return (struct edid *)stdp2690_get_edid(client); > + return drm_do_get_edid(connector, stdp2690_read_block, client); > } > > static int ge_b850v3_lvds_get_modes(struct drm_connector *connector) Reviewed-by: Robert Foss

Re: [PATCH -next] drm/bridge: clean up some inconsistent indentings

2023-09-25 Thread Robert Foss
NAK Personally I value maintaining a simple to follow `git blame` history over correcting indentation. Ideally bad indentation should never be committed in the first place. On Wed, Sep 20, 2023 at 2:44 AM Yang Li wrote: > > drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c:336

Re: [PATCH v2] drm/bridge: Add 200ms delay to wait FW HPD status stable

2023-09-25 Thread Robert Foss
On Fri, 22 Sep 2023 17:34:49 +0800, Xin Ji wrote: > For the no-interrupt design (sink device is panel, polling HPD > status when chip power on), anx7625 FW has more than 200ms HPD > de-bounce time in FW, for the safety to get HPD status, driver > better to wait 200ms before HPD detection after OS

Re: [PATCH v4 00/12] drm/bridge: tc358768: Fixes and timings improvements

2023-09-20 Thread Robert Foss
On Wed, 06 Sep 2023 09:50:47 +0300, Tomi Valkeinen wrote: > This series contains various fixes and cleanups for TC358768. The target > of this work is to get TC358768 working on Toradex's AM62 based board, > which has the following display pipeline: > > AM62 DPI -> TC358768 -> LT8912B -> HDMI

Re: [PATCH] drm/bridge/analogix/anx78xx: Add missing definition

2023-09-20 Thread Robert Foss
On Sat, 9 Sep 2023 04:37:53 +0200, Alicja Michalska wrote: > Analogix ANX78XX driver is missing definitions for anx7816. > It uses the same I2C register set as anx7818. > > Applied, thanks! [1/1] drm/bridge/analogix/anx78xx: Add missing definition

  1   2   3   4   5   6   7   8   9   >