All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: Rob Clark <robdclark@gmail.com>, Sean Paul <sean@poorly.run>,
	Stephen Boyd <swboyd@chromium.org>,
	David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Bjorn Andersson <andersson@kernel.org>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	freedreno@lists.freedesktop.org
Subject: Re: [RFC PATCH v2 03/13] drm/msm/dpu: encoder: simplify debugfs handling
Date: Sun, 14 May 2023 20:02:37 +0300	[thread overview]
Message-ID: <CAA8EJprczWqZ9uDPujw0JbOVW6A5+NcF_isnzDmheomRg3MQjw@mail.gmail.com> (raw)
In-Reply-To: <47ade353-a46a-9f10-f712-4d5502e03ce1@quicinc.com>

On Sat, 13 May 2023 at 01:18, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>
>
>
> On 3/20/2023 6:18 PM, Dmitry Baryshkov wrote:
> > As the debugfs is fully cleared on drm device removal, drop the
> > encoder-specific cleanup function, remove debugfs_root from dpu_encoder
> > struct and also remove phys_encoder late_register() ops which has been
> > unused since the driver being added.
> >
>
> Agreed, late_register of encoder_phys is unused, so we can drop that.
>
> For the other two things which this patch does:
>
> 1) remove debugfs_root from dpu_encoder
> 2) remove early_unregister of dpu_encoder
>
> I think this has been posted separately here
> https://patchwork.freedesktop.org/patch/534802/?series=117150&rev=1 for
> which I had given my feedback about why it cant be removed

Sure. And this patch predates your feedback.

>
> So these 2 parts have to be kept till we sort out that feedback
>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   | 22 +++----------------
> >   .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |  3 ---
> >   2 files changed, 3 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> > index 97d8d777f178..28729c77364f 100644
> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> > @@ -142,7 +142,6 @@ enum dpu_enc_rc_states {
> >    * @crtc_kickoff_cb:                Callback into CRTC that will flush & start
> >    *                          all CTL paths
> >    * @crtc_kickoff_cb_data:   Opaque user data given to crtc_kickoff_cb
> > - * @debugfs_root:            Debug file system root file node
> >    * @enc_lock:                       Lock around physical encoder
> >    *                          create/destroy/enable/disable
> >    * @frame_busy_mask:                Bitmask tracking which phys_enc we are still
> > @@ -186,7 +185,6 @@ struct dpu_encoder_virt {
> >       struct drm_crtc *crtc;
> >       struct drm_connector *connector;
> >
> > -     struct dentry *debugfs_root;
> >       struct mutex enc_lock;
> >       DECLARE_BITMAP(frame_busy_mask, MAX_PHYS_ENCODERS_PER_VIRTUAL);
> >       void (*crtc_frame_event_cb)(void *, u32 event);
> > @@ -2134,7 +2132,7 @@ DEFINE_SHOW_ATTRIBUTE(_dpu_encoder_status);
> >   static int _dpu_encoder_init_debugfs(struct drm_encoder *drm_enc)
> >   {
> >       struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc);
> > -     int i;
> > +     struct dentry *debugfs_root;
> >
> >       char name[DPU_NAME_SIZE];
> >
> > @@ -2146,18 +2144,12 @@ static int _dpu_encoder_init_debugfs(struct drm_encoder *drm_enc)
> >       snprintf(name, DPU_NAME_SIZE, "encoder%u", drm_enc->base.id);
> >
> >       /* create overall sub-directory for the encoder */
> > -     dpu_enc->debugfs_root = debugfs_create_dir(name,
> > +     debugfs_root = debugfs_create_dir(name,
> >                       drm_enc->dev->primary->debugfs_root);
> >
> >       /* don't error check these */
> >       debugfs_create_file("status", 0600,
> > -             dpu_enc->debugfs_root, dpu_enc, &_dpu_encoder_status_fops);
> > -
> > -     for (i = 0; i < dpu_enc->num_phys_encs; i++)
> > -             if (dpu_enc->phys_encs[i]->ops.late_register)
> > -                     dpu_enc->phys_encs[i]->ops.late_register(
> > -                                     dpu_enc->phys_encs[i],
> > -                                     dpu_enc->debugfs_root);
> > +             debugfs_root, dpu_enc, &_dpu_encoder_status_fops);
> >
> >       return 0;
> >   }
> > @@ -2173,13 +2165,6 @@ static int dpu_encoder_late_register(struct drm_encoder *encoder)
> >       return _dpu_encoder_init_debugfs(encoder);
> >   }
> >
> > -static void dpu_encoder_early_unregister(struct drm_encoder *encoder)
> > -{
> > -     struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(encoder);
> > -
> > -     debugfs_remove_recursive(dpu_enc->debugfs_root);
> > -}
> > -
> >   static int dpu_encoder_virt_add_phys_encs(
> >               struct msm_display_info *disp_info,
> >               struct dpu_encoder_virt *dpu_enc,
> > @@ -2406,7 +2391,6 @@ static const struct drm_encoder_helper_funcs dpu_encoder_helper_funcs = {
> >   static const struct drm_encoder_funcs dpu_encoder_funcs = {
> >               .destroy = dpu_encoder_destroy,
> >               .late_register = dpu_encoder_late_register,
> > -             .early_unregister = dpu_encoder_early_unregister,
> >   };
> >
> >   int dpu_encoder_setup(struct drm_device *dev, struct drm_encoder *enc,
> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> > index 1d434b22180d..9e29079a6fc4 100644
> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> > @@ -63,7 +63,6 @@ struct dpu_encoder_phys;
> >   /**
> >    * struct dpu_encoder_phys_ops - Interface the physical encoders provide to
> >    *  the containing virtual encoder.
> > - * @late_register:           DRM Call. Add Userspace interfaces, debugfs.
> >    * @prepare_commit:         MSM Atomic Call, start of atomic commit sequence
> >    * @is_master:                      Whether this phys_enc is the current master
> >    *                          encoder. Can be switched at enable time. Based
> > @@ -93,8 +92,6 @@ struct dpu_encoder_phys;
> >    */
> >
> >   struct dpu_encoder_phys_ops {
> > -     int (*late_register)(struct dpu_encoder_phys *encoder,
> > -                     struct dentry *debugfs_root);
> >       void (*prepare_commit)(struct dpu_encoder_phys *encoder);
> >       bool (*is_master)(struct dpu_encoder_phys *encoder);
> >       void (*atomic_mode_set)(struct dpu_encoder_phys *encoder,



-- 
With best wishes
Dmitry

WARNING: multiple messages have this Message-ID (diff)
From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
To: Abhinav Kumar <quic_abhinavk@quicinc.com>
Cc: freedreno@lists.freedesktop.org, Sean Paul <sean@poorly.run>,
	Bjorn Andersson <andersson@kernel.org>,
	dri-devel@lists.freedesktop.org,
	Stephen Boyd <swboyd@chromium.org>,
	linux-arm-msm@vger.kernel.org
Subject: Re: [RFC PATCH v2 03/13] drm/msm/dpu: encoder: simplify debugfs handling
Date: Sun, 14 May 2023 20:02:37 +0300	[thread overview]
Message-ID: <CAA8EJprczWqZ9uDPujw0JbOVW6A5+NcF_isnzDmheomRg3MQjw@mail.gmail.com> (raw)
In-Reply-To: <47ade353-a46a-9f10-f712-4d5502e03ce1@quicinc.com>

On Sat, 13 May 2023 at 01:18, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>
>
>
> On 3/20/2023 6:18 PM, Dmitry Baryshkov wrote:
> > As the debugfs is fully cleared on drm device removal, drop the
> > encoder-specific cleanup function, remove debugfs_root from dpu_encoder
> > struct and also remove phys_encoder late_register() ops which has been
> > unused since the driver being added.
> >
>
> Agreed, late_register of encoder_phys is unused, so we can drop that.
>
> For the other two things which this patch does:
>
> 1) remove debugfs_root from dpu_encoder
> 2) remove early_unregister of dpu_encoder
>
> I think this has been posted separately here
> https://patchwork.freedesktop.org/patch/534802/?series=117150&rev=1 for
> which I had given my feedback about why it cant be removed

Sure. And this patch predates your feedback.

>
> So these 2 parts have to be kept till we sort out that feedback
>
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > ---
> >   drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c   | 22 +++----------------
> >   .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h  |  3 ---
> >   2 files changed, 3 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> > index 97d8d777f178..28729c77364f 100644
> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
> > @@ -142,7 +142,6 @@ enum dpu_enc_rc_states {
> >    * @crtc_kickoff_cb:                Callback into CRTC that will flush & start
> >    *                          all CTL paths
> >    * @crtc_kickoff_cb_data:   Opaque user data given to crtc_kickoff_cb
> > - * @debugfs_root:            Debug file system root file node
> >    * @enc_lock:                       Lock around physical encoder
> >    *                          create/destroy/enable/disable
> >    * @frame_busy_mask:                Bitmask tracking which phys_enc we are still
> > @@ -186,7 +185,6 @@ struct dpu_encoder_virt {
> >       struct drm_crtc *crtc;
> >       struct drm_connector *connector;
> >
> > -     struct dentry *debugfs_root;
> >       struct mutex enc_lock;
> >       DECLARE_BITMAP(frame_busy_mask, MAX_PHYS_ENCODERS_PER_VIRTUAL);
> >       void (*crtc_frame_event_cb)(void *, u32 event);
> > @@ -2134,7 +2132,7 @@ DEFINE_SHOW_ATTRIBUTE(_dpu_encoder_status);
> >   static int _dpu_encoder_init_debugfs(struct drm_encoder *drm_enc)
> >   {
> >       struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(drm_enc);
> > -     int i;
> > +     struct dentry *debugfs_root;
> >
> >       char name[DPU_NAME_SIZE];
> >
> > @@ -2146,18 +2144,12 @@ static int _dpu_encoder_init_debugfs(struct drm_encoder *drm_enc)
> >       snprintf(name, DPU_NAME_SIZE, "encoder%u", drm_enc->base.id);
> >
> >       /* create overall sub-directory for the encoder */
> > -     dpu_enc->debugfs_root = debugfs_create_dir(name,
> > +     debugfs_root = debugfs_create_dir(name,
> >                       drm_enc->dev->primary->debugfs_root);
> >
> >       /* don't error check these */
> >       debugfs_create_file("status", 0600,
> > -             dpu_enc->debugfs_root, dpu_enc, &_dpu_encoder_status_fops);
> > -
> > -     for (i = 0; i < dpu_enc->num_phys_encs; i++)
> > -             if (dpu_enc->phys_encs[i]->ops.late_register)
> > -                     dpu_enc->phys_encs[i]->ops.late_register(
> > -                                     dpu_enc->phys_encs[i],
> > -                                     dpu_enc->debugfs_root);
> > +             debugfs_root, dpu_enc, &_dpu_encoder_status_fops);
> >
> >       return 0;
> >   }
> > @@ -2173,13 +2165,6 @@ static int dpu_encoder_late_register(struct drm_encoder *encoder)
> >       return _dpu_encoder_init_debugfs(encoder);
> >   }
> >
> > -static void dpu_encoder_early_unregister(struct drm_encoder *encoder)
> > -{
> > -     struct dpu_encoder_virt *dpu_enc = to_dpu_encoder_virt(encoder);
> > -
> > -     debugfs_remove_recursive(dpu_enc->debugfs_root);
> > -}
> > -
> >   static int dpu_encoder_virt_add_phys_encs(
> >               struct msm_display_info *disp_info,
> >               struct dpu_encoder_virt *dpu_enc,
> > @@ -2406,7 +2391,6 @@ static const struct drm_encoder_helper_funcs dpu_encoder_helper_funcs = {
> >   static const struct drm_encoder_funcs dpu_encoder_funcs = {
> >               .destroy = dpu_encoder_destroy,
> >               .late_register = dpu_encoder_late_register,
> > -             .early_unregister = dpu_encoder_early_unregister,
> >   };
> >
> >   int dpu_encoder_setup(struct drm_device *dev, struct drm_encoder *enc,
> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> > index 1d434b22180d..9e29079a6fc4 100644
> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h
> > @@ -63,7 +63,6 @@ struct dpu_encoder_phys;
> >   /**
> >    * struct dpu_encoder_phys_ops - Interface the physical encoders provide to
> >    *  the containing virtual encoder.
> > - * @late_register:           DRM Call. Add Userspace interfaces, debugfs.
> >    * @prepare_commit:         MSM Atomic Call, start of atomic commit sequence
> >    * @is_master:                      Whether this phys_enc is the current master
> >    *                          encoder. Can be switched at enable time. Based
> > @@ -93,8 +92,6 @@ struct dpu_encoder_phys;
> >    */
> >
> >   struct dpu_encoder_phys_ops {
> > -     int (*late_register)(struct dpu_encoder_phys *encoder,
> > -                     struct dentry *debugfs_root);
> >       void (*prepare_commit)(struct dpu_encoder_phys *encoder);
> >       bool (*is_master)(struct dpu_encoder_phys *encoder);
> >       void (*atomic_mode_set)(struct dpu_encoder_phys *encoder,



-- 
With best wishes
Dmitry

  reply	other threads:[~2023-05-14 17:02 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-21  1:18 [RFC PATCH v2 00/13] drm/msm/dpu: support virtual wide planes Dmitry Baryshkov
2023-03-21  1:18 ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 01/13] drm/atomic-helper: split not-scaling part of drm_atomic_helper_check_plane_state Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 02/13] drm/msm/dpu: take plane rotation into account for wide planes Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-12 22:12   ` Abhinav Kumar
2023-05-12 22:12     ` Abhinav Kumar
2023-05-14 17:01     ` Dmitry Baryshkov
2023-05-14 17:01       ` Dmitry Baryshkov
2023-05-15 18:45       ` Abhinav Kumar
2023-05-15 18:45         ` Abhinav Kumar
2023-05-15 19:12         ` Dmitry Baryshkov
2023-05-15 19:12           ` Dmitry Baryshkov
2023-05-15 19:32           ` Abhinav Kumar
2023-05-15 19:32             ` Abhinav Kumar
2023-03-21  1:18 ` [RFC PATCH v2 03/13] drm/msm/dpu: encoder: simplify debugfs handling Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-12 22:18   ` Abhinav Kumar
2023-05-12 22:18     ` Abhinav Kumar
2023-05-14 17:02     ` Dmitry Baryshkov [this message]
2023-05-14 17:02       ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 04/13] drm/msm/dpu: remove unused fields from dpu_encoder_virt Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-06-06 20:25   ` [Freedreno] " Abhinav Kumar
2023-06-06 20:25     ` Abhinav Kumar
2023-06-06 20:29     ` Dmitry Baryshkov
2023-06-06 20:29       ` Dmitry Baryshkov
2023-06-06 20:36       ` Abhinav Kumar
2023-06-06 20:36         ` Abhinav Kumar
2023-03-21  1:18 ` [RFC PATCH v2 05/13] drm/msm/dpu: get rid of struct dpu_rm_requirements Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-12 22:39   ` Abhinav Kumar
2023-05-12 22:39     ` Abhinav Kumar
2023-05-14 17:06     ` Dmitry Baryshkov
2023-05-14 17:06       ` Dmitry Baryshkov
2023-05-17 23:53       ` Abhinav Kumar
2023-05-17 23:53         ` Abhinav Kumar
2023-05-18 23:19         ` Abhinav Kumar
2023-05-18 23:19           ` Abhinav Kumar
2023-03-21  1:18 ` [RFC PATCH v2 06/13] drm/msm/dpu: switch RM to use crtc_id rather than enc_id for allocation Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-18 23:46   ` Abhinav Kumar
2023-05-18 23:46     ` Abhinav Kumar
2023-05-19  1:50     ` Dmitry Baryshkov
2023-05-19  1:50       ` Dmitry Baryshkov
2023-05-22 22:22       ` [Freedreno] " Abhinav Kumar
2023-05-22 22:22         ` Abhinav Kumar
2023-05-23  7:25         ` Dmitry Baryshkov
2023-05-23  7:25           ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 07/13] drm/msm/dpu: move resource allocation to CRTC Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 08/13] drm/msm/dpu: fill CRTC resources in dpu_crtc.c Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 09/13] drm/msm/dpu: move pstate->pipe initialization to dpu_plane_atomic_check Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-24 22:46   ` Abhinav Kumar
2023-05-24 22:46     ` Abhinav Kumar
2023-05-24 23:04     ` [Freedreno] " Abhinav Kumar
2023-05-24 23:04       ` Abhinav Kumar
2023-05-25  1:40       ` Dmitry Baryshkov
2023-05-25  1:40         ` Dmitry Baryshkov
2023-06-06 20:27         ` Abhinav Kumar
2023-06-06 20:27           ` Abhinav Kumar
2023-03-21  1:18 ` [RFC PATCH v2 10/13] drm/msm/dpu: add list of supported formats to the DPU caps Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-24 23:16   ` Abhinav Kumar
2023-05-24 23:16     ` Abhinav Kumar
2023-05-25  1:47     ` Dmitry Baryshkov
2023-05-25  1:47       ` Dmitry Baryshkov
2023-06-06 21:14       ` Abhinav Kumar
2023-06-06 21:14         ` Abhinav Kumar
2023-06-06 21:29         ` Dmitry Baryshkov
2023-06-06 21:29           ` Dmitry Baryshkov
2023-06-06 21:47           ` Abhinav Kumar
2023-06-06 21:47             ` Abhinav Kumar
2023-06-06 21:52             ` Dmitry Baryshkov
2023-06-06 21:52               ` Dmitry Baryshkov
2023-06-06 22:47               ` Abhinav Kumar
2023-06-06 22:47                 ` Abhinav Kumar
2023-06-06 22:50                 ` Dmitry Baryshkov
2023-06-06 22:50                   ` Dmitry Baryshkov
2023-06-06 22:57                   ` [Freedreno] " Abhinav Kumar
2023-06-06 22:57                     ` Abhinav Kumar
2023-06-06 22:59                     ` Dmitry Baryshkov
2023-06-06 22:59                       ` Dmitry Baryshkov
2023-06-06 23:14                       ` Abhinav Kumar
2023-06-06 23:14                         ` Abhinav Kumar
2023-06-06 23:21                         ` Dmitry Baryshkov
2023-06-06 23:21                           ` Dmitry Baryshkov
2023-06-07  1:12                           ` Abhinav Kumar
2023-06-07  1:12                             ` Abhinav Kumar
2023-03-21  1:18 ` [RFC PATCH v2 11/13] drm/msm/dpu: add a field describing inline rotation to dpu_caps Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-05-24 23:20   ` Abhinav Kumar
2023-05-24 23:20     ` Abhinav Kumar
2023-05-25  1:47     ` Dmitry Baryshkov
2023-05-25  1:47       ` Dmitry Baryshkov
2023-03-21  1:18 ` [RFC PATCH v2 12/13] drm/msm/dpu: add support for virtual planes Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov
2023-06-07 21:05   ` Abhinav Kumar
2023-06-07 21:05     ` Abhinav Kumar
2023-06-07 21:56     ` Dmitry Baryshkov
2023-06-07 21:56       ` Dmitry Baryshkov
2023-06-08 19:51       ` Abhinav Kumar
2023-06-08 19:51         ` Abhinav Kumar
2023-06-10  0:00         ` Abhinav Kumar
2023-06-10  0:00           ` Abhinav Kumar
2023-03-21  1:18 ` [RFC PATCH v2 13/13] drm/msm/dpu: allow using two SSPP blocks for a single plane Dmitry Baryshkov
2023-03-21  1:18   ` Dmitry Baryshkov

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=CAA8EJprczWqZ9uDPujw0JbOVW6A5+NcF_isnzDmheomRg3MQjw@mail.gmail.com \
    --to=dmitry.baryshkov@linaro.org \
    --cc=airlied@gmail.com \
    --cc=andersson@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=quic_abhinavk@quicinc.com \
    --cc=robdclark@gmail.com \
    --cc=sean@poorly.run \
    --cc=swboyd@chromium.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.