[PATCH 2/4] drm: ti-sn65dsi86: Check bridge connection failure
Tomi Valkeinen
tomi.valkeinen at ideasonboard.com
Thu Jun 20 11:00:35 UTC 2024
On 20/06/2024 13:42, Laurent Pinchart wrote:
> On Thu, Jun 20, 2024 at 09:43:05AM +0300, Tomi Valkeinen wrote:
>> On 19/06/2024 22:32, Laurent Pinchart wrote:
>>> Hi Jacopo,
>>>
>>> Thank you for the patch.
>>>
>>> On Wed, Jun 19, 2024 at 12:22:16PM +0200, Jacopo Mondi wrote:
>>>> From: Phong Hoang <phong.hoang.wz at renesas.com>
>>>>
>>>> Add a check to the register access function when attaching a bridge
>>>> device.
>>
>> I think the desc is missing the "why". I'm guessing it's the first
>> register access to the IC, and thus verifies that it is accessible.
>
> Isn't it a good idea in general to always check if I2C reads succeeded ?
It is. But if there are tens of other i2c accesses for which the return
value is ignored, the question remains: why this single one was
specifically fixed?
Tomi
>
>>>>
>>>> Signed-off-by: Phong Hoang <phong.hoang.wz at renesas.com>
>>>> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
>>>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>
>>>
>>>> ---
>>>> drivers/gpu/drm/bridge/ti-sn65dsi86.c | 6 +++++-
>>>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
>>>> index 84698a0b27a8..b7df53577987 100644
>>>> --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c
>>>> +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c
>>>> @@ -696,6 +696,7 @@ static struct ti_sn65dsi86 *bridge_to_ti_sn65dsi86(struct drm_bridge *bridge)
>>>>
>>>> static int ti_sn_attach_host(struct auxiliary_device *adev, struct ti_sn65dsi86 *pdata)
>>>> {
>>>> + int ret;
>>>> int val;
>>>> struct mipi_dsi_host *host;
>>>> struct mipi_dsi_device *dsi;
>>>> @@ -720,8 +721,11 @@ static int ti_sn_attach_host(struct auxiliary_device *adev, struct ti_sn65dsi86
>>>>
>>>> /* check if continuous dsi clock is required or not */
>>>> pm_runtime_get_sync(dev);
>>>> - regmap_read(pdata->regmap, SN_DPPLL_SRC_REG, &val);
>>>> + ret = regmap_read(pdata->regmap, SN_DPPLL_SRC_REG, &val);
>>>> pm_runtime_put_autosuspend(dev);
>>>> + if (ret)
>>>> + return ret;
>>>> +
>>>> if (!(val & DPPLL_CLK_SRC_DSICLK))
>>>> dsi->mode_flags |= MIPI_DSI_CLOCK_NON_CONTINUOUS;
>>>>
>
More information about the dri-devel
mailing list