[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