Re: [PATCH 37/59] drm/cirrus: Move to drm/tiny

Daniel Vetter
2020-04-15T09:31:15Z

On Wed, Apr 15, 2020 at 10:46 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
>
>
>
> Am 15.04.20 um 10:19 schrieb Daniel Vetter:
> > On Wed, Apr 15, 2020 at 10:01 AM Thomas Zimmermann <tzimmermann@suse.de> wrote:
> >>
> >>
> >>
> >> Am 15.04.20 um 09:40 schrieb Daniel Vetter:
> >>> Because it is. Huge congrats to everyone who made this kind of
> >>> refactoring happen!
> >>
> >> Every other week, I felt an urge to send out this patch. Thank you so
> >> much, Daniel! There are more candidates for tiny/. They are all <20k
> >> LOCs and all we'd have to do is to move their code into a single file.
>
> I meant <20k file size, not LOCs.
>
> >> bochs or arc come into my mind.
> >
> > arc I have (later in the series), bochs I feel like is maybe a bit too
> > big. I'd put the limit for tiny well below 1kloc including whitespace
> > and all that. bochs might be a candidate once we've helperized a few
> > more things perhaps.
>
> True. The largest tiny driver is repaper with ~1.1k LOCS. Reading this
> code, it seems like it has reached an upper bound of what is feasible.

Yeah, and I think the trouble there is that it contains an
epaper-specific panel abstraction. I think that's pushing it over the
edge. I think we've talked about subclassing drm_panel with
bus/device-specific stuff, that might be an option if this gets out of
hand.

Also I think we should be much stricter with putting drivers into
tiny/ than moving them out. Just so we avoid endless ping-pong, e.g.
for drivers that I can't make really tiny I wont bother with moving
them to tiny/
-Daniel

>
> Best regards
> Thomas
>
> >
> > btw I drmm_ version of vram helpers would help a bunch of these drivers I think.
> > -Daniel
> >
> >>
> >>>
> >>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> >>> Cc: Dave Airlie <airlied@redhat.com>
> >>> Cc: Gerd Hoffmann <kraxel@redhat.com>
> >>> Cc: virtualization@lists.linux-foundation.org
> >>
> >> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
> >>
> >>> ---
> >>> MAINTAINERS | 2 +-
> >>> drivers/gpu/drm/Kconfig | 2 --
> >>> drivers/gpu/drm/Makefile | 1 -
> >>> drivers/gpu/drm/cirrus/Kconfig | 19 -------------------
> >>> drivers/gpu/drm/cirrus/Makefile | 2 --
> >>> drivers/gpu/drm/tiny/Kconfig | 19 +++++++++++++++++++
> >>> drivers/gpu/drm/tiny/Makefile | 1 +
> >>> drivers/gpu/drm/{cirrus => tiny}/cirrus.c | 0
> >>> 8 files changed, 21 insertions(+), 25 deletions(-)
> >>> delete mode 100644 drivers/gpu/drm/cirrus/Kconfig
> >>> delete mode 100644 drivers/gpu/drm/cirrus/Makefile
> >>> rename drivers/gpu/drm/{cirrus => tiny}/cirrus.c (100%)
> >>>
> >>> diff --git a/MAINTAINERS b/MAINTAINERS
> >>> index 7b3255d96d1d..0a5cf105ee37 100644
> >>> --- a/MAINTAINERS
> >>> +++ b/MAINTAINERS
> >>> @@ -5397,7 +5397,7 @@ L: virtualization@lists.linux-foundation.org
> >>> S: Obsolete
> >>> W: https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
> >>> T: git git://anongit.freedesktop.org/drm/drm-misc
> >>> -F: drivers/gpu/drm/cirrus/
> >>> +F: drivers/gpu/drm/tiny/cirrus.c
> >>>
> >>> DRM DRIVER FOR QXL VIRTUAL GPU
> >>> M: Dave Airlie <airlied@redhat.com>
> >>> diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
> >>> index 43594978958e..4f4e7fa001c1 100644
> >>> --- a/drivers/gpu/drm/Kconfig
> >>> +++ b/drivers/gpu/drm/Kconfig
> >>> @@ -310,8 +310,6 @@ source "drivers/gpu/drm/ast/Kconfig"
> >>>
> >>> source "drivers/gpu/drm/mgag200/Kconfig"
> >>>
> >>> -source "drivers/gpu/drm/cirrus/Kconfig"
> >>> -
> >>> source "drivers/gpu/drm/armada/Kconfig"
> >>>
> >>> source "drivers/gpu/drm/atmel-hlcdc/Kconfig"
> >>> diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
> >>> index f34d08c83485..2c0e5a7e5953 100644
> >>> --- a/drivers/gpu/drm/Makefile
> >>> +++ b/drivers/gpu/drm/Makefile
> >>> @@ -74,7 +74,6 @@ obj-$(CONFIG_DRM_I915) += i915/
> >>> obj-$(CONFIG_DRM_MGAG200) += mgag200/
> >>> obj-$(CONFIG_DRM_V3D) += v3d/
> >>> obj-$(CONFIG_DRM_VC4) += vc4/
> >>> -obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus/
> >>> obj-$(CONFIG_DRM_SIS) += sis/
> >>> obj-$(CONFIG_DRM_SAVAGE)+= savage/
> >>> obj-$(CONFIG_DRM_VMWGFX)+= vmwgfx/
> >>> diff --git a/drivers/gpu/drm/cirrus/Kconfig b/drivers/gpu/drm/cirrus/Kconfig
> >>> deleted file mode 100644
> >>> index c6bbd988b0e5..000000000000
> >>> --- a/drivers/gpu/drm/cirrus/Kconfig
> >>> +++ /dev/null
> >>> @@ -1,19 +0,0 @@
> >>> -# SPDX-License-Identifier: GPL-2.0-only
> >>> -config DRM_CIRRUS_QEMU
> >>> - tristate "Cirrus driver for QEMU emulated device"
> >>> - depends on DRM && PCI && MMU
> >>> - select DRM_KMS_HELPER
> >>> - select DRM_GEM_SHMEM_HELPER
> >>> - help
> >>> - This is a KMS driver for emulated cirrus device in qemu.
> >>> - It is *NOT* intended for real cirrus devices. This requires
> >>> - the modesetting userspace X.org driver.
> >>> -
> >>> - Cirrus is obsolete, the hardware was designed in the 90ies
> >>> - and can't keep up with todays needs. More background:
> >>> - https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
> >>> -
> >>> - Better alternatives are:
> >>> - - stdvga (DRM_BOCHS, qemu -vga std, default in qemu 2.2+)
> >>> - - qxl (DRM_QXL, qemu -vga qxl, works best with spice)
> >>> - - virtio (DRM_VIRTIO_GPU), qemu -vga virtio)
> >>> diff --git a/drivers/gpu/drm/cirrus/Makefile b/drivers/gpu/drm/cirrus/Makefile
> >>> deleted file mode 100644
> >>> index 0c1ed3f99725..000000000000
> >>> --- a/drivers/gpu/drm/cirrus/Makefile
> >>> +++ /dev/null
> >>> @@ -1,2 +0,0 @@
> >>> -# SPDX-License-Identifier: GPL-2.0-only
> >>> -obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus.o
> >>> diff --git a/drivers/gpu/drm/tiny/Kconfig b/drivers/gpu/drm/tiny/Kconfig
> >>> index 4160e74e4751..2b6414f0fa75 100644
> >>> --- a/drivers/gpu/drm/tiny/Kconfig
> >>> +++ b/drivers/gpu/drm/tiny/Kconfig
> >>> @@ -1,5 +1,24 @@
> >>> # SPDX-License-Identifier: GPL-2.0-only
> >>>
> >>> +config DRM_CIRRUS_QEMU
> >>> + tristate "Cirrus driver for QEMU emulated device"
> >>> + depends on DRM && PCI && MMU
> >>> + select DRM_KMS_HELPER
> >>> + select DRM_GEM_SHMEM_HELPER
> >>> + help
> >>> + This is a KMS driver for emulated cirrus device in qemu.
> >>> + It is *NOT* intended for real cirrus devices. This requires
> >>> + the modesetting userspace X.org driver.
> >>> +
> >>> + Cirrus is obsolete, the hardware was designed in the 90ies
> >>> + and can't keep up with todays needs. More background:
> >>> + https://www.kraxel.org/blog/2014/10/qemu-using-cirrus-considered-harmful/
> >>> +
> >>> + Better alternatives are:
> >>> + - stdvga (DRM_BOCHS, qemu -vga std, default in qemu 2.2+)
> >>> + - qxl (DRM_QXL, qemu -vga qxl, works best with spice)
> >>> + - virtio (DRM_VIRTIO_GPU), qemu -vga virtio)
> >>> +
> >>> config DRM_GM12U320
> >>> tristate "GM12U320 driver for USB projectors"
> >>> depends on DRM && USB
> >>> diff --git a/drivers/gpu/drm/tiny/Makefile b/drivers/gpu/drm/tiny/Makefile
> >>> index c96ceee71453..6ae4e9e5a35f 100644
> >>> --- a/drivers/gpu/drm/tiny/Makefile
> >>> +++ b/drivers/gpu/drm/tiny/Makefile
> >>> @@ -1,5 +1,6 @@
> >>> # SPDX-License-Identifier: GPL-2.0-only
> >>>
> >>> +obj-$(CONFIG_DRM_CIRRUS_QEMU) += cirrus.o
> >>> obj-$(CONFIG_DRM_GM12U320) += gm12u320.o
> >>> obj-$(CONFIG_TINYDRM_HX8357D) += hx8357d.o
> >>> obj-$(CONFIG_TINYDRM_ILI9225) += ili9225.o
> >>> diff --git a/drivers/gpu/drm/cirrus/cirrus.c b/drivers/gpu/drm/tiny/cirrus.c
> >>> similarity index 100%
> >>> rename from drivers/gpu/drm/cirrus/cirrus.c
> >>> rename to drivers/gpu/drm/tiny/cirrus.c
> >>>
> >>
> >> --
> >> Thomas Zimmermann
> >> Graphics Driver Developer
> >> SUSE Software Solutions Germany GmbH
> >> Maxfeldstr. 5, 90409 Nürnberg, Germany
> >> (HRB 36809, AG Nürnberg)
> >> Geschäftsführer: Felix Imendörffer
> >>
> >
> >
>
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Maxfeldstr. 5, 90409 Nürnberg, Germany
> (HRB 36809, AG Nürnberg)
> Geschäftsführer: Felix Imendörffer
>

--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org