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 at
.driver = {
> .name = "lt8912",
> .of_match_table = lt8912_dt_match,
> + .pm = pm_sleep_ptr(<8912_bridge_pm_ops),
> },
> .probe = lt8912_probe,
> .remove = lt8912_remove,
> --
> 2.25.1
>
Reviewed-by: 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
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 statu
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] d
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
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 that
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.
>
> Sig
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 thi
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 controlle
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 = &pdev->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 = &imx93_dsi_phy_ops;
> + dsi->pdata.host_ops = &imx93_dsi_host_ops;
> + dsi->pdata.priv_data = dsi;
> + platform_set_drvdata(pdev, dsi);
> +
> + dsi->dmd = dw_mipi_dsi_probe(pdev, &dsi->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
i *dsi, 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
e_state,
> + 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
; 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
format);
>
> + 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
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 SM
= "adi,adv7511w", .data = &adv7511_chip_info },
> + { .compatible = "adi,adv7513", .data = &adv7511_chip_info },
> + { .compatible = "adi,adv7533", .data = &adv7533_chip_info },
> + { .compatible = "adi,adv7535", .data = &adv7535_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
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
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
{
> .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
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
k_config);
>
> ret = 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
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
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
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]
> https://patchwork.freedesktop.org/patch/msg
gt; F:
> Documentation/devicetree/bindings/display/bridge/megachips-stdp-ge-b850v3-fw.txt
> --
> 2.10.1
>
Reviewed-by: 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
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 dw_hdmi_cec_suspend()
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 r
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 conn
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
https://cgit.freedesktop.org/drm/drm-misc
On Mon, 18 Sep 2023 23:49:44 +0200, Alicja Michalska wrote:
> As requested by Robert Foss , this patch adds
> definition for anx7816. It supplements the patch submitted to dri-devel.
>
>
Applied, thanks!
[1/1] dt-bindings: display: anx7814: Add definition for anx7816
On Sat, Sep 9, 2023 at 4:43 AM Alicja Michalska wrote:
>
> Analogix ANX78XX driver is missing definitions for anx7816.
> It uses the same I2C register set as anx7818.
>
> Signed-off-by: Alicja Michalska
> ---
> drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c | 2 ++
> 1 file changed, 2 insert
On Sat, 9 Sep 2023 16:44:32 +0200, Jernej Skrabec wrote:
> Add handling of arbitration lost event.
>
>
Applied, thanks!
[1/1] drm/bridge: dw-hdmi-cec: Add arbitration lost event
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=484281d5436c
Rob
On Fri, Sep 15, 2023 at 12:31 PM Neil Armstrong
wrote:
>
> On 14/09/2023 15:19, Jani Nikula wrote:
> > Clearly this should be under bridge chips.
> >
> > Cc: Andrzej Hajda
> > Cc: Neil Armstrong
> > Cc: Robert Foss
> > Signed-off-by: Jani Nikula
>
On Fri, 04 Aug 2023 13:48:09 +0300, Tomi Valkeinen wrote:
> Fix various issues in lt8912b driver.
>
> Tomi
>
>
Fixed the mentioned commit message typos, and an incorrect has
for a "Fixes" tag.
Applied, thanks!
[1/4] drm/bridge: lt8912b: Fix bridge_detach
https://cgit.freedesktop.org/dr
On Fri, 1 Sep 2023 15:01:23 +0530, Jai Luthra wrote:
> Fix the NULL pointer dereference when no monitor is connected, and the
> sound card is opened from userspace.
>
> Instead return an empty buffer (of zeroes) as the EDID information to
> the sound framework if there is no connector attached.
>
On Fri, 18 Aug 2023 20:18:15 +0100, Biju Das wrote:
> This patch series aims to add match data improvements for it66121 driver.
>
> v2->v3:
> * Removed fixes tag from patch#1 as nothing broken.
> * Added Rb tag from Andy.
> v1->v2:
> * Split the patch into two.
> * patch#1 extend match support
d;
> >
> > if (dev->of_node)
> > - adv7511->type = (enum
> > adv7511_type)of_device_get_match_data(dev);
> > + adv7511->type = (uintptr_t)of_device_get_match_data(dev);
> > else
> > adv7511->type = id->driver_data;
> >
>
> --
> Regards,
>
> Laurent Pinchart
>
Ack for drm/bridge part.
Acked-by: Robert Foss
On Thu, 10 Aug 2023 08:32:29 +0200, Alexander Stein wrote:
> atomic_get_input_bus_fmts is only implemented for LVDS decoders, resulting
> that LVDS encoders only support bus format MEDIA_BUS_FMT_FIXED. This
> results in warnings like:
> mxsfb 21c8000.lcdif: Bridge does not provide bus format, assum
gt; lvds_codec->bus_format = ret;
> - lvds_codec->bridge.funcs = &funcs_decoder;
> }
> + } else {
> + lvds_codec->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
> }
>
> /*
Reviewed-by: Robert Foss
On Wed, 9 Aug 2023 16:56:41 +0200, Marek Szyprowski wrote:
> Samsung DSIM used in older Exynos SoCs (like Exynos 4210, 4x12, 3250)
> doesn't report empty level of packer header FIFO. In case of those SoCs,
> use the old way of waiting for empty command tranfsfer FIFO, removed
> recently by commit 1
On Thu, 3 Aug 2023 20:01:37 -0700, Randy Dunlap wrote:
> Three DRM bridge drivers select GENERIC_PHY_MIPI_DPHY when GENERIC_PHY
> might not be set. This causes Kconfig warnings and a build error.
>
> WARNING: unmet direct dependencies detected for GENERIC_PHY_MIPI_DPHY
> Depends on [n]: GENERIC
On Sun, 9 Jul 2023 15:48:27 +0200, Marek Vasut wrote:
> The ULPS EXIT is initialized to 0xaf in downstream BSP as well as older
> revisions of this patchset, in newer revisions of the DSIM patchset it
> was left out and set to 0. Fix it.
>
>
Applied, thanks!
[1/1] drm: bridge: samsung-dsim: Ini
On Mon, Aug 7, 2023 at 2:43 AM Yang Li wrote:
>
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-cec.c:332 dw_hdmi_cec_suspend() warn:
> inconsistent indenting
>
> Reported-by: Abaci Robot
> Closes: https://bugzilla.openanolis.cn/show_bug.cgi?id=6101
> Signed-off-by: Yang Li
> ---
> drivers/gpu/drm/b
nnector_cleanup(<->connector);
> }
>
> static enum drm_connector_status
> @@ -750,7 +745,6 @@ static void lt8912_remove(struct i2c_client *client)
> {
> struct lt8912 *lt = i2c_get_clientdata(client);
>
> - lt8912_bridge_detach(<->bridge);
> drm_bridge_remove(<->bridge);
> lt8912_free_i2c(lt);
> lt8912_put_dt(lt);
>
> --
> 2.34.1
>
Reviewed-by: Robert Foss
t8912_bridge_detach(struct drm_bridge
> *bridge)
>
> if (lt->hdmi_port->ops & DRM_BRIDGE_OP_HPD)
> drm_bridge_hpd_disable(lt->hdmi_port);
> -
> - drm_connector_unregister(<->connector);
> - drm_connector_cleanup(<->connector);
> }
>
> static enum drm_connector_status
>
> --
> 2.34.1
>
Reviewed-by: Robert Foss
On Mon, 31 Jul 2023 10:13:45 +0800, Zhu Wang wrote:
> When building with W=1, the following warning occurs.
>
> drivers/gpu/drm/bridge/analogix/analogix-anx78xx.c:48:17: warning:
> ‘anx781x_i2c_addresses’ defined but not used [-Wunused-const-variable=]
> static const u8 anx781x_i2c_addresses[]
On Tue, 18 Jul 2023 19:04:05 +0800, Chen-Yu Tsai wrote:
> From: Pin-yen Lin
>
> These two drivers embed a i2c_client in their private driver data, but
> only strict device is actually needed. Replace the i2c_client reference
> with a struct device one.
>
>
> [...]
Applied, thanks!
[1/1] drm/b
On Wed, 12 Jul 2023 14:50:53 +0800, Chen-Yu Tsai wrote:
> From: Pin-yen Lin
>
> Replace the spaces with tab characters in the Kconfig file.
>
>
Applied, thanks!
[1/1] drm/bridge: it6505: Fix Kconfig indentation
https://cgit.freedesktop.org/drm/drm-misc/commit/?id=dd9c1329027d
Rob
On Mon, 10 Jul 2023 16:59:21 +0800, Chen-Yu Tsai wrote:
> The device lock is used to serialize the low level power sequencing
> operations. Since drm_helper_hpd_irq_event() could end up calling
> .atomic_enable, which also calls power sequencing functions through
> runtime PM, this results in a rea
On Wed, 19 Jul 2023 09:01:43 +0300, Alexandru Ardelean wrote:
> From: Bogdan Togorean
>
> For ADV7533 and ADV7535 low refresh rate is selected using
> bits [3:2] of 0x4a main register.
> So depending on ADV model write 0xfb or 0x4a register.
>
>
> [...]
Applied, thanks!
[1/1] drm: adv7511: Fi
On Tue, Jul 18, 2023 at 10:42 AM Alexandru Ardelean wrote:
>
> From: Bogdan Togorean
>
> For ADV7533 and ADV7535 low refresh rate is selected using
> bits [3:2] of 0x4a main register.
> So depending on ADV model write 0xfb or 0x4a register.
>
> Fixes: 2437e7cd88e8 ("drm/bridge: adv7533: Initial s
> > > #include
> > > #include
> >
> > I'm not sure if I'm just misreading something, but in all other places
> > of_device.h gets removed while here is stays as an include. Is this
> > correct this way?
>
> Yes, because of_match_device() is used.
>
> Rob
>
For drivers/gpu/drm/bridge/
Acked-by: Robert Foss
On Wed, Jul 12, 2023 at 8:57 AM Chen-Yu Tsai wrote:
>
> From: Pin-yen Lin
>
> These two drivers embed a i2c_client in their private driver data, but
> only strict device is actually needed. Replace the i2c_client reference
> with a struct device one.
>
> Signed-off-by: Pin-yen Lin
> Reviewed-by:
On Mon, 10 Jul 2023 17:12:01 +0800, Chen-Yu Tsai wrote:
> The DRM DP code has macros for the DP HDCP capabilities. Use them in the
> anx7625 driver instead of raw numbers.
>
>
Applied, thanks!
[1/1] drm/bridge: anx7625: Use common macros for HDCP capabilities
https://cgit.freedesktop.org/
> if (event < 0)
> - goto unlock;
> + return;
>
> if (ctx->bridge_attached)
> drm_helper_hpd_irq_event(ctx->bridge.dev);
> -
> -unlock:
> - mutex_unlock(&ctx->lock);
> }
>
> static irqreturn_t anx7625_intr_hpd_isr(int irq, void *data)
> --
> 2.41.0.255.g8b1d071c50-goog
>
LGTM, let's snooze this until next week, incase someone comes up with an issue.
Reviewed-by: Robert Foss
On Mon, 10 Jul 2023 17:09:27 +0800, Chen-Yu Tsai wrote:
> The DRM DP code has macros for the DP power sequencing commands. Use
> them in the anx7625 driver instead of raw numbers.
>
>
Applied, thanks!
[1/1] drm/bridge: anx7625: Use common macros for DP power sequencing commands
https://cg
On Sat, 8 Jul 2023 08:05:35 +0200, Christophe JAILLET wrote:
> The devm_clk_get_enabled() helper:
>- calls devm_clk_get()
>- calls clk_prepare_enable() and registers what is needed in order to
> call clk_disable_unprepare() when needed, as a managed resource.
>
> This simplifies the c
On Fri, 16 Jun 2023 16:55:17 -0700, Douglas Anderson wrote:
> In order to read the EDID from an eDP panel, you not only need to
> power on the bridge chip itself but also the panel. In the ps8640
> driver, this was made to work by having the bridge chip manually power
> the panel on by calling pre_
On Fri, Jun 16, 2023 at 2:13 PM Juerg Haefliger
wrote:
>
> The module loads firmware so add a MODULE_FIRMWARE macro to provide that
> information via modinfo.
>
> Signed-off-by: Juerg Haefliger
> ---
> drivers/gpu/drm/bridge/lontium-lt9611uxc.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff
gt; Cc: Daniel Vetter
> Cc: David Airlie
> Cc: Jernej Skrabec
> Cc: Jonas Karlman
> Cc: Krzysztof Kozlowski
> Cc: Laurent Pinchart
> Cc: Marek Vasut
> Cc: Neil Armstrong
> Cc: Rob Herring
> Cc: Robert Foss
> Cc: devicet...@vger.kernel.org
> Cc: dri-devel@list
; +
> v4l2_info(sd, "%s found @ 0x%x (%s)\n", client->name,
> client->addr << 1, client->adapter->name);
>
> --
> 2.34.1
>
Reviewed-by: Robert Foss
dev_dbg(priv->dev, "dsiclk_nsk: %u\n", dsiclk_nsk);
> dev_dbg(priv->dev, "ui_nsk: %u\n", ui_nsk);
> dev_dbg(priv->dev, "dsibclk_nsk: %u\n", dsibclk_nsk);
> - dev_dbg(priv->dev, "phy_delay_nsk: %u\n", phy_delay_nsk);
>
> /* LP11 > 100us for D-PHY Rx Init */
> val = tc358768_ns_to_cnt(100 * 1000, dsibclk_nsk) - 1;
> --
> 2.25.1
>
Reviewed-by: Robert Foss
; -dsibclk_nsk) - 5;
> + /* max(60ns + 4*UI, 8*UI) < THS_TRAILCNT < 105ns + 12*UI */
> + raw_val = tc358768_ns_to_cnt(60 + tc358768_to_ns(18 * ui_nsk),
> +dsibclk_nsk) - 4;
> + val = clamp(raw_val, 0, 15);
> dev_dbg(priv->dev, "THS_TRAILCNT: 0x%x\n", val);
> tc358768_write(priv, TC358768_THS_TRAILCNT, val);
>
> --
> 2.25.1
>
Reviewed-by: Robert Foss
o_cnt(tc358768_to_ns((lptxcnt + 1) * dsibclk_nsk),
> dsibclk_nsk) - 2;
> val = val << 16 | val2;
> --
> 2.25.1
>
Reviewed-by: Robert Foss
lt;< 8;
> + /* THS_PREPARE + THS_ZERO > 145ns + 10*UI */
> + raw_val = tc358768_ns_to_cnt(145 - tc358768_to_ns(3 * ui_nsk),
> dsibclk_nsk) - 10;
> + val2 = clamp(raw_val, 0, 127);
> + val |= val2 << 8;
> dev_dbg(priv->dev, "THS_HEADERCNT: 0x%x\n", val);
> tc358768_write(priv, TC358768_THS_HEADERCNT, val);
>
> --
> 2.25.1
>
Reviewed-by: Robert Foss
_val = tc358768_ns_to_cnt(60 + tc358768_to_ns(2 * ui_nsk),
> dsibclk_nsk) - 5;
> + val = clamp(raw_val, 0, 127);
> dev_dbg(priv->dev, "TCLK_TRAILCNT: 0x%x\n", val);
> tc358768_write(priv, TC358768_TCLK_TRAILCNT, val);
>
> --
> 2.25.1
>
Reviewed-by: Robert Foss
_ZERO > 300ns */
> + val2 = tc358768_ns_to_cnt(300 - tc358768_to_ns(2 * ui_nsk),
> + dsibclk_nsk) - 2;
> + val |= val2 << 8;
> dev_dbg(priv->dev, "TCLK_HEADERCNT: 0x%x\n", val);
> tc358768_write(priv, TC358768_TCLK_HEADERCNT, val);
>
> --
> 2.25.1
>
Reviewed-by: Robert Foss
truct mipi_dsi_host
> *host,
> }
>
> if (ret)
> - priv->pd_lines = mipi_dsi_pixel_format_to_bpp(dev->format);
> + priv->pd_lines = priv->dsi_bpp;
>
> drm_bridge_add(&priv->bridge);
>
> --
> 2.25.1
>
Reviewed-by: Robert Foss
continue;
>
> + pll_in = (u32)div_u64((u64)refclk, prd + 1);
> + if (pll_in < 400)
> + continue;
> +
> diff = max(pll, target_pll) - min(pll, target_pll);
>
> if (diff < best_diff) {
> --
> 2.25.1
>
Reviewed-by: Robert Foss
PI_DSI_MODE_LPM))
> - val |= TC358768_DSI_CONTROL_TXMD;
> + val |= TC358768_DSI_CONTROL_TXMD;
>
> if (!(mode_flags & MIPI_DSI_CLOCK_NON_CONTINUOUS))
> val |= TC358768_DSI_CONTROL_HSCKMD;
> --
> 2.25.1
>
Reviewed-by: Robert Foss
On Fri, Apr 28, 2023 at 5:56 PM Markus Elfring wrote:
>
> From: Markus Elfring
> Date: Sun, 16 Apr 2023 17:30:46 +0200
>
> The address of a data structure member was determined before
> a corresponding null pointer check in the implementation of
> the function “receive_timing_debugfs_show”.
>
> T
On Thu, Apr 27, 2023 at 9:40 PM Markus Elfring wrote:
>
> > Fix the email Sign-off email != Sender email issue, resubmit and I'll
> > be able to apply this.
>
> You can pick the email from my tag “Signed-off-by” up also directly
> as an ordinary patch author email, can't you?
Of course, I can cha
On Tue, Apr 25, 2023 at 4:16 PM Markus Elfring wrote:
>
> > This patch seems to be a part of a series without being marked as such,
>
> The mentioned patch affects only a single function implementation.
>
>
> > this causes issues when importing this patch with maintainer tools
> > like b4 which au
idge: add it6505
> driver")
> Signed-off-by: Markus Elfring
The email in the Signed-off tag should match the email of the sender,
which it doesn't.
With the two above issues fixed, please add my r-b.
Reviewed-by: Robert Foss
> ---
> drivers/gpu/drm/bridge/ite-it6505.c
!of_property_read_bool(np, "snps,disable-cec") &&
> + (config0 & HDMI_CONFIG0_CEC)) {
> cec.hdmi = hdmi;
> cec.ops = &dw_hdmi_cec_ops;
> cec.irq = irq;
> --
> 2.40.0
>
Reviewed-by: Robert Foss
gt; ---
> Cc: Andrzej Hajda
> Cc: Daniel Vetter
> Cc: David Airlie
> Cc: Jagan Teki
> Cc: Jernej Skrabec
> Cc: Jonas Karlman
> Cc: Laurent Pinchart
> Cc: Michael Walle
> Cc: Neil Armstrong
> Cc: Robert Foss
> Cc: dri-devel@lists.freedesktop.org
> ---
>
gt; ---
> Cc: Andrzej Hajda
> Cc: Daniel Vetter
> Cc: David Airlie
> Cc: Jagan Teki
> Cc: Jernej Skrabec
> Cc: Jonas Karlman
> Cc: Laurent Pinchart
> Cc: Michael Walle
> Cc: Neil Armstrong
> Cc: Robert Foss
> Cc: dri-devel@lists.freedesktop.org
> ---
>
ay an extra
> --
> 2.40.0.348.gf938b09366-goog
>
Snoozing for a few days before applying.
Reviewed-by: Robert Foss
t; dsi->format = MIPI_DSI_FMT_RGB888;
>
> dsi->mode_flags = MIPI_DSI_MODE_VIDEO |
> - MIPI_DSI_MODE_VIDEO_BURST |
> MIPI_DSI_MODE_LPM |
> MIPI_DSI_MODE_NO_EOT_PACKET;
>
> --
> 2.25.1
>
Letting this sleep for a few days before applying.
Reviewed-by: Robert Foss
t;edid) {
> @@ -574,6 +575,11 @@ static struct edid *ps8640_bridge_get_edid(struct
> drm_bridge *bridge,
>
> connector->state->state);
> }
>
> + if (!ps_bridge->edid) {
> + dev_err(dev, "Failed to get EDID\n");
> +
bridge: adv7533: remove dynamic lane switching from
> adv7533 bridge")
> Reviewed-by: Robert Foss
> Signed-off-by: Adam Ford
> ---
>
> V2: Fix whitespace in comment
> Remove TODO comment
> Add R-B from Robert.
>
> diff --git a/drivers/gpu/drm/bridg
gt; + struct ps8640 *ps_bridge = i2c_get_clientdata(client);
> +
> + kfree(ps_bridge->edid);
> + ps_bridge->edid = NULL;
> +}
> +
> static const struct of_device_id ps8640_match[] = {
> { .compatible = "parade,ps8640" },
> { }
> @@ -775,6 +787,7 @@ MODULE_DEVICE_TABLE(of, ps8640_match);
>
> static struct i2c_driver ps8640_driver = {
> .probe_new = ps8640_probe,
> + .remove = ps8640_remove,
> .driver = {
> .name = "ps8640",
> .of_match_table = ps8640_match,
> --
> 2.40.0.rc1.284.g88254d51c5-goog
>
Reviewed-by: Robert Foss
edid = drm_get_edid(connector,
> ps_bridge->page[PAGE0_DP_CNTL]->adapter);
> --
> 2.40.0.rc1.284.g88254d51c5-goog
>
Reviewed-by: Robert Foss
ts until it finds one
> * that works). When the format is not supported NULL should be
> -* returned and num_output_fmts should be set to 0.
> +* returned and num_input_fmts should be set to 0.
> *
> * This method is called on all elements of the bridge chain as part
> of
> * the bus format negotiation process that happens in
> --
> 2.37.1
>
Reviewed-by: Robert Foss
On Sun, Mar 12, 2023 at 2:10 AM Dmitry Baryshkov
wrote:
>
> On 12/03/2023 01:10, Adam Ford wrote:
> > When dynamically switching lanes was removed, the intent of the code
> > was to check to make sure that higher speed items used 4 lanes, but
> > it had the unintended consequence of removing the s
t; > @@ -6824,6 +6824,7 @@ S: Maintained
> > T: git git://anongit.freedesktop.org/drm/drm-misc
> > F: Documentation/devicetree/bindings/display/bridge/
> > F: drivers/gpu/drm/bridge/
> > +F: include/drm/drm_bridge.h
> >
> > DRM DRIVERS FOR EXYNOS
> > M: Inki Dae
>
>
> Acked-by: Neil Armstrong
Acked-by: Robert Foss
On Tue, 3 Jan 2023 at 08:59, Krzysztof Kozlowski
wrote:
>
> On 02/01/2023 18:10, Robert Foss wrote:
> > On Fri, 30 Dec 2022 at 17:12, Krzysztof Kozlowski
> > wrote:
> >>
> >> On 30/12/2022 16:35, Robert Foss wrote:
> >>> Use two interconnect cells
On Fri, 30 Dec 2022 at 17:12, Krzysztof Kozlowski
wrote:
>
> On 30/12/2022 16:35, Robert Foss wrote:
> > Use two interconnect cells in order to optionally
> > support a path tag.
> >
> > Signed-off-by: Robert Foss
> > Reviewed-by: Konrad Dybcio
> > ---
The mmxc power-domain-name is not required, and is not
used by either earlier or later SoC versions (sm8250 / sm8450).
Signed-off-by: Robert Foss
Reviewed-by: Konrad Dybcio
---
arch/arm64/boot/dts/qcom/sm8350.dtsi | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom
Mobile Display Subsystem (MDSS) encapsulates sub-blocks
like DPU display controller, DSI etc. Add YAML schema for MDSS device
tree bindings
Signed-off-by: Robert Foss
Reviewed-by: Rob Herring
---
.../display/msm/qcom,sm8350-mdss.yaml | 221 ++
1 file changed, 221
The sm8350-hdk ships with the LT9611 UXC DSI/HDMI bridge chip.
In order to toggle the board to enable the HDMI output,
switch #7 & #8 on the rightmost multi-switch package have
to be toggled to On.
Signed-off-by: Robert Foss
---
arch/arm64/boot/dts/qcom/sm8350-hdk.dts |
Enable the display subsystem and the dsi0 output for
the sm8350-hdk board.
Signed-off-by: Robert Foss
---
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 22 ++
1 file changed, 22 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
b/arch/arm64/boot/dts/qcom
Add mdss, mdss_mdp, dsi0, dsi0_phy nodes. With these
nodes the display subsystem is configured to support
one DSI output.
Signed-off-by: Robert Foss
---
arch/arm64/boot/dts/qcom/sm8350.dtsi | 297 ++-
1 file changed, 293 insertions(+), 4 deletions(-)
diff --git a/arch
Add compatibles string, "qcom,sm8350-mdss", for the multimedia display
subsystem unit used on Qualcomm SM8350 platform.
Signed-off-by: Robert Foss
Reviewed-by: Dmitry Baryshkov
Reviewed-by: Abhinav Kumar
---
drivers/gpu/drm/msm/msm_mdss.c | 5 +
1 file changed, 5 insertions(+)
Add GPIO line names as described by the sm8350-hdk schematic.
Signed-off-by: Robert Foss
---
arch/arm64/boot/dts/qcom/sm8350-hdk.dts | 205
1 file changed, 205 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
b/arch/arm64/boot/dts/qcom/sm8350-hdk.dts
Use two interconnect cells in order to optionally
support a path tag.
Signed-off-by: Robert Foss
Reviewed-by: Konrad Dybcio
---
arch/arm64/boot/dts/qcom/sm8350.dtsi | 28 ++--
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom
Add compatibility for SM8350 display subsystem, including
required entries in DPU hw catalog.
Signed-off-by: Robert Foss
Reviewed-by: Dmitry Baryshkov
---
.../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c| 195 ++
.../gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h| 1 +
2 files
Add compatibles string, "qcom,sm8350-dpu", for the display processing unit
used on Qualcomm SM8350 platform.
Signed-off-by: Robert Foss
---
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
b/drivers/g
101 - 200 of 897 matches
Mail list logo