All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@gmail.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Intel Graphics Development <intel-gfx@lists.freedesktop.org>,
	DRI Development <dri-devel@lists.freedesktop.org>,
	Jonathan Hunter <jonathanh@nvidia.com>,
	linux-tegra@vger.kernel.org,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: drm connectors, tegra, and the web they weave (was Re: [PATCH 58/59] drm/todo: Add new debugfs todo)
Date: Thu, 20 Jun 2019 17:11:17 +0200	[thread overview]
Message-ID: <20190620151117.GD15501@ulmo> (raw)
In-Reply-To: <CAKMK7uEd0sZ81RMjDsz6cnkW+krPuvoqUcEY4U3ofB9W_qeFvA@mail.gmail.com>


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

On Tue, Jun 18, 2019 at 07:32:20PM +0200, Daniel Vetter wrote:
> On Tue, Jun 18, 2019 at 5:25 PM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > On Tue, Jun 18, 2019 at 05:19:38PM +0200, Greg Kroah-Hartman wrote:
> > > On Fri, Jun 14, 2019 at 10:36:14PM +0200, Daniel Vetter wrote:
> > > > Greg is busy already, but maybe he won't do everything ...
> > > >
> > > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > > > ---
> > > >  Documentation/gpu/todo.rst | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > >
> > > > diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
> > > > index 9717540ee28f..026e55c517e1 100644
> > > > --- a/Documentation/gpu/todo.rst
> > > > +++ b/Documentation/gpu/todo.rst
> > > > @@ -375,6 +375,9 @@ There's a bunch of issues with it:
> > > >    this (together with the drm_minor->drm_device move) would allow us to remove
> > > >    debugfs_init.
> > > >
> > > > +- Drop the return code and error checking from all debugfs functions. Greg KH is
> > > > +  working on this already.
> > >
> > >
> > > Part of this work was to try to delete drm_debugfs_remove_files().
> > >
> > > There are only 4 files that currently still call this function:
> > >       drivers/gpu/drm/tegra/dc.c
> > >       drivers/gpu/drm/tegra/dsi.c
> > >       drivers/gpu/drm/tegra/hdmi.c
> > >       drivers/gpu/drm/tegra/sor.c
> > >
> > > For dc.c, the driver wants to add debugfs files to the struct drm_crtc
> > > debugfs directory.  Which is fine, but it has to do some special memory
> > > allocation to get the debugfs callback to point not to the struct
> > > drm_minor pointer, but rather the drm_crtc structure.
> 
> There's already a todo to switch the drm_minor debugfs stuff over to
> drm_device. drm_minor is essentially different uapi flavours (/dev/
> minor nodes, hence the name) sitting on top of the same drm_device.
> Last time I checked all the debugfs files want the drm_device, not the
> minor. I think we even discussed to only register the debugfs files
> for the first minor, and create the other ones as symlinks to the
> first one. But haven't yet gotten around to typing that.
> 
> drm_crtc/connector are parts of drm_device with modesetting support,
> so the drm_minor is even worse choice really.

For the connector drivers we already sit on top of the per-connector
debugfs directories. I think the only reason why we don't do that for
the display controller is because drm_crtc didn't have built-in debugfs
support like the connectors have. It looks like that's no longer true,
though it's been there for a while. I think it'd be good to just move
those over as well.

As for passing struct drm_minor, I think that's mostly unnecessary. As
far as I can tell, we only use drm_minor to get at drm_device, which in
turn we only use to check some features flags, and drm_minor itself is
only used to track the list of files that are being added so that they
can later be removed again. Given that we can just tear down everything
debugfs recursively, I don't think we need any of that.

> 
> Not exactly sure why we went with this, but probably dates back to the
> *bsd compat layer and a lot of these files hanging out in procfs too
> (we've fixed those mistakes a few years ago, yay!).
> 
> > > So, to remove this call, I need to remove this special memory allocation
> > > and to do that, I need to somehow be able to cast from drm_minor back to
> > > the drm_crtc structure being used in this driver.  And I can't figure
> > > how they are related at all.
> > >
> > > Any pointers here (pun intended) would be appreciated.
> > >
> > > For the other 3 files, the situation is much the same, but I need to get
> > > from a 'struct drm_minor' pointer to a 'struct drm_connector' pointer.
> 
> Ditch the drm_minor, there's no no way to get from that to something
> like drm_connector/crtc, since it's a n:m relationship.

Yeah. That too.

> > > I could just "open code" a bunch of calls to debugfs_create_file() for
> > > these drivers, which would solve this issue, but in a more "non-drm"
> > > way.  Is it worth to just do that instead of overthinking the whole
> > > thing and trying to squish it into the drm "model" of drm debugfs calls?
> >
> > An example of "open coding" this is the patch below for the sor.c
> > driver.
> 
> I think open-coding is the way to go here. One of the todos is to
> extend debugfs support for crtc/connectors, but looking at the
> open-coded version we really don't need a drm-flavoured midlayer here.

Exactly my thoughts. It'd be nice to have some sort of macro to help
bring the boilerplate down a bit.

Thierry

> > Totally untested, not even built, but you should get the idea here.
> >
> > thanks,
> >
> > greg k-h
> >
> > ---------------
> >
> > diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
> > index 5be5a0817dfe..3216221c77c4 100644
> > --- a/drivers/gpu/drm/tegra/sor.c
> > +++ b/drivers/gpu/drm/tegra/sor.c
> > @@ -414,7 +414,8 @@ struct tegra_sor {
> >
> >         struct drm_dp_aux *aux;
> >
> > -       struct drm_info_list *debugfs_files;
> > +       struct dentry *debugfs_root;
> > +       struct drm_device *drm;
> >
> >         const struct tegra_sor_ops *ops;
> >         enum tegra_io_pad pad;
> > @@ -1262,10 +1263,9 @@ static int tegra_sor_crc_wait(struct tegra_sor *sor, unsigned long timeout)
> >
> >  static int tegra_sor_show_crc(struct seq_file *s, void *data)
> >  {
> > -       struct drm_info_node *node = s->private;
> > -       struct tegra_sor *sor = node->info_ent->data;
> > +       struct tegra_sor *sor = s->private;
> >         struct drm_crtc *crtc = sor->output.encoder.crtc;
> > -       struct drm_device *drm = node->minor->dev;
> > +       struct drm_device *drm = sor->drm;
> >         int err = 0;
> >         u32 value;
> >
> > @@ -1302,6 +1302,20 @@ static int tegra_sor_show_crc(struct seq_file *s, void *data)
> >         return err;
> >  }
> >
> > +static int crc_open(struct inode *inode, struct file *file)
> > +{
> > +       struct tegra_sor *sor = inode->i_private;
> > +       return single_open(file, tegra_sor_show_crc, sor);
> > +}
> > +
> > +static const struct file_operations crc_fops = {
> > +       .owner = THIS_MODULE,
> > +       .open = crc_open,
> > +       .read = seq_read,
> > +       .llseek = seq_lseek,
> > +       .release = single_release,
> > +};
> 
> Hm, is there not a macro to create such simple files with read/write
> ops? At least for sysfs this is a bit less boilerplate iirc.
> 
> > +
> >  #define DEBUGFS_REG32(_name) { .name = #_name, .offset = _name }
> >
> >  static const struct debugfs_reg32 tegra_sor_regs[] = {
> > @@ -1424,10 +1438,9 @@ static const struct debugfs_reg32 tegra_sor_regs[] = {
> >
> >  static int tegra_sor_show_regs(struct seq_file *s, void *data)
> >  {
> > -       struct drm_info_node *node = s->private;
> > -       struct tegra_sor *sor = node->info_ent->data;
> > +       struct tegra_sor *sor = s->private;
> >         struct drm_crtc *crtc = sor->output.encoder.crtc;
> > -       struct drm_device *drm = node->minor->dev;
> > +       struct drm_device *drm = sor->drm;
> 
> sor->output.connector.dev should give you this already. And I think
> getting at the drm_device is the only reason we needed the drm_minor
> here at all.
> 
> >         unsigned int i;
> >         int err = 0;
> >
> > @@ -1450,51 +1463,44 @@ static int tegra_sor_show_regs(struct seq_file *s, void *data)
> >         return err;
> >  }
> >
> > -static const struct drm_info_list debugfs_files[] = {
> > -       { "crc", tegra_sor_show_crc, 0, NULL },
> > -       { "regs", tegra_sor_show_regs, 0, NULL },
> > +static int regs_open(struct inode *inode, struct file *file)
> > +{
> > +       struct tegra_sor *sor = inode->i_private;
> > +       return single_open(file, tegra_sor_show_regs, sor);
> > +}
> > +
> > +static const struct file_operations crc_fops = {
> > +       .owner = THIS_MODULE,
> > +       .open = crc_open,
> > +       .read = seq_read,
> > +       .llseek = seq_lseek,
> > +       .release = single_release,
> >  };
> >
> >  static int tegra_sor_late_register(struct drm_connector *connector)
> >  {
> > -       struct tegra_output *output = connector_to_output(connector);
> > -       unsigned int i, count = ARRAY_SIZE(debugfs_files);
> >         struct drm_minor *minor = connector->dev->primary;
> > -       struct dentry *root = connector->debugfs_entry;
> > +       struct tegra_output *output = connector_to_output(connector);
> >         struct tegra_sor *sor = to_sor(output);
> > -       int err;
> > +       struct dentry *root;
> >
> > -       sor->debugfs_files = kmemdup(debugfs_files, sizeof(debugfs_files),
> > -                                    GFP_KERNEL);
> > -       if (!sor->debugfs_files)
> > -               return -ENOMEM;
> > +       sor->drm = minor->dev;
> >
> > -       for (i = 0; i < count; i++)
> > -               sor->debugfs_files[i].data = sor;
> > +       root = debugfs_create_dir("sor", connector->debugfs_entry);
> 
> Hm I think the old files got created right in the
> drm_connector->debugfs_entry directory?
> 
> > +       sor->debugfs_root = root;
> >
> > -       err = drm_debugfs_create_files(sor->debugfs_files, count, root, minor);
> > -       if (err < 0)
> > -               goto free;
> > +       debugfs_create_file("crc", S_IFREG | S_IRUGO, root, sor, &crc_fops);
> > +       debugfs_create_file("regs", S_IFREG | S_IRUGO, root, sor, &regs_fops);
> >
> >         return 0;
> > -
> > -free:
> > -       kfree(sor->debugfs_files);
> > -       sor->debugfs_files = NULL;
> > -
> > -       return err;
> >  }
> 
> I think if you can create a debugfs-simple-file macro, this here would
> win hands-down from a boilerplate pov. I like.

I fully agree with this and all of your points above.

> >  static void tegra_sor_early_unregister(struct drm_connector *connector)
> >  {
> >         struct tegra_output *output = connector_to_output(connector);
> > -       unsigned int count = ARRAY_SIZE(debugfs_files);
> >         struct tegra_sor *sor = to_sor(output);
> >
> > -       drm_debugfs_remove_files(sor->debugfs_files, count,
> > -                                connector->dev->primary);
> > -       kfree(sor->debugfs_files);
> > -       sor->debugfs_files = NULL;
> > +       debugfs_remove_recursive(sor->debugfs_root);
> 
> Not needed, we tear down everything as part of drm_dev_unregister
> anyway. So you can ditch this.

And this. Greg, let me know if you need a hand with the patches or if
you want any of these to be build/runtime tested.

Thierry

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

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

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

  parent reply	other threads:[~2019-06-20 15:11 UTC|newest]

Thread overview: 215+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-14 20:35 [PATCH 00/59] prime doc polish and ... a few cleanups Daniel Vetter
2019-06-14 20:35 ` [PATCH 01/59] drm/todo: Improve drm_gem_object funcs todo Daniel Vetter
2019-06-14 20:44   ` Rob Herring
2019-06-14 22:53   ` Eric Anholt
2019-06-17 14:03     ` Daniel Vetter
2019-06-17  6:02   ` Gerd Hoffmann
2019-06-17 15:47   ` Noralf Trønnes
2019-06-17 16:29     ` Daniel Vetter
2019-06-17 16:54       ` Noralf Trønnes
2019-06-17 21:20         ` Daniel Vetter
2019-06-17 22:12           ` Noralf Trønnes
2019-06-18 14:02   ` [PATCH] drm/todo: Update drm_gem_object_funcs todo even more Daniel Vetter
2019-06-18 14:15     ` Noralf Trønnes
2019-06-18 18:25     ` Eric Engestrom
2019-06-20 12:52       ` Daniel Vetter
2019-06-27 12:15   ` [PATCH 01/59] drm/todo: Improve drm_gem_object funcs todo Thomas Zimmermann
2019-06-14 20:35 ` [PATCH 02/59] drm/gem: Unexport drm_gem_(un)pin/v(un)map Daniel Vetter
2019-06-14 20:35 ` [PATCH 03/59] drm/prime: Update docs Daniel Vetter
2019-06-15 11:41   ` Sam Ravnborg
2019-06-17 16:38     ` Daniel Vetter
2019-06-17 17:01       ` Sam Ravnborg
2019-06-17 17:47   ` Emil Velikov
2019-06-18  9:20   ` [PATCH 1/2] drm/prime: Shuffle functions Daniel Vetter
2019-06-18  9:20     ` [PATCH 2/2] drm/prime: Update docs Daniel Vetter
2019-06-19  9:03       ` Daniel Vetter
2019-06-19 10:21       ` Gerd Hoffmann
2019-06-19 10:50       ` Emil Velikov
2019-06-19 12:43       ` Noralf Trønnes
2019-06-20 12:44         ` Daniel Vetter
2019-06-20 12:46       ` [PATCH] " Daniel Vetter
2019-06-19 10:18     ` [PATCH 1/2] drm/prime: Shuffle functions Gerd Hoffmann
2019-06-19 10:47     ` Emil Velikov
2019-06-19 12:09     ` Noralf Trønnes
2019-06-14 20:35 ` [PATCH 04/59] drm/prime: Unconditionally set up the prime file private Daniel Vetter
2019-06-14 20:35 ` [PATCH 05/59] drm/prime: Make DRIVER_PRIME a no-op Daniel Vetter
2019-06-17 17:53   ` Emil Velikov
2019-06-14 20:35 ` [PATCH 06/59] drm/prime: Actually remove DRIVER_PRIME everywhere Daniel Vetter
2019-06-14 20:35 ` [PATCH 07/59] drm/arm/komeda: Remove DRIVER_HAVE_IRQ Daniel Vetter
2019-06-17  6:26   ` james qian wang (Arm Technology China)
2019-06-17 13:43     ` Daniel Vetter
2019-06-18  4:41       ` james qian wang (Arm Technology China)
2019-06-18  5:04         ` james qian wang (Arm Technology China)
2019-06-17 18:01     ` Emil Velikov
2019-06-19 10:11   ` Liviu Dudau
2019-06-14 20:35 ` [PATCH 08/59] drm/omapdrm: drop fb_debug_enter/leave Daniel Vetter
2019-06-14 20:35 ` [PATCH 10/59] drm/arc: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-14 20:35 ` [PATCH 11/59] drm/arm: " Daniel Vetter
2019-06-17  3:22   ` james qian wang (Arm Technology China)
2019-06-19 10:11   ` Liviu Dudau
2019-06-14 20:35 ` [PATCH 12/59] drm/atmel: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-14 21:43   ` Sam Ravnborg
2019-06-14 21:43     ` Sam Ravnborg
2019-06-14 20:35 ` [PATCH 13/59] drm/etnaviv: " Daniel Vetter
2019-06-16  7:02   ` Christian Gmeiner
2019-06-25 16:12   ` Lucas Stach
2019-06-14 20:35 ` [PATCH 14/59] drm/exynos: Drop drm_gem_prime_export Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 15/59] drm/fsl-dcu: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-17 13:58   ` Stefan Agner
2019-06-14 20:35 ` [PATCH 16/59] drm/hisilicon: " Daniel Vetter
2019-06-14 21:29   ` Sam Ravnborg
2019-06-14 20:35 ` [PATCH 17/59] drm/imx: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 18/59] drm/mcde: " Daniel Vetter
2019-06-15  8:31   ` Linus Walleij
2019-06-14 20:35 ` [PATCH 19/59] drm/mtk: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-17  1:51   ` CK Hu
2019-06-17  1:51     ` CK Hu
2019-06-14 20:35 ` [PATCH 20/59] drm/meson: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-18  9:48   ` Neil Armstrong
2019-06-18  9:48     ` Neil Armstrong
2019-06-18  9:48     ` Neil Armstrong
2019-06-14 20:35 ` [PATCH 21/59] drm/msm: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 22/59] drm/mxsfb: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-17 13:59   ` Stefan Agner
2019-06-17 13:59     ` Stefan Agner
2019-06-14 20:35 ` [PATCH 24/59] drm/pl111: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 25/59] drm/qxl: " Daniel Vetter
2019-06-17  6:03   ` Gerd Hoffmann
2019-06-17  6:03   ` Gerd Hoffmann
2019-06-14 20:35 ` [PATCH 26/59] drm/rcar-du: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-18  7:35   ` Laurent Pinchart
2019-06-18  7:35     ` Laurent Pinchart
2019-06-14 20:35 ` [PATCH 27/59] drm/rockchip: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-15 22:36   ` Heiko Stuebner
2019-06-15 22:36     ` Heiko Stuebner
2019-06-14 20:35 ` [PATCH 28/59] drm/shmob: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-18  7:35   ` Laurent Pinchart
2019-06-18  7:35     ` Laurent Pinchart
2019-06-14 20:35 ` [PATCH 29/59] drm/sti: " Daniel Vetter
2019-06-20 15:08   ` Benjamin Gaignard
2019-06-14 20:35 ` [PATCH 30/59] drm/stm: " Daniel Vetter
2019-06-14 20:35   ` Daniel Vetter
2019-06-18  9:55   ` Philippe CORNU
2019-06-18  9:55     ` Philippe CORNU
2019-06-14 20:35 ` [PATCH 31/59] drm/tilcdc: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 32/59] drm/tve2000: " Daniel Vetter
2019-06-15  8:34   ` Linus Walleij
2019-06-15  9:14     ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 33/59] drm/vboxvideo: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 34/59] drm/vc3: Drop drm_gem_prime_import Daniel Vetter
2019-06-14 20:35 ` [PATCH 35/59] drm/radeon: " Daniel Vetter
2019-06-14 20:35 ` [PATCH 36/59] drm/vgem: Drop drm_gem_prime_export Daniel Vetter
2019-06-14 20:35 ` [PATCH 37/59] drm/virtio: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-17  6:03   ` Gerd Hoffmann
2019-06-17  6:03   ` Gerd Hoffmann
2019-06-14 20:35 ` [PATCH 38/59] drm/xen: " Daniel Vetter
2019-06-14 20:35   ` [Xen-devel] " Daniel Vetter
2019-06-18  5:05   ` Oleksandr Andrushchenko
2019-06-18  5:05     ` Oleksandr Andrushchenko
2019-06-14 20:35 ` [PATCH 39/59] drm/zte: " Daniel Vetter
2019-06-18 13:15   ` Shawn Guo
2019-06-14 20:35 ` [PATCH 40/59] drm/vram-helper: " Daniel Vetter
2019-06-17  6:03   ` Gerd Hoffmann
2019-06-17  8:24   ` Gerd Hoffmann
2019-06-17 13:59     ` Daniel Vetter
2019-06-18  4:49       ` Gerd Hoffmann
2019-06-18  7:59         ` Daniel Vetter
2019-06-19 11:21           ` Gerd Hoffmann
2019-06-19 11:31             ` Daniel Vetter
2019-06-27  8:27       ` Thomas Zimmermann
2019-06-27  9:59         ` Daniel Vetter
2019-06-14 20:35 ` [PATCH 41/59] drm/prime: automatically set gem_obj->resv on import Daniel Vetter
2019-06-14 20:35 ` [PATCH 42/59] drm/etnaviv: Drop resv argument from etnaviv_gem_new_impl Daniel Vetter
2019-06-25 16:10   ` Lucas Stach
2019-06-14 20:35 ` [PATCH 43/59] drm/lima: Drop resv argument from lima_bo_create_struct Daniel Vetter
2019-06-15 10:03   ` Qiang Yu
2019-06-14 20:36 ` [PATCH 44/59] drm/mediatek: Use drm_atomic_helper_wait_for_fences Daniel Vetter
2019-06-14 20:36   ` Daniel Vetter
2019-06-17  5:19   ` CK Hu
2019-06-17  5:19     ` CK Hu
2019-06-14 20:36 ` [PATCH 45/59] drm/msm: Drop robj from msm_gem_new_impl Daniel Vetter
2019-06-14 20:36   ` Daniel Vetter
2019-06-14 20:36 ` [PATCH 46/59] drm/panfrost: don't set gem_obj->resv for prime import anymore Daniel Vetter
2019-06-14 21:05   ` Rob Herring
2019-06-14 20:36 ` [PATCH 47/59] drm/vc4: Don set gem_obj->resv in " Daniel Vetter
2019-06-14 20:36 ` [PATCH 48/59] drm/vgem: Ditch attach trickery in the fence ioctl Daniel Vetter
2019-06-18 12:31   ` Chris Wilson
2019-06-18 13:18     ` Daniel Vetter
2019-06-14 20:36 ` [PATCH 49/59] drm/msm: Use drm_gem_fb_prepare_fb Daniel Vetter
2019-06-14 20:36   ` Daniel Vetter
2019-06-14 20:36 ` [PATCH 50/59] drm/vc4: " Daniel Vetter
     [not found] ` <20190614203615.12639-1-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-14 20:35   ` [PATCH 06/59] drm/prime: Actually remove DRIVER_PRIME everywhere Daniel Vetter
2019-06-14 20:35     ` Daniel Vetter
2019-06-14 20:35     ` [Xen-devel] " Daniel Vetter
2019-06-14 20:35     ` Daniel Vetter
2019-06-14 20:35     ` Daniel Vetter
2019-06-14 21:36     ` Sam Ravnborg
2019-06-17 15:39     ` [PATCH] " Daniel Vetter
     [not found]     ` <20190614203615.12639-7-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-14 21:36       ` [PATCH 06/59] " Sam Ravnborg
2019-06-14 21:36         ` Sam Ravnborg
2019-06-14 21:36         ` [Xen-devel] " Sam Ravnborg
2019-06-14 21:36         ` Sam Ravnborg
2019-06-14 21:36         ` Sam Ravnborg
2019-06-17 15:39       ` [PATCH] " Daniel Vetter
2019-06-17 15:39         ` Daniel Vetter
2019-06-17 15:39         ` [Xen-devel] " Daniel Vetter
2019-06-17 15:39         ` Daniel Vetter
2019-06-17 15:39         ` Daniel Vetter
2019-06-17 17:56     ` [PATCH 06/59] " Emil Velikov
2019-06-17 17:56       ` Emil Velikov
2019-06-17 17:56       ` [Xen-devel] " Emil Velikov
2019-06-17 17:56       ` Emil Velikov
2019-06-17 17:56       ` Emil Velikov
2019-06-14 20:35   ` [PATCH 09/59] drm/prime: Align gem_prime_export with obj_funcs.export Daniel Vetter
     [not found]     ` <20190614203615.12639-10-daniel.vetter-/w4YWyX8dFk@public.gmane.org>
2019-06-17  9:32       ` Koenig, Christian
2019-06-17  9:53       ` Thierry Reding
2019-06-21 10:37       ` Daniel Vetter
2019-06-14 20:35   ` [PATCH 23/59] drm/nouveau: Drop drm_gem_prime_export/import Daniel Vetter
2019-06-14 20:36   ` [PATCH 51/59] drm/radeon: Fill out gem_object->resv Daniel Vetter
2019-06-14 20:36 ` [PATCH 52/59] drm/nouveau: " Daniel Vetter
2019-06-14 20:36 ` [PATCH 53/59] drm/amdgpu: " Daniel Vetter
2019-06-14 20:36 ` [PATCH 54/59] drm/prime: Ditch gem_prime_res_obj hook Daniel Vetter
2019-06-14 20:36 ` [PATCH 55/59] drm/todo: remove gem_prime_import/export todo Daniel Vetter
2019-06-14 20:36 ` [PATCH 56/59] drm/todo: Update backlight todo Daniel Vetter
2019-06-14 21:46   ` Sam Ravnborg
2019-06-21 13:11   ` Daniel Thompson
2019-06-14 20:36 ` [PATCH 57/59] drm/todo: Update mmap todo Daniel Vetter
2019-06-14 20:36 ` [PATCH 58/59] drm/todo: Add new debugfs todo Daniel Vetter
2019-06-15  6:23   ` Greg Kroah-Hartman
2019-06-18 15:19   ` drm connectors, tegra, and the web they weave (was Re: [PATCH 58/59] drm/todo: Add new debugfs todo) Greg Kroah-Hartman
2019-06-18 15:25     ` Greg Kroah-Hartman
2019-06-18 17:32       ` Daniel Vetter
2019-06-18 18:01         ` Greg Kroah-Hartman
2019-06-18 21:46           ` Daniel Vetter
2019-06-20 14:50             ` Thierry Reding
2019-06-20 15:11         ` Thierry Reding [this message]
2019-06-18 15:37     ` Jon Hunter
2019-06-20 15:16       ` Thierry Reding
2019-06-20 14:57     ` Thierry Reding
2019-06-14 20:36 ` [PATCH 59/59] drm/doc: Document kapi doc expectations Daniel Vetter
2019-06-17  8:52   ` Jani Nikula
2019-06-14 21:02 ` ✗ Fi.CI.CHECKPATCH: warning for prime doc polish and ... a few cleanups Patchwork
2019-06-14 21:16 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-06-15  6:55 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-17 10:14 ` ✓ Fi.CI.IGT: " Patchwork
2019-06-17 18:21 ` [Intel-gfx] [PATCH 00/59] " Emil Velikov
2019-06-18 10:41   ` Emil Velikov
2019-06-17 18:28 ` ✗ Fi.CI.CHECKPATCH: warning for prime doc polish and ... a few cleanups (rev2) Patchwork
2019-06-17 18:42 ` ✗ Fi.CI.SPARSE: " Patchwork
2019-06-17 18:49 ` ✓ Fi.CI.BAT: success " Patchwork
2019-06-18  8:20 ` ✓ Fi.CI.IGT: " Patchwork
2019-06-18  9:55 ` ✗ Fi.CI.BAT: failure for prime doc polish and ... a few cleanups (rev4) Patchwork
2019-06-18 14:48 ` ✗ Fi.CI.BAT: failure for prime doc polish and ... a few cleanups (rev5) Patchwork
2019-06-18 15:56 ` ✗ Fi.CI.BAT: failure for prime doc polish and ... a few cleanups (rev6) Patchwork
2019-06-20 17:17 ` ✗ Fi.CI.BAT: failure for prime doc polish and ... a few cleanups (rev7) Patchwork

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=20190620151117.GD15501@ulmo \
    --to=thierry.reding@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-tegra@vger.kernel.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.