[openchrome-devel] drm-openchrome: Branch 'drm-next-5.10' - 3 commits - drivers/gpu/drm

Kevin Brace kevinbrace at kemper.freedesktop.org
Mon Aug 24 18:53:26 UTC 2020


 drivers/gpu/drm/openchrome/openchrome_drv.h   |    4 
 drivers/gpu/drm/openchrome/openchrome_init.c  |  163 ++++++++------------------
 drivers/gpu/drm/openchrome/openchrome_ioctl.c |   12 -
 3 files changed, 63 insertions(+), 116 deletions(-)

New commits:
commit ba88200b18b6f20bdccebdb265e22a819f6b1c73
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 24 11:52:53 2020 -0700

    drm/openchrome: Version bumped to 3.3.1
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index 921baadd6ae2..c49eb60bf1cf 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -61,10 +61,10 @@
 
 #define DRIVER_MAJOR		3
 #define DRIVER_MINOR		3
-#define DRIVER_PATCHLEVEL	0
+#define DRIVER_PATCHLEVEL	1
 #define DRIVER_NAME		"openchrome"
 #define DRIVER_DESC		"OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE		"20200813"
+#define DRIVER_DATE		"20200824"
 #define DRIVER_AUTHOR		"OpenChrome Project"
 
 
commit b0a4f5244f8bb1e97c8de0cd9841db15af80736e
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 24 11:50:11 2020 -0700

    drm/openchrome: Move quirk handling code into openchrome_quirks_init()
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_init.c b/drivers/gpu/drm/openchrome/openchrome_init.c
index 76cefab61342..46a7838f2668 100644
--- a/drivers/gpu/drm/openchrome/openchrome_init.c
+++ b/drivers/gpu/drm/openchrome/openchrome_init.c
@@ -974,6 +974,60 @@ out_err:
 	return ret;
 }
 
+static void openchrome_quirks_init(
+			struct openchrome_drm_private *dev_private)
+{
+	struct drm_device *dev = dev_private->dev;
+
+	DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+	/*
+	 * Checking for VIA Technologies NanoBook reference design.
+	 * Examples include Everex CloudBook and Sylvania g netbook.
+	 * It is also called FIC CE260 or CE261 by its ODM (Original
+	 * Design Manufacturer) name.
+	 * This device has its strapping resistors set to a wrong
+	 * setting to handle DVI. As a result, the code needs to know
+	 * this in order to support DVI properly.
+	 */
+	if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT3157) &&
+		(dev->pdev->subsystem_vendor == 0x1509) &&
+		(dev->pdev->subsystem_device == 0x2d30)) {
+		dev_private->is_via_nanobook = true;
+	} else {
+		dev_private->is_via_nanobook = false;
+	}
+
+	/*
+	 * Check for Quanta IL1 netbook. This is necessary
+	 * due to its flat panel connected to DVP1 (Digital
+	 * Video Port 1) rather than its LVDS channel.
+	 */
+	if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) &&
+		(dev->pdev->subsystem_vendor == 0x152d) &&
+		(dev->pdev->subsystem_device == 0x0771)) {
+		dev_private->is_quanta_il1 = true;
+	} else {
+		dev_private->is_quanta_il1 = false;
+	}
+
+	/*
+	 * Samsung NC20 netbook has its FP connected to LVDS2
+	 * rather than the more logical LVDS1, hence, a special
+	 * flag register is needed for properly controlling its
+	 * FP.
+	 */
+	if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) &&
+		(dev->pdev->subsystem_vendor == 0x144d) &&
+		(dev->pdev->subsystem_device == 0xc04e)) {
+		dev_private->is_samsung_nc20 = true;
+	} else {
+		dev_private->is_samsung_nc20 = false;
+	}
+
+	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+}
+
 int openchrome_vram_init(struct openchrome_drm_private *dev_private)
 {
 	int ret = 0;
@@ -1085,75 +1139,10 @@ void openchrome_graphics_unlock(
 void chip_revision_info(struct openchrome_drm_private *dev_private)
 {
 	struct drm_device *dev = dev_private->dev;
-	struct pci_bus *bus = NULL;
-	u16 device_id, subsystem_vendor_id, subsystem_device_id;
 	u8 tmp;
-	int pci_bus;
-	u8 pci_device, pci_function;
-	int ret;
 
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
-	/*
-	 * VX800, VX855, and VX900 chipsets have Chrome IGP
-	 * connected as Bus 0, Device 1 PCI device.
-	 */
-	if ((dev->pdev->device == PCI_DEVICE_ID_VIA_VT1122) ||
-		(dev->pdev->device == PCI_DEVICE_ID_VIA_VX875) ||
-		(dev->pdev->device == PCI_DEVICE_ID_VIA_VX900_VGA)) {
-
-		pci_bus = 0;
-		pci_device = 1;
-		pci_function = 0;
-
-	/*
-	 * For all other devices, Chrome IGP is connected as
-	 * Bus 1, Device 0 PCI Device.
-	 */
-	} else {
-		pci_bus = 1;
-		pci_device = 0;
-		pci_function = 0;
-	}
-
-	bus = pci_find_bus(0, pci_bus);
-	if (!bus) {
-		goto pci_error;
-	}
-
-	ret = pci_bus_read_config_word(bus, PCI_DEVFN(pci_device,
-							pci_function),
-					PCI_DEVICE_ID,
-					&device_id);
-	if (ret) {
-		goto pci_error;
-	}
-
-	ret = pci_bus_read_config_word(bus, PCI_DEVFN(pci_device,
-							pci_function),
-					PCI_SUBSYSTEM_VENDOR_ID,
-					&subsystem_vendor_id);
-	if (ret) {
-		goto pci_error;
-	}
-
-	ret = pci_bus_read_config_word(bus, PCI_DEVFN(pci_device,
-							pci_function),
-					PCI_SUBSYSTEM_ID,
-					&subsystem_device_id);
-	if (ret) {
-		goto pci_error;
-	}
-
-	DRM_DEBUG_KMS("DRM Device ID: "
-			"0x%04x\n", dev->pdev->device);
-	DRM_DEBUG_KMS("Chrome IGP Device ID: "
-			"0x%04x\n", device_id);
-	DRM_DEBUG_KMS("Chrome IGP Subsystem Vendor ID: "
-			"0x%04x\n", subsystem_vendor_id);
-	DRM_DEBUG_KMS("Chrome IGP Subsystem Device ID: "
-			"0x%04x\n", subsystem_device_id);
-
 	switch (dev->pdev->device) {
 	/* CLE266 Chipset */
 	case PCI_DEVICE_ID_VIA_CLE266:
@@ -1180,42 +1169,9 @@ void chip_revision_info(struct openchrome_drm_private *dev_private)
 			dev_private->revision = CX700_REVISION_700;
 		}
 
-		/* Check for VIA Technologies NanoBook reference
-		 * design. This is necessary due to its strapping
-		 * resistors not being set to indicate the
-		 * availability of DVI. */
-		if ((subsystem_vendor_id == 0x1509) &&
-			(subsystem_device_id == 0x2d30)) {
-			dev_private->is_via_nanobook = true;
-		} else {
-			dev_private->is_via_nanobook = false;
-		}
-
 		break;
 	/* VX800 / VX820 Chipset */
 	case PCI_DEVICE_ID_VIA_VT1122:
-
-		/* Check for Quanta IL1 netbook. This is necessary
-		 * due to its flat panel connected to DVP1 (Digital
-		 * Video Port 1) rather than its LVDS channel. */
-		if ((subsystem_vendor_id == 0x152d) &&
-			(subsystem_device_id == 0x0771)) {
-			dev_private->is_quanta_il1 = true;
-		} else {
-			dev_private->is_quanta_il1 = false;
-		}
-
-		/* Samsung NC20 netbook has its FP connected to LVDS2
-		 * rather than the more logical LVDS1, hence, a special
-		 * flag register is needed for properly controlling its
-		 * FP. */
-		if ((subsystem_vendor_id == 0x144d) &&
-			(subsystem_device_id == 0xc04e)) {
-			dev_private->is_samsung_nc20 = true;
-		} else {
-			dev_private->is_samsung_nc20 = false;
-		}
-
 		break;
 	/* VX855 / VX875 Chipset */
 	case PCI_DEVICE_ID_VIA_VX875:
@@ -1227,10 +1183,6 @@ void chip_revision_info(struct openchrome_drm_private *dev_private)
 		break;
 	}
 
-	goto exit;
-pci_error:
-	DRM_ERROR("PCI bus related error.");
-exit:
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 }
 
@@ -1241,12 +1193,6 @@ void openchrome_flag_init(struct openchrome_drm_private *dev_private)
 	/* Set this flag for ttm_bo_device_init. */
 	dev_private->need_dma32 = true;
 
-	/*
-	 * Special handling flags for a few special models.
-	 */
-	dev_private->is_via_nanobook = false;
-	dev_private->is_quanta_il1 = false;
-
 	DRM_DEBUG_KMS("Exiting %s.\n", __func__);
 }
 
@@ -1257,6 +1203,7 @@ int openchrome_device_init(struct openchrome_drm_private *dev_private)
 	DRM_DEBUG_KMS("Entered %s.\n", __func__);
 
 	openchrome_flag_init(dev_private);
+	openchrome_quirks_init(dev_private);
 
 	ret = openchrome_vram_detect(dev_private);
 	if (ret) {
commit 0781352f17f1fac44c54b1e5f116ef63fbb233ff
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Aug 24 10:14:09 2020 -0700

    drm/openchrome: Change OpenChrome DRM uAPI internal function names
    
    There is no change to the uAPI.
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/drivers/gpu/drm/openchrome/openchrome_ioctl.c b/drivers/gpu/drm/openchrome/openchrome_ioctl.c
index d3e12df3322a..15670ca57f46 100644
--- a/drivers/gpu/drm/openchrome/openchrome_ioctl.c
+++ b/drivers/gpu/drm/openchrome/openchrome_ioctl.c
@@ -33,7 +33,7 @@
 #include "openchrome_drv.h"
 
 
-static int openchrome_gem_create(struct drm_device *dev,
+static int openchrome_gem_create_ioctl(struct drm_device *dev,
 					void *data,
 					struct drm_file *file_priv)
 {
@@ -75,7 +75,7 @@ exit:
 	return ret;
 }
 
-static int openchrome_gem_map(struct drm_device *dev,
+static int openchrome_gem_map_ioctl(struct drm_device *dev,
 					void *data,
 					struct drm_file *file_priv)
 {
@@ -101,7 +101,7 @@ exit:
 	return ret;
 }
 
-static int openchrome_gem_unmap(struct drm_device *dev,
+static int openchrome_gem_unmap_ioctl(struct drm_device *dev,
 				void *data,
 				struct drm_file *file_priv)
 {
@@ -118,9 +118,9 @@ static int openchrome_gem_unmap(struct drm_device *dev,
 
 
 const struct drm_ioctl_desc openchrome_ioctls[] = {
-	DRM_IOCTL_DEF_DRV(OPENCHROME_GEM_CREATE, openchrome_gem_create, DRM_AUTH | DRM_UNLOCKED),
-	DRM_IOCTL_DEF_DRV(OPENCHROME_GEM_MAP, openchrome_gem_map, DRM_AUTH | DRM_UNLOCKED),
-	DRM_IOCTL_DEF_DRV(OPENCHROME_GEM_UNMAP, openchrome_gem_unmap, DRM_AUTH | DRM_UNLOCKED),
+	DRM_IOCTL_DEF_DRV(OPENCHROME_GEM_CREATE, openchrome_gem_create_ioctl, DRM_AUTH | DRM_UNLOCKED),
+	DRM_IOCTL_DEF_DRV(OPENCHROME_GEM_MAP, openchrome_gem_map_ioctl, DRM_AUTH | DRM_UNLOCKED),
+	DRM_IOCTL_DEF_DRV(OPENCHROME_GEM_UNMAP, openchrome_gem_unmap_ioctl, DRM_AUTH | DRM_UNLOCKED),
 };
 
 


More information about the openchrome-devel mailing list