drm connectors, tegra, and the web they weave (was Re: [PATCH 58/59] drm/todo: Add new debugfs todo)

Greg Kroah-Hartman gregkh at linuxfoundation.org
Tue Jun 18 15:19:38 UTC 2019


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 at linuxfoundation.org>
> Signed-off-by: Daniel Vetter <daniel.vetter at 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.

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.

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?

Either way, who can test these changes?  I can't even build the tegra
driver without digging up an arm64 cross-compiler, and can't test it as
I have no hardware at all.

thanks,

greg k-h


More information about the dri-devel mailing list