From f70575805708cabdedea7498aaa3f710fde4d920 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 03:29:01 +0000 Subject: [PATCH] add lvds1024*800 --- kernel/drivers/gpu/drm/drm_pci.c | 98 ++++++++++++++++++------------------------------- 1 files changed, 36 insertions(+), 62 deletions(-) diff --git a/kernel/drivers/gpu/drm/drm_pci.c b/kernel/drivers/gpu/drm/drm_pci.c index d89a992..c250fb5 100644 --- a/kernel/drivers/gpu/drm/drm_pci.c +++ b/kernel/drivers/gpu/drm/drm_pci.c @@ -22,14 +22,20 @@ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include <linux/pci.h> -#include <linux/slab.h> #include <linux/dma-mapping.h> #include <linux/export.h> -#include <drm/drm_pci.h> -#include <drm/drmP.h> +#include <linux/pci.h> +#include <linux/slab.h> + +#include <drm/drm.h> +#include <drm/drm_agpsupport.h> +#include <drm/drm_drv.h> +#include <drm/drm_print.h> + #include "drm_internal.h" #include "drm_legacy.h" + +#ifdef CONFIG_DRM_LEGACY /** * drm_pci_alloc - Allocate a PCI consistent memory block, for DMA. @@ -59,7 +65,9 @@ return NULL; dmah->size = size; - dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size, &dmah->busaddr, GFP_KERNEL); + dmah->vaddr = dma_alloc_coherent(&dev->pdev->dev, size, + &dmah->busaddr, + GFP_KERNEL); if (dmah->vaddr == NULL) { kfree(dmah); @@ -68,20 +76,7 @@ return dmah; } - EXPORT_SYMBOL(drm_pci_alloc); - -/* - * Free a PCI consistent memory block without freeing its descriptor. - * - * This function is for internal use in the Linux-specific DRM core code. - */ -void __drm_legacy_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah) -{ - if (dmah->vaddr) - dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr, - dmah->busaddr); -} /** * drm_pci_free - Free a PCI consistent memory block @@ -93,13 +88,13 @@ */ void drm_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah) { - __drm_legacy_pci_free(dev, dmah); + dma_free_coherent(&dev->pdev->dev, dmah->size, dmah->vaddr, + dmah->busaddr); kfree(dmah); } EXPORT_SYMBOL(drm_pci_free); - -#ifdef CONFIG_PCI +#endif static int drm_get_pci_domain(struct drm_device *dev) { @@ -161,17 +156,29 @@ struct drm_irq_busid *p = data; if (!drm_core_check_feature(dev, DRIVER_LEGACY)) - return -EINVAL; + return -EOPNOTSUPP; /* UMS was only ever support on PCI devices. */ if (WARN_ON(!dev->pdev)) return -EINVAL; if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) - return -EINVAL; + return -EOPNOTSUPP; return drm_pci_irq_by_busid(dev, p); } + +void drm_pci_agp_destroy(struct drm_device *dev) +{ + if (dev->agp) { + arch_phys_wc_del(dev->agp->agp_mtrr); + drm_legacy_agp_clear(dev); + kfree(dev->agp); + dev->agp = NULL; + } +} + +#ifdef CONFIG_DRM_LEGACY static void drm_pci_agp_init(struct drm_device *dev) { @@ -187,33 +194,9 @@ } } -void drm_pci_agp_destroy(struct drm_device *dev) -{ - if (dev->agp) { - arch_phys_wc_del(dev->agp->agp_mtrr); - drm_legacy_agp_clear(dev); - kfree(dev->agp); - dev->agp = NULL; - } -} - -/** - * drm_get_pci_dev - Register a PCI device with the DRM subsystem - * @pdev: PCI device - * @ent: entry from the PCI ID table that matches @pdev - * @driver: DRM device driver - * - * Attempt to gets inter module "drm" information. If we are first - * then register the character device and inter module information. - * Try and register, if we fail to register, backout previous work. - * - * NOTE: This function is deprecated, please use drm_dev_alloc() and - * drm_dev_register() instead and remove your &drm_driver.load callback. - * - * Return: 0 on success or a negative error code on failure. - */ -int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, - struct drm_driver *driver) +static int drm_get_pci_dev(struct pci_dev *pdev, + const struct pci_device_id *ent, + struct drm_driver *driver) { struct drm_device *dev; int ret; @@ -256,7 +239,6 @@ drm_dev_put(dev); return ret; } -EXPORT_SYMBOL(drm_get_pci_dev); /** * drm_legacy_pci_init - shadow-attach a legacy DRM PCI driver @@ -305,17 +287,6 @@ } EXPORT_SYMBOL(drm_legacy_pci_init); -#else - -void drm_pci_agp_destroy(struct drm_device *dev) {} - -int drm_irq_by_busid(struct drm_device *dev, void *data, - struct drm_file *file_priv) -{ - return -EINVAL; -} -#endif - /** * drm_legacy_pci_exit - unregister shadow-attach legacy DRM driver * @driver: DRM device driver @@ -327,6 +298,7 @@ void drm_legacy_pci_exit(struct drm_driver *driver, struct pci_driver *pdriver) { struct drm_device *dev, *tmp; + DRM_DEBUG("\n"); if (!(driver->driver_features & DRIVER_LEGACY)) { @@ -341,3 +313,5 @@ DRM_INFO("Module unloaded\n"); } EXPORT_SYMBOL(drm_legacy_pci_exit); + +#endif -- Gitblit v1.6.2