Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/mgag200: Move device init and cleanup to mgag200_drv.c

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.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200605135803.19811-11-tzimmermann@suse.de

+69 -83
+1 -2
drivers/gpu/drm/mgag200/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 - mgag200-y := mgag200_drv.o mgag200_i2c.o mgag200_main.o mgag200_mm.o \ 3 - mgag200_mode.o 2 + mgag200-y := mgag200_drv.o mgag200_i2c.o mgag200_mm.o mgag200_mode.o 4 3 5 4 obj-$(CONFIG_DRM_MGAG200) += mgag200.o
+68
drivers/gpu/drm/mgag200/mgag200_drv.c
··· 40 40 }; 41 41 42 42 /* 43 + * DRM device 44 + */ 45 + 46 + static int mgag200_driver_load(struct drm_device *dev, unsigned long flags) 47 + { 48 + struct mga_device *mdev; 49 + int ret, option; 50 + 51 + mdev = devm_kzalloc(dev->dev, sizeof(struct mga_device), GFP_KERNEL); 52 + if (mdev == NULL) 53 + return -ENOMEM; 54 + dev->dev_private = (void *)mdev; 55 + mdev->dev = dev; 56 + 57 + mdev->flags = mgag200_flags_from_driver_data(flags); 58 + mdev->type = mgag200_type_from_driver_data(flags); 59 + 60 + pci_read_config_dword(dev->pdev, PCI_MGA_OPTION, &option); 61 + mdev->has_sdram = !(option & (1 << 14)); 62 + 63 + /* BAR 0 is the framebuffer, BAR 1 contains registers */ 64 + mdev->rmmio_base = pci_resource_start(dev->pdev, 1); 65 + mdev->rmmio_size = pci_resource_len(dev->pdev, 1); 66 + 67 + if (!devm_request_mem_region(dev->dev, mdev->rmmio_base, 68 + mdev->rmmio_size, "mgadrmfb_mmio")) { 69 + drm_err(dev, "can't reserve mmio registers\n"); 70 + return -ENOMEM; 71 + } 72 + 73 + mdev->rmmio = pcim_iomap(dev->pdev, 1, 0); 74 + if (mdev->rmmio == NULL) 75 + return -ENOMEM; 76 + 77 + /* stash G200 SE model number for later use */ 78 + if (IS_G200_SE(mdev)) { 79 + mdev->unique_rev_id = RREG32(0x1e24); 80 + drm_dbg(dev, "G200 SE unique revision id is 0x%x\n", 81 + mdev->unique_rev_id); 82 + } 83 + 84 + ret = mgag200_mm_init(mdev); 85 + if (ret) 86 + goto err_mm; 87 + 88 + ret = mgag200_modeset_init(mdev); 89 + if (ret) { 90 + drm_err(dev, "Fatal error during modeset init: %d\n", ret); 91 + goto err_mm; 92 + } 93 + 94 + return 0; 95 + 96 + err_mm: 97 + dev->dev_private = NULL; 98 + return ret; 99 + } 100 + 101 + static void mgag200_driver_unload(struct drm_device *dev) 102 + { 103 + struct mga_device *mdev = to_mga_device(dev); 104 + 105 + if (mdev == NULL) 106 + return; 107 + dev->dev_private = NULL; 108 + } 109 + 110 + /* 43 111 * PCI driver 44 112 */ 45 113
-4
drivers/gpu/drm/mgag200/mgag200_drv.h
··· 188 188 /* mgag200_mode.c */ 189 189 int mgag200_modeset_init(struct mga_device *mdev); 190 190 191 - /* mgag200_main.c */ 192 - int mgag200_driver_load(struct drm_device *dev, unsigned long flags); 193 - void mgag200_driver_unload(struct drm_device *dev); 194 - 195 191 /* mgag200_i2c.c */ 196 192 struct mga_i2c_chan *mgag200_i2c_create(struct drm_device *dev); 197 193 void mgag200_i2c_destroy(struct mga_i2c_chan *i2c);
-77
drivers/gpu/drm/mgag200/mgag200_main.c
··· 1 - // SPDX-License-Identifier: GPL-2.0-only 2 - /* 3 - * Copyright 2010 Matt Turner. 4 - * Copyright 2012 Red Hat 5 - * 6 - * Authors: Matthew Garrett 7 - * Matt Turner 8 - * Dave Airlie 9 - */ 10 - 11 - #include <linux/pci.h> 12 - 13 - #include "mgag200_drv.h" 14 - 15 - int mgag200_driver_load(struct drm_device *dev, unsigned long flags) 16 - { 17 - struct mga_device *mdev; 18 - int ret, option; 19 - 20 - mdev = devm_kzalloc(dev->dev, sizeof(struct mga_device), GFP_KERNEL); 21 - if (mdev == NULL) 22 - return -ENOMEM; 23 - dev->dev_private = (void *)mdev; 24 - mdev->dev = dev; 25 - 26 - mdev->flags = mgag200_flags_from_driver_data(flags); 27 - mdev->type = mgag200_type_from_driver_data(flags); 28 - 29 - pci_read_config_dword(dev->pdev, PCI_MGA_OPTION, &option); 30 - mdev->has_sdram = !(option & (1 << 14)); 31 - 32 - /* BAR 0 is the framebuffer, BAR 1 contains registers */ 33 - mdev->rmmio_base = pci_resource_start(dev->pdev, 1); 34 - mdev->rmmio_size = pci_resource_len(dev->pdev, 1); 35 - 36 - if (!devm_request_mem_region(dev->dev, mdev->rmmio_base, 37 - mdev->rmmio_size, "mgadrmfb_mmio")) { 38 - drm_err(dev, "can't reserve mmio registers\n"); 39 - return -ENOMEM; 40 - } 41 - 42 - mdev->rmmio = pcim_iomap(dev->pdev, 1, 0); 43 - if (mdev->rmmio == NULL) 44 - return -ENOMEM; 45 - 46 - /* stash G200 SE model number for later use */ 47 - if (IS_G200_SE(mdev)) { 48 - mdev->unique_rev_id = RREG32(0x1e24); 49 - drm_dbg(dev, "G200 SE unique revision id is 0x%x\n", 50 - mdev->unique_rev_id); 51 - } 52 - 53 - ret = mgag200_mm_init(mdev); 54 - if (ret) 55 - goto err_mm; 56 - 57 - ret = mgag200_modeset_init(mdev); 58 - if (ret) { 59 - drm_err(dev, "Fatal error during modeset init: %d\n", ret); 60 - goto err_mm; 61 - } 62 - 63 - return 0; 64 - 65 - err_mm: 66 - dev->dev_private = NULL; 67 - return ret; 68 - } 69 - 70 - void mgag200_driver_unload(struct drm_device *dev) 71 - { 72 - struct mga_device *mdev = to_mga_device(dev); 73 - 74 - if (mdev == NULL) 75 - return; 76 - dev->dev_private = NULL; 77 - }