From: Sam Ravnborg <sam@ravnborg.org>
To: Thomas Zimmermann <tzimmermann@suse.de>
Cc: airlied@redhat.com, dri-devel@lists.freedesktop.org,
kraxel@redhat.com, emil.velikov@collabora.com
Subject: Re: [PATCH 10/14] drm/mgag200: Move device init and cleanup to mgag200_drv.c
Date: Fri, 5 Jun 2020 16:45:06 +0200 [thread overview]
Message-ID: <20200605144506.GD204352@ravnborg.org> (raw)
In-Reply-To: <20200605135803.19811-11-tzimmermann@suse.de>
On Fri, Jun 05, 2020 at 03:57:59PM +0200, Thomas Zimmermann wrote:
> Moving the initializer and cleanup functions for device instances
> to mgag200_drv.c prepares for the conversion to managed code. No
> functional changes are made. Remove mgag200_main.c, which is now
> empty.
The functions are still named xx_load() - which comes from old days
where drm_driver has a load callback.
We can always fight about naming, but I am just left with the impression
that better naming exists today.
Just a drive by comment - feel free to ignore.
Sam
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> ---
> drivers/gpu/drm/mgag200/Makefile | 3 +-
> drivers/gpu/drm/mgag200/mgag200_drv.c | 68 +++++++++++++++++++++++
> drivers/gpu/drm/mgag200/mgag200_drv.h | 4 --
> drivers/gpu/drm/mgag200/mgag200_main.c | 77 --------------------------
> 4 files changed, 69 insertions(+), 83 deletions(-)
> delete mode 100644 drivers/gpu/drm/mgag200/mgag200_main.c
>
> diff --git a/drivers/gpu/drm/mgag200/Makefile b/drivers/gpu/drm/mgag200/Makefile
> index e6a933874a88c..42fedef538826 100644
> --- a/drivers/gpu/drm/mgag200/Makefile
> +++ b/drivers/gpu/drm/mgag200/Makefile
> @@ -1,5 +1,4 @@
> # SPDX-License-Identifier: GPL-2.0-only
> -mgag200-y := mgag200_drv.o mgag200_i2c.o mgag200_main.o mgag200_mm.o \
> - mgag200_mode.o
> +mgag200-y := mgag200_drv.o mgag200_i2c.o mgag200_mm.o mgag200_mode.o
>
> obj-$(CONFIG_DRM_MGAG200) += mgag200.o
> diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.c b/drivers/gpu/drm/mgag200/mgag200_drv.c
> index ad74e02d8f251..f8bb24199643d 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_drv.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c
> @@ -39,6 +39,74 @@ static struct drm_driver mgag200_driver = {
> DRM_GEM_SHMEM_DRIVER_OPS,
> };
>
> +/*
> + * DRM device
> + */
> +
> +static int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
> +{
> + struct mga_device *mdev;
> + int ret, option;
> +
> + mdev = devm_kzalloc(dev->dev, sizeof(struct mga_device), GFP_KERNEL);
> + if (mdev == NULL)
> + return -ENOMEM;
> + dev->dev_private = (void *)mdev;
> + mdev->dev = dev;
> +
> + mdev->flags = mgag200_flags_from_driver_data(flags);
> + mdev->type = mgag200_type_from_driver_data(flags);
> +
> + pci_read_config_dword(dev->pdev, PCI_MGA_OPTION, &option);
> + mdev->has_sdram = !(option & (1 << 14));
> +
> + /* BAR 0 is the framebuffer, BAR 1 contains registers */
> + mdev->rmmio_base = pci_resource_start(dev->pdev, 1);
> + mdev->rmmio_size = pci_resource_len(dev->pdev, 1);
> +
> + if (!devm_request_mem_region(dev->dev, mdev->rmmio_base,
> + mdev->rmmio_size, "mgadrmfb_mmio")) {
> + drm_err(dev, "can't reserve mmio registers\n");
> + return -ENOMEM;
> + }
> +
> + mdev->rmmio = pcim_iomap(dev->pdev, 1, 0);
> + if (mdev->rmmio == NULL)
> + return -ENOMEM;
> +
> + /* stash G200 SE model number for later use */
> + if (IS_G200_SE(mdev)) {
> + mdev->unique_rev_id = RREG32(0x1e24);
> + drm_dbg(dev, "G200 SE unique revision id is 0x%x\n",
> + mdev->unique_rev_id);
> + }
> +
> + ret = mgag200_mm_init(mdev);
> + if (ret)
> + goto err_mm;
> +
> + ret = mgag200_modeset_init(mdev);
> + if (ret) {
> + drm_err(dev, "Fatal error during modeset init: %d\n", ret);
> + goto err_mm;
> + }
> +
> + return 0;
> +
> +err_mm:
> + dev->dev_private = NULL;
> + return ret;
> +}
> +
> +static void mgag200_driver_unload(struct drm_device *dev)
> +{
> + struct mga_device *mdev = to_mga_device(dev);
> +
> + if (mdev == NULL)
> + return;
> + dev->dev_private = NULL;
> +}
> +
> /*
> * PCI driver
> */
> diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
> index 7b6e6827a9a21..b38e5ce4ee20b 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_drv.h
> +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
> @@ -188,10 +188,6 @@ mgag200_flags_from_driver_data(kernel_ulong_t driver_data)
> /* mgag200_mode.c */
> int mgag200_modeset_init(struct mga_device *mdev);
>
> - /* mgag200_main.c */
> -int mgag200_driver_load(struct drm_device *dev, unsigned long flags);
> -void mgag200_driver_unload(struct drm_device *dev);
> -
> /* mgag200_i2c.c */
> struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev);
> void mgag200_i2c_destroy(struct mga_i2c_chan *i2c);
> diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
> deleted file mode 100644
> index 49bcdfcb40a4e..0000000000000
> --- a/drivers/gpu/drm/mgag200/mgag200_main.c
> +++ /dev/null
> @@ -1,77 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0-only
> -/*
> - * Copyright 2010 Matt Turner.
> - * Copyright 2012 Red Hat
> - *
> - * Authors: Matthew Garrett
> - * Matt Turner
> - * Dave Airlie
> - */
> -
> -#include <linux/pci.h>
> -
> -#include "mgag200_drv.h"
> -
> -int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
> -{
> - struct mga_device *mdev;
> - int ret, option;
> -
> - mdev = devm_kzalloc(dev->dev, sizeof(struct mga_device), GFP_KERNEL);
> - if (mdev == NULL)
> - return -ENOMEM;
> - dev->dev_private = (void *)mdev;
> - mdev->dev = dev;
> -
> - mdev->flags = mgag200_flags_from_driver_data(flags);
> - mdev->type = mgag200_type_from_driver_data(flags);
> -
> - pci_read_config_dword(dev->pdev, PCI_MGA_OPTION, &option);
> - mdev->has_sdram = !(option & (1 << 14));
> -
> - /* BAR 0 is the framebuffer, BAR 1 contains registers */
> - mdev->rmmio_base = pci_resource_start(dev->pdev, 1);
> - mdev->rmmio_size = pci_resource_len(dev->pdev, 1);
> -
> - if (!devm_request_mem_region(dev->dev, mdev->rmmio_base,
> - mdev->rmmio_size, "mgadrmfb_mmio")) {
> - drm_err(dev, "can't reserve mmio registers\n");
> - return -ENOMEM;
> - }
> -
> - mdev->rmmio = pcim_iomap(dev->pdev, 1, 0);
> - if (mdev->rmmio == NULL)
> - return -ENOMEM;
> -
> - /* stash G200 SE model number for later use */
> - if (IS_G200_SE(mdev)) {
> - mdev->unique_rev_id = RREG32(0x1e24);
> - drm_dbg(dev, "G200 SE unique revision id is 0x%x\n",
> - mdev->unique_rev_id);
> - }
> -
> - ret = mgag200_mm_init(mdev);
> - if (ret)
> - goto err_mm;
> -
> - ret = mgag200_modeset_init(mdev);
> - if (ret) {
> - drm_err(dev, "Fatal error during modeset init: %d\n", ret);
> - goto err_mm;
> - }
> -
> - return 0;
> -
> -err_mm:
> - dev->dev_private = NULL;
> - return ret;
> -}
> -
> -void mgag200_driver_unload(struct drm_device *dev)
> -{
> - struct mga_device *mdev = to_mga_device(dev);
> -
> - if (mdev == NULL)
> - return;
> - dev->dev_private = NULL;
> -}
> --
> 2.26.2
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2020-06-05 14:45 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-05 13:57 [PATCH 00/14] drm/mgag200: Use managed interfaces for auto-cleanup Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 01/14] drm/mgag200: Remove declaration of mgag200_mmap() from header file Thomas Zimmermann
2020-06-05 13:57 ` Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 02/14] drm/mgag200: Remove mgag200_cursor.c Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 03/14] drm/mgag200: Use pcim_enable_device() Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 04/14] drm/mgag200: Rename mgag200_ttm.c to mgag200_mm.c Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 05/14] drm/mgag200: Lookup VRAM PCI BAR start and length only once Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 06/14] drm/mgag200: Merge VRAM setup into MM initialization Thomas Zimmermann
2020-06-05 14:39 ` Sam Ravnborg
2020-06-08 13:05 ` Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 07/14] drm/mgag200: Switch to managed MM Thomas Zimmermann
2020-06-05 16:22 ` Daniel Vetter
2020-06-08 12:57 ` Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 08/14] drm/mgag200: Separate DRM and PCI functionality from each other Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 09/14] drm/mgag200: Prefix global names in mgag200_drv.c with mgag200_ Thomas Zimmermann
2020-06-05 14:42 ` Sam Ravnborg
2020-06-08 13:06 ` Thomas Zimmermann
2020-06-05 13:57 ` [PATCH 10/14] drm/mgag200: Move device init and cleanup to mgag200_drv.c Thomas Zimmermann
2020-06-05 14:45 ` Sam Ravnborg [this message]
2020-06-05 17:23 ` Thomas Zimmermann
2020-06-05 13:58 ` [PATCH 11/14] drm/mgag200: Separate device initialization into allocation Thomas Zimmermann
2020-06-05 13:58 ` [PATCH 12/14] drm/mgag200: Allocate device structures in mgag200_driver_load() Thomas Zimmermann
2020-06-05 13:58 ` [PATCH 13/14] drm/mgag200: Embed instance of struct drm_device in struct mga_device Thomas Zimmermann
2020-06-05 13:58 ` [PATCH 14/14] drm/mgag200: Use managed device initialization Thomas Zimmermann
2020-06-05 14:50 ` [PATCH 00/14] drm/mgag200: Use managed interfaces for auto-cleanup Sam Ravnborg
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=20200605144506.GD204352@ravnborg.org \
--to=sam@ravnborg.org \
--cc=airlied@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=emil.velikov@collabora.com \
--cc=kraxel@redhat.com \
--cc=tzimmermann@suse.de \
/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.