> if (platform->hdcp_workqueue) {
> cancel_delayed_work(&platform->hdcp_work);
> - flush_workqueue(platform->hdcp_workqueue);
> destroy_workqueue(platform->hdcp_workqueue);
> }
Reviewed-by: Robert Foss
>
> --
> 2.25.1
>
On Fri, 28 Feb 2025 08:32:47 +, Colin Ian King wrote:
> There is a spelling mistake in a dev_err message. Fix it.
>
>
Applied, thanks!
[1/1] drm/bridge: Fix spelling mistake "gettin" -> "getting"
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/db505ff68c12
Rob
On Tue, 25 Feb 2025 14:51:13 +0100, Alexander Stein wrote:
> Polarity for DE is stored in bridge state. Use this flag for setting
> the DE polarity in the bridge.
>
>
Applied, thanks!
[1/1] drm/bridge: ti-sn65dsi83: Support negative DE polarity
(no commit info)
Rob
/Documentation/devicetree/bindings/display/bridge/simple-bridge.yaml
> @@ -31,6 +31,7 @@ properties:
>- ti,opa362
>- ti,ths8134
>- ti,ths8135
> + - mstar,tsumu88adt3-lf-1
>
>ports:
> $ref: /schemas/graph.yaml#/properties/ports
> --
> 2.43.0
>
Reviewed-by: Robert Foss
>- ti,ds90c185 # For the TI DS90C185 FPD-Link Serializer
>- ti,ds90c187 # For the TI DS90C187 FPD-Link Serializer
>- ti,sn75lvds83 # For the TI SN75LVDS83 FlatLink transmitter
> --
> 2.43.0
>
Reviewed-by: Robert Foss
ible = "mstar,tsumu88adt3-lf-1",
> + .data = &(const struct simple_bridge_info) {
> + .connector_type = DRM_MODE_CONNECTOR_HDMIA,
> + },
> },
> {},
> };
> --
> 2.43.0
>
Reviewed-by: Robert Foss
On Mon, 20 Jan 2025 14:21:34 +0100, Alexander Stein wrote:
> This is a DSI to LVDS bridge, so set the bridge type accordingly.
>
>
Applied, thanks!
[1/2] drm/bridge: ti-sn65dsi83: Set bridge type
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/272f17229e47
[2/2] drm/bridge: nwl-ds
On Tue, 28 Jan 2025 14:56:45 +0800, oushixiong1...@163.com wrote:
> Convert platform_get_resource(), devm_ioremap_resource() to a single
> call to devm_platform_ioremap_resource().
>
>
Applied, thanks!
[1/1] drm/bridge: analogix_dp: Use devm_platform_ioremap_resource()
(no commit info)
>
> > There is no change until CONFIG_PWM actually becomes tristate.
> >
> > Signed-off-by: Uwe Kleine-König
>
> Reviewed-by: Louis Chauvet
Reviewed-by: Robert Foss
On Fri, 14 Feb 2025 13:57:39 +0100, Luca Ceresoli wrote:
> This series collects some minor improvements and fixes previously part of
> [0], hence the "v7" version number.
>
> All of these patches already have some Review/Ack tags.
>
> [0]
> https://lore.kernel.org/dri-devel/20250206-hotplug-drm-
On Fri, 14 Feb 2025 18:46:32 +0300, Vitalii Mordan wrote:
> If the clock mhdp->clk was not enabled in cdns_mhdp_probe(), it should not
> be disabled in any path.
>
> The return value of clk_prepare_enable() is not checked. If mhdp->clk was
> not enabled, it may be disabled in the error path of cdn
This patch has some checkpatch --strict warnings.
With those fixed, feel free to add my r-b.
Reviewed-by: Robert Foss
On Fri, Feb 14, 2025 at 5:47 PM Detlev Casanova
wrote:
>
> From: Sugar Zhang
>
> Register the dw-hdmi-qp bridge driver as an HDMI audio codec.
>
> T
On Thu, 06 Feb 2025 18:02:32 +0100, Luca Ceresoli wrote:
> This series removes some unnecessary #includes and and unused forward
> declarations, which I noticed while preparing a way more complex series
> (bridge hotplug). I decided to split these trivial patches to a separate
> series to limit the
t;
> - res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> -
> - dp->reg_base = devm_ioremap_resource(&pdev->dev, res);
> + dp->reg_base = devm_platform_ioremap_resource(pdev, 0);
> if (IS_ERR(dp->reg_base)) {
> ret = PTR_ERR(dp->reg_base);
> goto err_disable_clk;
> --
> 2.43.0
>
Reviewed-by: Robert Foss
On Thu, 06 Feb 2025 15:17:13 +0800, oushixiong1...@163.com wrote:
> convert to use devm_platform_ioremap_resource().
>
>
Applied, thanks!
[1/1] drm/bridge: convert to use devm_platform_ioremap_resource()
https://gitlab.freedesktop.org/drm/misc/kernel/-/commit/aaad45cfaa1b
Rob
On Tue, 21 Jan 2025 15:01:51 +0800, Hermes Wu wrote:
> Fix a typo where V compare incorrectly compares av[] with av[] itself,
> which can result in HDCP failure.
>
> The loop of V compare is expected to iterate for 5 times
> which compare V array form av[0][] to av[4][].
> It should check loop cou
On Sun, 06 Oct 2024 00:20:17 +0100, li...@treblig.org wrote:
> cdns_mhdp_hdcp_set_lc() and cdns_mhdp_hdcp_set_public_key_param()
> were added by commit
> 6a3608eae6d3 ("drm: bridge: cdns-mhdp8546: Enable HDCP")
> but never used.
>
> Remove them.
>
> [...]
Applied, thanks!
[1/1] drm/bridge: cdns
On Sat, 26 Oct 2024 06:10:42 +0200, Marek Vasut wrote:
> The driver configures mostly Pixel PLL from the clock cached in
> local copy of the mode. Make sure the driver uses adjusted mode
> which contains the updated Pixel PLL settings negotiated in
> tc_dpi_atomic_check()/tc_edp_atomic_check().
>
On Tue, 15 Oct 2024 07:29:57 +, Arnd Bergmann wrote:
> The driver now uses the legacy bridge helper code but can be configured
> to get built without it:
>
> ERROR: modpost: "devm_imx_drm_legacy_bridge"
> [drivers/gpu/drm/imx/ipuv3/parallel-display.ko] undefined!
>
> Add the required depende
On Wed, Sep 4, 2024, 11:58 Jani Nikula wrote:
> On Wed, 04 Sep 2024, Stephen Rothwell wrote:
> > Hi all,
> >
> > After merging the drm-misc tree, today's linux-next build (x86_64
> > allmodconfig) failed like this:
> >
> > drivers/gpu/drm/bridge/ti-tdp158.c: In function 'tdp158_enable':
> > driv
On Mon, 12 Aug 2024 16:51:00 +0200, Marc Gonzalez wrote:
> TDP158 is an AC-coupled DVI / HDMI to TMDS level shifting Redriver.
>
> Like the TFP410, the TDP158 can be set up in 2 different ways:
> 1) hard-coding its configuration settings using pin-strapping resistors
> 2) placing it on an I2C bus,
;,
> GPIOD_OUT_LOW);
> + if (IS_ERR(tdp158->enable))
> + return dev_err_probe(dev, PTR_ERR(tdp158->enable), "enable");
> +
> + tdp158->bridge.of_node = dev->of_node;
> + tdp158->bridge.funcs = &tdp158_bridge_funcs;
> + tdp158->bridge.driver_private = tdp158;
> + tdp158->dev = dev;
> +
> + return devm_drm_bridge_add(dev, &tdp158->bridge);
> +}
> +
> +static const struct of_device_id tdp158_match_table[] = {
> + { .compatible = "ti,tdp158" },
> + { }
> +};
> +MODULE_DEVICE_TABLE(of, tdp158_match_table);
> +
> +static struct i2c_driver tdp158_driver = {
> + .probe = tdp158_probe,
> + .driver = {
> + .name = "tdp158",
> + .of_match_table = tdp158_match_table,
> + },
> +};
> +module_i2c_driver(tdp158_driver);
> +
> +MODULE_DESCRIPTION("TI TDP158 driver");
> +MODULE_LICENSE("GPL");
>
> --
> 2.34.1
>
Reviewed-by: Robert Foss
On Wed, 31 Jul 2024 14:13:59 -0600, Rob Herring (Arm) wrote:
> There's no need to get the length of an DT array property before
> parsing the array. of_property_read_variable_u8_array() takes a minimum
> and maximum length and returns the actual length (or error code).
>
> This is part of a larger
On Tue, 13 Aug 2024 00:23:21 +0300, Cristian Ciocaltea wrote:
> Make use of devm_clk_get_enabled() to replace devm_clk_get() and
> clk_prepare_enable() for isfr and iahb clocks, and drop the now
> unnecessary calls to clk_disable_unprepare().
>
> Similarly, use devm_clk_get_optional_enabled() help
On Tue, 13 Aug 2024 17:16:37 +0800, Liu Ying wrote:
> If the bridge is attached with the DRM_BRIDGE_ATTACH_NO_CONNECTOR flag set,
> this driver won't initialize a connector and hence display mode won't be
> validated in drm_connector_helper_funcs::mode_valid(). So, move the mode
> validation from
On Mon, 01 Jul 2024 21:19:51 +0300, Dmitry Baryshkov wrote:
> There are no in-kernel DTs that use Lontium LT9611UXC bridge and still
> require creation of the drm_connector by the bridge on attachment.
> Drop support for !DRM_BRIDGE_ATTACH_NO_CONNECTOR by the driver.
>
>
Applied, thanks!
[1/2]
On Thu, 11 Jul 2024 14:26:55 +0300, Cristian Ciocaltea wrote:
> The recent switch to drmm allocation in drm_bridge_connector_init() may
> cause double free on bridge_connector in some of the error handling
> paths.
>
> Drop the explicit kfree() calls on bridge_connector.
>
>
> [...]
Applied, th
On Wed, Jul 31, 2024 at 10:03 PM Cristian Ciocaltea
wrote:
>
> Hi Robert,
>
> On 7/18/24 3:02 PM, Robert Foss wrote:
> > On Thu, 11 Jul 2024 14:26:55 +0300, Cristian Ciocaltea wrote:
> >> The recent switch to drmm allocation in drm_bridge_connector_init() ma
--
> 1 file changed, 12 insertions(+), 91 deletions(-)
> ---
> base-commit: 74564adfd3521d9e322cfc345fdc132df80f3c79
> change-id: 20240625-lt9611uxc-next-bridge-5827d9b17fc1
>
> Best regards,
> --
> Dmitry Baryshkov
>
>
Snoozing this for 2 weeks, since it is removing functionality.
Reviewed-by: Robert Foss
On Fri, 19 Jul 2024 19:05:36 +0800, Pin-yen Lin wrote:
> When the bridge is powered off, disable the IRQ until the next power on
> to workaround an interrupt storm on some badly-designed hardware.
>
>
Applied, thanks!
[1/1] drm/bridge: it6505: Disable IRQ when powered off
https://cgit.fre
On Thu, 11 Jul 2024 14:26:55 +0300, Cristian Ciocaltea wrote:
> The recent switch to drmm allocation in drm_bridge_connector_init() may
> cause double free on bridge_connector in some of the error handling
> paths.
>
> Drop the explicit kfree() calls on bridge_connector.
>
>
> [...]
Applied, th
On Wed, 03 Jul 2024 14:27:15 +0200, Alexander Stein wrote:
> When -EPROBE_DEFER is returned do not raise an error, but silently return
> this error instead. Fixes error like this:
> [drm:drm_bridge_attach] *ERROR* failed to attach bridge
> /soc@0/bus@3080/mipi-dsi@30a0 to encoder None-34:
On Tue, 25 Jun 2024 14:02:30 +0200, Marek Vasut wrote:
> Split tc_pxl_pll_en() into tc_pxl_pll_calc() which does only Pixel PLL
> parameter calculation and tc_pxl_pll_en() which calls tc_pxl_pll_calc()
> and then configures the Pixel PLL register.
>
> This is a preparatory patch for further rework
On Tue, 4 Jun 2024 10:44:05 +0800, kuro wrote:
> From: Kuro Chung
>
> The spec of timing between IVDD/OVDD and SYSRTEN is 10ms, but SYSRSTN RC
> circuit need at least 25ms for rising time, update for match spec
>
>
Applied, thanks!
[1/1] drm/bridge: it6505: update usleep_range for RC circuit
On Sat, 1 Jun 2024 09:41:01 -0500, Adam Ford wrote:
> The P divider should be set based on the min and max values of
> the fin pll which may vary between different platforms.
> These ranges are defined per platform, but hard-coded values
> were used instead which resulted in a smaller range availab
On Fri, 31 May 2024 22:33:12 +0200, Marek Vasut wrote:
> Make sure the connector is fully initialized before signalling any
> HPD events via drm_kms_helper_hotplug_event(), otherwise this may
> lead to NULL pointer dereference.
>
>
Applied, thanks!
[1/1] drm/bridge: tc358767: Check if fully ini
On Fri, 31 May 2024 22:32:01 +0200, Marek Vasut wrote:
> Fix comment copy-paste error in tc_edp_mode_valid(), this function
> is validating DP/eDP clock, not DPI clock frequency. Update the
> comment to match. No functional change.
>
>
Applied, thanks!
[1/1] drm/bridge: tc358767: Fix comment in
On Fri, 31 May 2024 22:37:44 +0200, Sam Ravnborg wrote:
> I had a few bridge related patches in an old branch.
>
> They were last posted here almost one year ago:
> https://lore.kernel.org/dri-devel/20220717174454.46616-1-...@ravnborg.org/
>
> The following two patches gets rid of drm_bridge_chai
S_UNKNOWN_ERROR (0x3 << 0)
> +#define AUX_STATUS_MUCH_DEFER_ERROR(0x4 << 0)
> +#define AUX_STATUS_TX_SHORT_ERROR (0x5 << 0)
> +#define AUX_STATUS_RX_SHORT_ERROR (0x6 << 0)
> +#define AUX_STATUS_NACK_WITHOUT_M_ERROR
ror happened: %#x (%d)\n",
> -status_reg & AUX_STATUS_MASK, !!(reg & AUX_ERR));
> +aux_status, !!(reg & AUX_ERR));
> goto aux_error;
> }
>
> --
> 2.39.2
>
Reviewed-by: Robert Foss
);
> }
>
> -enum pll_status analogix_dp_get_pll_lock_status(struct analogix_dp_device
> *dp)
> +int analogix_dp_wait_pll_locked(struct analogix_dp_device *dp)
> {
> - u32 reg;
> + u32 val;
>
> - reg = readl(dp->reg_base + ANALOGIX_DP_DEBUG_CTL);
> - if (reg & PLL_LOCK)
> - return PLL_LOCKED;
> - else
> - return PLL_UNLOCKED;
> + return readl_poll_timeout(dp->reg_base + ANALOGIX_DP_DEBUG_CTL, val,
> + val & PLL_LOCK, 120,
> + 120 * DP_TIMEOUT_LOOP_COUNT);
> }
>
> void analogix_dp_set_pll_power_down(struct analogix_dp_device *dp, bool
> enable)
> --
> 2.39.2
>
Reviewed-by: Robert Foss
tus\n");
> - return -ETIMEDOUT;
> - }
> - usleep_range(10, 20);
> - }
> - }
> + analogix_dp_set_pll_power_down(dp, 0);
>
> /* Enable Serdes FIFO function and Link symbol clock domain module */
> reg = readl(dp->reg_base + ANALOGIX_DP_FUNC_EN_2);
> --
> 2.39.2
>
Reviewed-by: Robert Foss
On Tue, May 7, 2024 at 3:07 PM Robert Foss wrote:
>
> 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
> &g
On Mon, 10 Jun 2024 13:50:26 +0300, Dan Carpenter wrote:
> Smatch complains correctly that the NULL checking isn't consistent:
>
> drivers/gpu/drm/bridge/ite-it6505.c:2583 it6505_poweron()
> error: we previously assumed 'pdata->pwr18' could be null
> (see line 2569)
>
> These the ->pw
On Mon, 18 Mar 2024 21:39:23 +0100, Lucas Stach wrote:
> Address only transactions without any data are valid and should not
> be flagged as short transactions. Simply return the message size when
> no transaction errors occured.
>
>
Fixed checkpatch --strict formatting suggestions and applied,
RE_EMPHASIS_LEVEL_3) {
> + dev_err(dp->dev, "CR Max reached (%d,%d,%d)\n",
> + dp->link_train.cr_loop[lane],
> + voltage_swing, pre_emphasis);
> + analogix_dp_reduce_link_rate(dp);
> + return -EIO;
> }
> }
>
> --
> 2.39.2
>
With the above corrected or checked, feel free to add my r-b.
Reviewed-by: Robert Foss
+ ANALOGIX_DP_LN1_LINK_TRAINING_CTL);
> -}
> -
> -void analogix_dp_set_lane2_link_training(struct analogix_dp_device *dp,
> -u32 training_lane)
> -{
> - u32 reg;
> -
> - reg = training_lane;
> - writel(reg, dp->reg_base + ANALOGIX_DP_LN2_LINK_TRAINING_CTL);
> -}
> -
> -void analogix_dp_set_lane3_link_training(struct analogix_dp_device *dp,
> -u32 training_lane)
> -{
> - u32 reg;
> -
> - reg = training_lane;
> - writel(reg, dp->reg_base + ANALOGIX_DP_LN3_LINK_TRAINING_CTL);
> -}
> -
> -u32 analogix_dp_get_lane0_link_training(struct analogix_dp_device *dp)
> -{
> - return readl(dp->reg_base + ANALOGIX_DP_LN0_LINK_TRAINING_CTL);
> -}
> -
> -u32 analogix_dp_get_lane1_link_training(struct analogix_dp_device *dp)
> -{
> - return readl(dp->reg_base + ANALOGIX_DP_LN1_LINK_TRAINING_CTL);
> -}
> -
> -u32 analogix_dp_get_lane2_link_training(struct analogix_dp_device *dp)
> -{
> - return readl(dp->reg_base + ANALOGIX_DP_LN2_LINK_TRAINING_CTL);
> -}
> -
> -u32 analogix_dp_get_lane3_link_training(struct analogix_dp_device *dp)
> -{
> - return readl(dp->reg_base + ANALOGIX_DP_LN3_LINK_TRAINING_CTL);
> -}
> -
> void analogix_dp_reset_macro(struct analogix_dp_device *dp)
> {
> u32 reg;
> --
> 2.39.2
>
Reviewed-by: Robert Foss
> @@ -1144,7 +1141,7 @@ ssize_t analogix_dp_transfer(struct analogix_dp_device
> *dp,
> (msg->request & ~DP_AUX_I2C_MOT) == DP_AUX_NATIVE_READ)
> msg->reply = DP_AUX_NATIVE_REPLY_ACK;
>
> - return num_transferred > 0 ? num_transferred : -EBUSY;
> + return msg->size;
>
> aux_error:
> /* if aux err happen, reset aux */
> --
> 2.39.2
>
Reviewed-by: Robert Foss
; .volatile_table = &tc_volatile_table,
> .precious_table = &tc_precious_table,
> - .wr_table = &tc_writeable_table,
> .reg_format_endian = REGMAP_ENDIAN_BIG,
> .val_format_endian = REGMAP_ENDIAN_LITTLE,
> };
> --
> 2.34.1
>
Reviewed-by: Robert Foss
f (h || lc) {
> + dev_dbg(tc->dev, "GPIO%d: %s %s\n", tc->hpd_pin,
> + h ? "H" : "", lc ? "LC" : "");
> drm_kms_helper_hotplug_event(tc->bridge.dev);
> + }
> }
>
> regmap_write(tc->regmap, INTSTS_G, val);
> --
> 2.34.1
>
>
Reviewed-by: 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, whi
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 to
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
>
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
{ BIT_INT_HDCP_KSV_CHECK, it6505_irq_hdcp_ksv_check },
> { 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
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] drm
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:
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:
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:
connector, 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(&priv->audio_mutex);
>
> - kfree(edid);
> + drm_edid_free(drm_edid);
>
> return n;
> }
> --
> 2.39.2
>
Reviewed-by: Robert Foss
_device *dev)
> drm_connector_helper_add(connector,
> &bochs_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(&bochs->connector, bochs->drm_edid);
> }
> }
>
> --
> 2.39.2
>
Reviewed-by: Robert Foss
rty(&output->conn, new_edid);
> + new_edid = drm_edid_read_custom(&output->conn, virtio_get_edid_block,
> resp);
> + drm_edid_connector_update(&output->conn, new_edid);
>
> spin_lock(&vgdev->display_info_lock);
> - old_edid = output->edid;
> - output->edid = new_edid;
> + old_edid = output->drm_edid;
> + output->drm_edid = new_edid;
> spin_unlock(&vgdev->display_info_lock);
>
> - kfree(old_edid);
> + drm_edid_free(old_edid);
> wake_up(&vgdev->resp_wq);
> }
>
> --
> 2.39.2
>
Reviewed-by: Robert Foss
sad_count =
> drm_edid_to_speaker_allocation(amdgpu_connector_edid(connector), &sadb);
> + sad_count = drm_edid_to_speaker_allocation(amdgpu_connector->edid,
> &sadb);
> 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), &sads);
> + sad_count = drm_edid_to_sad(amdgpu_connector->edid, &sads);
> 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
coder_id(struct drm_connecto
> 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
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
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
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
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 drm_brid
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
> th
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 to
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: L
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.
>
> Signed-off-b
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
off(dp->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
(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
logix_dp_device *
> analogix_dp_probe(struct device *dev, 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
-{
> - clk_disable_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
ister_aux;
> }
>
> return 0;
>
> +err_unregister_aux:
> + drm_dp_aux_unregister(&dp->aux);
> err_disable_pm_runtime:
> pm_runtime_dont_use_autosuspend(dp->dev);
> pm_runtime_disable(dp->dev);
> - drm_dp_aux_unregister(&dp->aux);
>
> return ret;
> }
> --
> 2.39.2
>
Reviewed-by: 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 = &rockchip_dp_pm_ops,
> + .pm = pm_ptr(&rockchip_dp_pm_ops),
>.of_match_table = rockchip_dp_dt_ids,
> },
> };
> --
> 2.39.2
>
Reviewed-by: Robert Foss
include/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
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
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
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 select
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
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: bri
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 trigger
*/
> > - 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
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
>
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: anx7625
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 on
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 -EP
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 w
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 w
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 drm
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?
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 bridg
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 i
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 DRI
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 f
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:
>
1 - 100 of 916 matches
Mail list logo