All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime@cerno.tech>
To: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: David Airlie <airlied@linux.ie>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Eric Anholt <eric@anholt.net>,
	bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Daniel Vetter <daniel.vetter@intel.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 9/9] drm/vc4: hdmi: Enable 10/12 bpc output
Date: Thu, 10 Dec 2020 15:21:57 +0100	[thread overview]
Message-ID: <20201210142157.2zm6rgz3a6jpeui6@gilmour> (raw)
In-Reply-To: <CAPY8ntC=7WC7kfJw2KOEBv+SwTrZxgvKbpXM5RsK4FMS03K2jQ@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 2256 bytes --]

Hi Dave,

On Wed, Dec 09, 2020 at 03:27:05PM +0000, Dave Stevenson wrote:
> Hi Maxime
> 
> On Mon, 7 Dec 2020 at 15:57, Maxime Ripard <maxime@cerno.tech> wrote:
> >
> > The BCM2711 supports higher bpc count than just 8, so let's support it in
> > our driver.
> >
> > Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> > ---
> >  drivers/gpu/drm/vc4/vc4_hdmi.c      | 71 ++++++++++++++++++++++++++++-
> >  drivers/gpu/drm/vc4/vc4_hdmi.h      |  1 +
> >  drivers/gpu/drm/vc4/vc4_hdmi_regs.h |  9 ++++
> >  3 files changed, 80 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> > index f4ff6b5db484..fb30ddd842b1 100644
> > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> > @@ -76,6 +76,17 @@
> >  #define VC5_HDMI_VERTB_VSPO_SHIFT              16
> >  #define VC5_HDMI_VERTB_VSPO_MASK               VC4_MASK(29, 16)
> >
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_SHIFT     8
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_MASK      VC4_MASK(10, 8)
> > +
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_SHIFT         0
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_MASK          VC4_MASK(3, 0)
> > +
> > +#define VC5_HDMI_GCP_CONFIG_GCP_ENABLE         BIT(31)
> > +
> > +#define VC5_HDMI_GCP_WORD_1_GCP_SUBPACKET_BYTE_1_SHIFT 8
> > +#define VC5_HDMI_GCP_WORD_1_GCP_SUBPACKET_BYTE_1_MASK  VC4_MASK(15, 8)
> > +
> >  # define VC4_HD_M_SW_RST                       BIT(2)
> >  # define VC4_HD_M_ENABLE                       BIT(0)
> >
> > @@ -179,6 +190,9 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector)
> >
> >         kfree(connector->state);
> >
> > +       conn_state->base.max_bpc = 8;
> > +       conn_state->base.max_requested_bpc = 8;
> > +
> 
> Having added protection from the kzalloc failing in 4/9, this adds
> back in dereferencing conn_state without having checked it succeeded
> first :(

Yeah, you're right :/

I also noticed that we kfree the connector->state pointer, but nothing
really guarantees that the base field in our structure is at the offset
0

I've fixed both issues, I'll send a new iteration

Thanks!
Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Maxime Ripard <maxime@cerno.tech>
To: Dave Stevenson <dave.stevenson@raspberrypi.com>
Cc: David Airlie <airlied@linux.ie>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	bcm-kernel-feedback-list@broadcom.com,
	linux-rpi-kernel@lists.infradead.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Daniel Vetter <daniel.vetter@intel.com>,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 9/9] drm/vc4: hdmi: Enable 10/12 bpc output
Date: Thu, 10 Dec 2020 15:21:57 +0100	[thread overview]
Message-ID: <20201210142157.2zm6rgz3a6jpeui6@gilmour> (raw)
In-Reply-To: <CAPY8ntC=7WC7kfJw2KOEBv+SwTrZxgvKbpXM5RsK4FMS03K2jQ@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 2256 bytes --]

Hi Dave,

On Wed, Dec 09, 2020 at 03:27:05PM +0000, Dave Stevenson wrote:
> Hi Maxime
> 
> On Mon, 7 Dec 2020 at 15:57, Maxime Ripard <maxime@cerno.tech> wrote:
> >
> > The BCM2711 supports higher bpc count than just 8, so let's support it in
> > our driver.
> >
> > Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> > ---
> >  drivers/gpu/drm/vc4/vc4_hdmi.c      | 71 ++++++++++++++++++++++++++++-
> >  drivers/gpu/drm/vc4/vc4_hdmi.h      |  1 +
> >  drivers/gpu/drm/vc4/vc4_hdmi_regs.h |  9 ++++
> >  3 files changed, 80 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/vc4/vc4_hdmi.c b/drivers/gpu/drm/vc4/vc4_hdmi.c
> > index f4ff6b5db484..fb30ddd842b1 100644
> > --- a/drivers/gpu/drm/vc4/vc4_hdmi.c
> > +++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
> > @@ -76,6 +76,17 @@
> >  #define VC5_HDMI_VERTB_VSPO_SHIFT              16
> >  #define VC5_HDMI_VERTB_VSPO_MASK               VC4_MASK(29, 16)
> >
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_SHIFT     8
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_MASK      VC4_MASK(10, 8)
> > +
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_SHIFT         0
> > +#define VC5_HDMI_DEEP_COLOR_CONFIG_1_COLOR_DEPTH_MASK          VC4_MASK(3, 0)
> > +
> > +#define VC5_HDMI_GCP_CONFIG_GCP_ENABLE         BIT(31)
> > +
> > +#define VC5_HDMI_GCP_WORD_1_GCP_SUBPACKET_BYTE_1_SHIFT 8
> > +#define VC5_HDMI_GCP_WORD_1_GCP_SUBPACKET_BYTE_1_MASK  VC4_MASK(15, 8)
> > +
> >  # define VC4_HD_M_SW_RST                       BIT(2)
> >  # define VC4_HD_M_ENABLE                       BIT(0)
> >
> > @@ -179,6 +190,9 @@ static void vc4_hdmi_connector_reset(struct drm_connector *connector)
> >
> >         kfree(connector->state);
> >
> > +       conn_state->base.max_bpc = 8;
> > +       conn_state->base.max_requested_bpc = 8;
> > +
> 
> Having added protection from the kzalloc failing in 4/9, this adds
> back in dereferencing conn_state without having checked it succeeded
> first :(

Yeah, you're right :/

I also noticed that we kfree the connector->state pointer, but nothing
really guarantees that the base field in our structure is at the offset
0

I've fixed both issues, I'll send a new iteration

Thanks!
Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-12-10 14:23 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-07 15:57 [PATCH v5 0/9] drm/vc4: hdmi: Support the 10/12 bit output Maxime Ripard
2020-12-07 15:57 ` Maxime Ripard
2020-12-07 15:57 ` [PATCH v5 1/9] drm/vc4: hvs: Align the HVS atomic hooks to the new API Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-07 15:57 ` [PATCH v5 2/9] drm/vc4: Pass the atomic state to encoder hooks Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-08  7:53   ` Thomas Zimmermann
2020-12-08  7:53     ` Thomas Zimmermann
2020-12-07 15:57 ` [PATCH v5 3/9] drm/vc4: hdmi: Take into account the clock doubling flag in atomic_check Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-08  7:54   ` Thomas Zimmermann
2020-12-08  7:54     ` Thomas Zimmermann
2020-12-09 15:29   ` Dave Stevenson
2020-12-09 15:29     ` Dave Stevenson
2020-12-07 15:57 ` [PATCH v5 4/9] drm/vc4: hdmi: Don't access the connector state in reset if kmalloc fails Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-09 15:20   ` Dave Stevenson
2020-12-09 15:20     ` Dave Stevenson
2020-12-07 15:57 ` [PATCH v5 5/9] drm/vc4: hdmi: Create a custom connector state Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-09 15:22   ` Dave Stevenson
2020-12-09 15:22     ` Dave Stevenson
2020-12-07 15:57 ` [PATCH v5 6/9] drm/vc4: hdmi: Store pixel frequency in the " Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-08  7:55   ` Thomas Zimmermann
2020-12-08  7:55     ` Thomas Zimmermann
2020-12-09 15:32   ` Dave Stevenson
2020-12-09 15:32     ` Dave Stevenson
2020-12-07 15:57 ` [PATCH v5 7/9] drm/vc4: hdmi: Use the connector state pixel rate for the PHY Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-09 15:23   ` Dave Stevenson
2020-12-09 15:23     ` Dave Stevenson
2020-12-07 15:57 ` [PATCH v5 8/9] drm/vc4: hdmi: Limit the BCM2711 to the max without scrambling Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-09 15:23   ` Dave Stevenson
2020-12-09 15:23     ` Dave Stevenson
2020-12-07 15:57 ` [PATCH v5 9/9] drm/vc4: hdmi: Enable 10/12 bpc output Maxime Ripard
2020-12-07 15:57   ` Maxime Ripard
2020-12-09 15:27   ` Dave Stevenson
2020-12-09 15:27     ` Dave Stevenson
2020-12-10 14:21     ` Maxime Ripard [this message]
2020-12-10 14:21       ` 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=20201210142157.2zm6rgz3a6jpeui6@gilmour \
    --to=maxime@cerno.tech \
    --cc=airlied@linux.ie \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=daniel.vetter@intel.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=eric@anholt.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-rpi-kernel@lists.infradead.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --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 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.