From: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Maxime Ripard <maxime@cerno.tech>, Emma Anholt <emma@anholt.net>,
David Airlie <airlied@linux.ie>, Daniel Vetter <daniel@ffwll.ch>,
Philipp Zabel <p.zabel@pengutronix.de>,
dri-devel <dri-devel@lists.freedesktop.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Regression with mainline kernel on rpi4
Date: Wed, 22 Sep 2021 21:19:06 +0100 [thread overview]
Message-ID: <CADVatmPDeSxeY3GTZyC6+G0N76su0E6Y3LF_h6BOcBf5QAtjvg@mail.gmail.com> (raw)
In-Reply-To: <CAHk-=wh+y=C5hVhE1X=AvZz+OM5Yp8eLHYGth31pfoJVF7UKKQ@mail.gmail.com>
On Wed, Sep 22, 2021 at 7:23 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
>
> On Wed, Sep 22, 2021 at 10:02 AM Sudip Mukherjee
> <sudipm.mukherjee@gmail.com> wrote:
> >
> >
> > Attached is a complete dmesg and also the decoded trace.
> > This is done on 4357f03d6611 ("Merge tag 'pm-5.15-rc2' of
> > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm")
>
> drivers/gpu/drm/vc4/vc4_hdmi.c:1214 is
>
> tmp = (u64)(mode->clock * 1000) * n;
>
> in vc4_hdmi_set_n_cts(), which has apparently been inlined from
> vc4_hdmi_audio_prepare() in vc4_hdmi.c:1398.
>
> So it looks like 'mode' is some offset off a NULL pointer.
>
> Which looks not impossible:
>
> 1207 struct drm_connector *connector = &vc4_hdmi->connector;
> 1208 struct drm_crtc *crtc = connector->state->crtc;
> 1209 const struct drm_display_mode *mode =
> &crtc->state->adjusted_mode;
>
> looks like crtc->state perhaps might be NULL.
I added some debugs to print the addresses, and I am getting:
[ 38.813809] sudip crtc 0000000000000000
This is from struct drm_crtc *crtc = connector->state->crtc;
connector and connector->state had valid addresses.
[ 38.805302] sudip connector ffff000040bac578
[ 38.809779] sudip state ffff000057eb5400
This is the diff of the debug I added:
diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
index 4a1115043114..2a8f06948094 100644
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1205,11 +1205,20 @@ static void
vc4_hdmi_audio_set_mai_clock(struct vc4_hdmi *vc4_hdmi,
static void vc4_hdmi_set_n_cts(struct vc4_hdmi *vc4_hdmi, unsigned
int samplerate)
{
struct drm_connector *connector = &vc4_hdmi->connector;
- struct drm_crtc *crtc = connector->state->crtc;
- const struct drm_display_mode *mode = &crtc->state->adjusted_mode;
+ struct drm_crtc *crtc;
+ struct drm_display_mode *mode;
u32 n, cts;
u64 tmp;
+
+ pr_err("sudip connector %px\n", connector);
+ pr_err("sudip state %px\n", connector->state);
+ crtc = connector->state->crtc;
+
+ pr_err("sudip crtc %px\n", crtc);
+ pr_err("sudip state %px\n", crtc->state);
+ pr_err("state mode %px\n", &crtc->state->adjusted_mode);
+ mode = &crtc->state->adjusted_mode;
n = 128 * samplerate / 1000;
tmp = (u64)(mode->clock * 1000) * n;
do_div(tmp, 128 * samplerate);
--
Regards
Sudip
next prev parent reply other threads:[~2021-09-22 20:19 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-02 9:08 Regression with mainline kernel on rpi4 Sudip Mukherjee
2021-09-02 9:08 ` Sudip Mukherjee
2021-09-03 16:03 ` Maxime Ripard
2021-09-03 20:09 ` Sudip Mukherjee
2021-09-03 20:09 ` Sudip Mukherjee
2021-09-04 9:10 ` Maxime Ripard
2021-09-04 9:40 ` Sudip Mukherjee
2021-09-04 9:40 ` Sudip Mukherjee
2021-09-20 14:47 ` Maxime Ripard
2021-09-20 15:43 ` Maxime Ripard
2021-09-20 15:53 ` Maxime Ripard
2021-09-20 16:35 ` Sudip Mukherjee
2021-09-20 16:35 ` Sudip Mukherjee
2021-09-20 17:10 ` Maxime Ripard
2021-09-20 17:21 ` Sudip Mukherjee
2021-09-20 17:21 ` Sudip Mukherjee
2021-09-22 9:57 ` Maxime Ripard
2021-09-22 10:10 ` Sudip Mukherjee
2021-09-22 10:10 ` Sudip Mukherjee
2021-09-22 11:28 ` Maxime Ripard
2021-09-22 17:18 ` Sudip Mukherjee
2021-09-22 17:18 ` Sudip Mukherjee
2021-09-22 15:22 ` Linus Torvalds
2021-09-22 15:22 ` Linus Torvalds
2021-09-22 17:02 ` Sudip Mukherjee
2021-09-22 17:02 ` Sudip Mukherjee
2021-09-22 18:23 ` Linus Torvalds
2021-09-22 18:23 ` Linus Torvalds
2021-09-22 20:19 ` Sudip Mukherjee [this message]
2021-09-22 20:19 ` Sudip Mukherjee
2021-09-22 20:25 ` Linus Torvalds
2021-09-22 20:25 ` Linus Torvalds
2021-09-24 13:30 ` Maxime Ripard
2021-09-24 22:50 ` Daniel Vetter
2021-09-24 22:50 ` Daniel Vetter
2021-09-28 8:34 ` Maxime Ripard
2021-09-30 9:19 ` Daniel Vetter
2021-10-13 15:01 ` Maxime Ripard
2021-10-14 13:15 ` Daniel Vetter
2021-10-25 14:15 ` Maxime Ripard
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=CADVatmPDeSxeY3GTZyC6+G0N76su0E6Y3LF_h6BOcBf5QAtjvg@mail.gmail.com \
--to=sudipm.mukherjee@gmail.com \
--cc=airlied@linux.ie \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=emma@anholt.net \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime@cerno.tech \
--cc=p.zabel@pengutronix.de \
--cc=torvalds@linux-foundation.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.