From: John Ripple <john.ripple@keysight.com>
To: dianders@chromium.org
Cc: Laurent.pinchart@ideasonboard.com, airlied@gmail.com,
andrzej.hajda@intel.com, blake.vermeer@keysight.com,
dri-devel@lists.freedesktop.org, jernej.skrabec@gmail.com,
john.ripple@keysight.com, jonas@kwiboo.se,
linux-kernel@vger.kernel.org, maarten.lankhorst@linux.intel.com,
matt_laubhan@keysight.com, mripard@kernel.org,
neil.armstrong@linaro.org, rfoss@kernel.org, simona@ffwll.ch,
tzimmermann@suse.de
Subject: Re: [PATCH V2] drm/bridge: ti-sn65dsi86: Add support for DisplayPort mode with HPD
Date: Tue, 9 Sep 2025 13:36:40 -0600 [thread overview]
Message-ID: <20250909193641.236527-1-john.ripple@keysight.com> (raw)
In-Reply-To: <CAD=FV=XWhDtFWegUUeACxcrSTFh7kbmwVFy3sioboh2fgk3Evw@mail.gmail.com>
Hi,
>> +static int ti_sn65dsi86_read(struct ti_sn65dsi86 *pdata, unsigned int reg,
>> + unsigned int *val)
>
>This is reading a byte, right? So "val" should be an "u8 *". Yeah,
>that means you need a local variable to adjust for the generic regmap
>call, but it makes a cleaner and more obvious API to the users in this
>file.
The regmap_read function takes in an "unsigned int *" as the "val"
parameter and I'm using it to return u32 values (which could probably
be u8 instead). Would it be better to leave this as the more generic
int type or change it to u8 so its more specific to this driver?
If this function gets used elsewhere in this file at some point, I'm
not sure everything that could be read would be single bytes.
>> @@ -1219,12 +1246,28 @@ static void ti_sn_bridge_hpd_enable(struct drm_bridge *bridge)
>> */
>>
>> pm_runtime_get_sync(pdata->dev);
>> +
>> + /* Enable HPD and PLL events. */
>> + regmap_write(pdata->regmap, SN_IRQ_EVENTS_EN_REG,
>> + PLL_UNLOCK_EN |
>> + HPD_REPLUG_EN |
>> + HPD_REMOVAL_EN |
>> + HPD_INSERTION_EN |
>> + IRQ_HPD_EN);
>
>* Shouldn't this be `regmap_update_bits()` to just update the bits
>related to HPD?
>
>* why enable "PLL_UNLOCK_EN" when you don't handle it?
>
>* I also don't think your IRQ handler handles "replug" and "irq_hpd",
>right? So you shouldn't enable those either?
The IRQ_HPD_EN documentation said:
"When IRQ_EN and IRQ_HPD_EN is enabled, the DSIx6 will assert the
IRQ whenever the eDP generates a IRQ_HPD event. An IRQ_HPD event
is defined as a change from INSERTION state to the IRQ_HPD state."
I thought that meant the IRQ_HPD_EN needed to be enabled to get any irqs,
but when I tried removing the IRQ_HPD_EN and it doesn't seem to change
anything, so I'm not sure what the documentation is trying to say.
>> @@ -1309,6 +1352,32 @@ static int ti_sn_bridge_parse_dsi_host(struct ti_sn65dsi86 *pdata)
>> return 0;
>> }
>>
>> +static irqreturn_t ti_sn_bridge_interrupt(int irq, void *private)
>> +{
>> + struct ti_sn65dsi86 *pdata = private;
>> + struct drm_device *dev = pdata->bridge.dev;
>
>I'm unsure if accessing "dev" here without any sort of locking is
>safe... It feels like, in theory, "detach" could be called and race
>with the IRQ handler? Maybe you need a spinlock to be sure?
I tested a spinlock added to the ti-sn65dsi86 structure that gets used
in the ti_sn_bridge_detach and ti_sn_bridge_interrupt functions and it
seems to work. Is there another spinlock created somewhere that I could
use instead? Is using the spin lock in the interrupt and detach functions
the correct way to do it?
next prev parent reply other threads:[~2025-09-09 19:37 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-20 15:24 [PATCH 1/2] " John Ripple
2025-08-20 15:24 ` [PATCH 2/2] drm/bridge: ti-sn65dsi86: break probe dependency loop John Ripple
2025-08-29 16:40 ` Doug Anderson
2025-09-01 7:00 ` Maxime Ripard
2025-09-02 16:22 ` John Ripple
2025-09-02 17:26 ` Doug Anderson
2025-08-29 16:40 ` [PATCH 1/2] drm/bridge: ti-sn65dsi86: Add support for DisplayPort mode with HPD Doug Anderson
2025-09-08 20:36 ` [PATCH V2] " John Ripple
2025-09-09 0:11 ` Doug Anderson
2025-09-09 19:36 ` John Ripple [this message]
2025-09-09 22:44 ` Doug Anderson
2025-09-10 18:33 ` [PATCH V3] " John Ripple
2025-09-10 20:48 ` Doug Anderson
2025-09-11 18:39 ` John Ripple
2025-09-11 23:25 ` Doug Anderson
2025-09-12 19:23 ` John Ripple
2025-09-12 19:24 ` [PATCH V4] " John Ripple
2025-09-12 20:02 ` Doug Anderson
2025-09-12 21:08 ` [PATCH V5] " John Ripple
2025-09-12 21:27 ` Doug Anderson
2025-09-15 16:50 ` [PATCH V6] " John Ripple
2025-09-15 17:33 ` Doug Anderson
2025-09-15 17:47 ` [PATCH V3] " John Ripple
2025-09-15 17:45 ` [PATCH V7] " John Ripple
2025-09-15 17:57 ` Doug Anderson
2025-09-23 15:23 ` Doug Anderson
2025-09-16 5:46 ` [PATCH V3] " Dan Carpenter
2025-09-16 14:30 ` Doug Anderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250909193641.236527-1-john.ripple@keysight.com \
--to=john.ripple@keysight.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=blake.vermeer@keysight.com \
--cc=dianders@chromium.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=matt_laubhan@keysight.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=rfoss@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®