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

Daniel Vetter daniel.vetter at ffwll.ch
Wed Apr 15 09:31:15 UTC 2020


On Wed, Apr 15, 2020 at 10:46 AM Thomas Zimmermann <tzimmermann at 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 at 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 at intel.com>
> >>> Cc: Dave Airlie <airlied at redhat.com>
> >>> Cc: Gerd Hoffmann <kraxel at redhat.com>
> >>> Cc: virtualization at lists.linux-foundation.org
> >>
> >> Reviewed-by: Thomas Zimmermann <tzimmermann at 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 at 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 at 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


More information about the dri-devel mailing list