[openchrome-devel] drm-openchrome: Branch 'drm-next-5.10' - 7 commits - drivers/gpu/drm
Kevin Brace
kevinbrace at kemper.freedesktop.org
Tue Sep 8 20:01:42 UTC 2020
drivers/gpu/drm/openchrome/openchrome_crtc.c | 186 ++++++++++++------------
drivers/gpu/drm/openchrome/openchrome_display.c | 16 --
drivers/gpu/drm/openchrome/openchrome_drv.c | 6
drivers/gpu/drm/openchrome/openchrome_drv.h | 9 -
drivers/gpu/drm/openchrome/openchrome_init.c | 20 +-
5 files changed, 110 insertions(+), 127 deletions(-)
New commits:
commit 4d7180297bbdcaf665815a41a4d713187eedf425
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 13:01:18 2020 -0700
drm/openchrome: Version bumped to 3.3.2
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 408519b33f4e..5c1f15b8aa33 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 1
+#define DRIVER_PATCHLEVEL 2
#define DRIVER_NAME "openchrome"
#define DRIVER_DESC "OpenChrome DRM for VIA Technologies Chrome IGP"
-#define DRIVER_DATE "20200824"
+#define DRIVER_DATE "20200908"
#define DRIVER_AUTHOR "OpenChrome Project"
commit f98964ffdb3279f4b0bce83717c5fbb6461c1c19
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 12:57:48 2020 -0700
drm/openchrome: Omit KMS check before initializing KMS
Checking for KMS is not really necessary since the code itself knows
that it supports KMS.
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.c b/drivers/gpu/drm/openchrome/openchrome_drv.c
index bec5563ca74a..cdbf293c4bc5 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.c
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.c
@@ -191,12 +191,10 @@ static int openchrome_driver_load(struct drm_device *dev,
chip_revision_info(dev_private);
- if (drm_core_check_feature(dev, DRIVER_MODESET)) {
- ret = via_modeset_init(dev);
- if (ret) {
+ ret = via_modeset_init(dev);
+ if (ret) {
DRM_ERROR("Failed to initialize mode setting.\n");
goto init_error;
- }
}
goto exit;
commit bf0cb30e42bab2c5c17cf765af37f75e2e118459
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 12:57:33 2020 -0700
drm/openchrome: Use drm_mode_config_cleanup() for teardown
drm_mode_config_cleanup() is already being called when tearing down
various initialized resources, so stop doing it ourselves inside
via_modeset_fini().
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/drivers/gpu/drm/openchrome/openchrome_display.c b/drivers/gpu/drm/openchrome/openchrome_display.c
index 770036b50c0e..63cee530bc45 100644
--- a/drivers/gpu/drm/openchrome/openchrome_display.c
+++ b/drivers/gpu/drm/openchrome/openchrome_display.c
@@ -517,23 +517,11 @@ exit:
void via_modeset_fini(struct drm_device *dev)
{
- struct drm_connector *connector, *ot;
- struct drm_encoder *encoder, *enct;
-
drm_kms_helper_poll_fini(dev);
via_fbdev_fini(dev);
drm_helper_force_disable_all(dev);
- /* We need to cleanup the connectors before the encoders */
- list_for_each_entry_safe(connector, ot,
- &dev->mode_config.connector_list, head)
- connector->funcs->destroy(connector);
-
- list_for_each_entry_safe(encoder, enct,
- &dev->mode_config.encoder_list, head)
- encoder->funcs->destroy(encoder);
-
drm_mode_config_cleanup(dev);
via_i2c_exit();
commit 91f07366b4349fc86e46cca5a9a5431fe2eba93c
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 12:57:16 2020 -0700
drm/openchrome: Ignore DPMS properties when tearing down
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/drivers/gpu/drm/openchrome/openchrome_display.c b/drivers/gpu/drm/openchrome/openchrome_display.c
index 06efeaf3331b..770036b50c0e 100644
--- a/drivers/gpu/drm/openchrome/openchrome_display.c
+++ b/drivers/gpu/drm/openchrome/openchrome_display.c
@@ -523,10 +523,6 @@ void via_modeset_fini(struct drm_device *dev)
drm_kms_helper_poll_fini(dev);
via_fbdev_fini(dev);
- /* drm_mode_config_init has not been called yet */
- if (!dev->mode_config.dpms_property)
- return;
-
drm_helper_force_disable_all(dev);
/* We need to cleanup the connectors before the encoders */
commit 8cdbfddbb19ce4740efb53062f1814ca3dedf2a8
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 12:56:58 2020 -0700
drm/openchrome: Forcibly turn off all enabled CRTCs when tearing down
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/drivers/gpu/drm/openchrome/openchrome_display.c b/drivers/gpu/drm/openchrome/openchrome_display.c
index 32d2d5746786..06efeaf3331b 100644
--- a/drivers/gpu/drm/openchrome/openchrome_display.c
+++ b/drivers/gpu/drm/openchrome/openchrome_display.c
@@ -527,6 +527,8 @@ void via_modeset_fini(struct drm_device *dev)
if (!dev->mode_config.dpms_property)
return;
+ drm_helper_force_disable_all(dev);
+
/* We need to cleanup the connectors before the encoders */
list_for_each_entry_safe(connector, ot,
&dev->mode_config.connector_list, head)
commit 69af1db05e8e4c18d69d8596781beb9b1bf4c0ca
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 12:56:44 2020 -0700
drm/openchrome: Declare openchrome_crtc_param_init() as a static type
Signed-off-by: Kevin Brace <kevinbrace at gmx.com>
diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c
index 3610c37c8cca..d234ca8d61ec 100644
--- a/drivers/gpu/drm/openchrome/openchrome_crtc.c
+++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c
@@ -2063,99 +2063,9 @@ drm_crtc_helper_funcs openchrome_drm_crtc_helper_funcs = {
.mode_set_base_atomic = openchrome_crtc_mode_set_base_atomic,
};
-static const uint32_t openchrome_primary_formats[] = {
- DRM_FORMAT_XRGB8888,
- DRM_FORMAT_ARGB8888,
- DRM_FORMAT_RGB888,
- DRM_FORMAT_RGB565,
- DRM_FORMAT_RGB332,
-};
-
-int openchrome_crtc_init(struct openchrome_drm_private *dev_private,
- uint32_t index)
-{
- struct drm_device *dev = dev_private->dev;
- struct via_crtc *iga;
- struct drm_plane *primary;
- struct drm_plane *cursor;
- uint32_t possible_crtcs;
- int ret;
-
- possible_crtcs = 1 << index;
-
- primary = kzalloc(sizeof(struct drm_plane), GFP_KERNEL);
- if (!primary) {
- ret = -ENOMEM;
- DRM_ERROR("Failed to allocate a primary plane.\n");
- goto exit;
- }
-
- ret = drm_universal_plane_init(dev, primary, possible_crtcs,
- &drm_primary_helper_funcs,
- openchrome_primary_formats,
- ARRAY_SIZE(openchrome_primary_formats),
- NULL, DRM_PLANE_TYPE_PRIMARY, NULL);
- if (ret) {
- DRM_ERROR("Failed to initialize a primary "
- "plane.\n");
- goto free_primary;
- }
-
- cursor = kzalloc(sizeof(struct drm_plane), GFP_KERNEL);
- if (!cursor) {
- ret = -ENOMEM;
- DRM_ERROR("Failed to allocate a cursor plane.\n");
- goto cleanup_primary;
- }
-
- ret = drm_universal_plane_init(dev, cursor, possible_crtcs,
- &openchrome_cursor_drm_plane_funcs,
- openchrome_cursor_formats,
- openchrome_cursor_formats_size,
- NULL, DRM_PLANE_TYPE_CURSOR, NULL);
- if (ret) {
- DRM_ERROR("Failed to initialize a cursor "
- "plane.\n");
- goto free_cursor;
- }
-
- iga = kzalloc(sizeof(struct via_crtc), GFP_KERNEL);
- if (!iga) {
- ret = -ENOMEM;
- DRM_ERROR("Failed to allocate CRTC storage.\n");
- goto cleanup_cursor;
- }
-
- drm_crtc_helper_add(&iga->base,
- &openchrome_drm_crtc_helper_funcs);
- ret = drm_crtc_init_with_planes(dev, &iga->base,
- primary, cursor,
- &openchrome_drm_crtc_funcs,
- NULL);
- if (ret) {
- DRM_ERROR("Failed to initialize CRTC!\n");
- goto free_crtc;
- }
- iga->index = index;
- openchrome_crtc_param_init(dev_private, &iga->base, index);
- goto exit;
-free_crtc:
- kfree(iga);
-cleanup_cursor:
- drm_plane_cleanup(cursor);
-free_cursor:
- kfree(cursor);
-cleanup_primary:
- drm_plane_cleanup(primary);
-free_primary:
- kfree(primary);
-exit:
- return ret;
-}
-
-void openchrome_crtc_param_init(
+static void openchrome_crtc_param_init(
struct openchrome_drm_private *dev_private,
struct drm_crtc *crtc,
uint32_t index)
@@ -2325,3 +2235,97 @@ void openchrome_crtc_param_init(
gamma[i + 512] = i << 8 | i;
}
}
+
+
+
+static const uint32_t openchrome_primary_formats[] = {
+ DRM_FORMAT_XRGB8888,
+ DRM_FORMAT_ARGB8888,
+ DRM_FORMAT_RGB888,
+ DRM_FORMAT_RGB565,
+ DRM_FORMAT_RGB332,
+};
+
+int openchrome_crtc_init(struct openchrome_drm_private *dev_private,
+ uint32_t index)
+{
+ struct drm_device *dev = dev_private->dev;
+ struct via_crtc *iga;
+ struct drm_plane *primary;
+ struct drm_plane *cursor;
+ uint32_t possible_crtcs;
+ int ret;
+
+ possible_crtcs = 1 << index;
+
+ primary = kzalloc(sizeof(struct drm_plane), GFP_KERNEL);
+ if (!primary) {
+ ret = -ENOMEM;
+ DRM_ERROR("Failed to allocate a primary plane.\n");
+ goto exit;
+ }
+
+ ret = drm_universal_plane_init(dev, primary, possible_crtcs,
+ &drm_primary_helper_funcs,
+ openchrome_primary_formats,
+ ARRAY_SIZE(openchrome_primary_formats),
+ NULL, DRM_PLANE_TYPE_PRIMARY, NULL);
+ if (ret) {
+ DRM_ERROR("Failed to initialize a primary "
+ "plane.\n");
+ goto free_primary;
+ }
+
+ cursor = kzalloc(sizeof(struct drm_plane), GFP_KERNEL);
+ if (!cursor) {
+ ret = -ENOMEM;
+ DRM_ERROR("Failed to allocate a cursor plane.\n");
+ goto cleanup_primary;
+ }
+
+ ret = drm_universal_plane_init(dev, cursor, possible_crtcs,
+ &openchrome_cursor_drm_plane_funcs,
+ openchrome_cursor_formats,
+ openchrome_cursor_formats_size,
+ NULL, DRM_PLANE_TYPE_CURSOR, NULL);
+ if (ret) {
+ DRM_ERROR("Failed to initialize a cursor "
+ "plane.\n");
+ goto free_cursor;
+ }
+
+ iga = kzalloc(sizeof(struct via_crtc), GFP_KERNEL);
+ if (!iga) {
+ ret = -ENOMEM;
+ DRM_ERROR("Failed to allocate CRTC storage.\n");
+ goto cleanup_cursor;
+ }
+
+ drm_crtc_helper_add(&iga->base,
+ &openchrome_drm_crtc_helper_funcs);
+ ret = drm_crtc_init_with_planes(dev, &iga->base,
+ primary, cursor,
+ &openchrome_drm_crtc_funcs,
+ NULL);
+ if (ret) {
+ DRM_ERROR("Failed to initialize CRTC!\n");
+ goto free_crtc;
+ }
+
+ iga->index = index;
+
+ openchrome_crtc_param_init(dev_private, &iga->base, index);
+ goto exit;
+free_crtc:
+ kfree(iga);
+cleanup_cursor:
+ drm_plane_cleanup(cursor);
+free_cursor:
+ kfree(cursor);
+cleanup_primary:
+ drm_plane_cleanup(primary);
+free_primary:
+ kfree(primary);
+exit:
+ return ret;
+}
diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h
index adf5e9ac99c5..408519b33f4e 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -463,10 +463,6 @@ extern void via_load_crtc_pixel_timing(struct drm_crtc *crtc,
struct drm_display_mode *mode);
int openchrome_crtc_init(struct openchrome_drm_private *dev_private,
uint32_t index);
-void openchrome_crtc_param_init(
- struct openchrome_drm_private *dev_private,
- struct drm_crtc *crtc,
- uint32_t index);
/* encoders */
extern void via_set_sync_polarity(struct drm_encoder *encoder,
commit 268c0c850c067fa5791a45f5a4359e8900eef2e4
Author: Kevin Brace <kevinbrace at gmx.com>
Date: Tue Sep 8 12:56:33 2020 -0700
drm/openchrome: Declare openchrome_flag_init() as a static type
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 c49eb60bf1cf..adf5e9ac99c5 100644
--- a/drivers/gpu/drm/openchrome/openchrome_drv.h
+++ b/drivers/gpu/drm/openchrome/openchrome_drv.h
@@ -392,7 +392,6 @@ void openchrome_mmio_fini(struct openchrome_drm_private *dev_private);
void openchrome_graphics_unlock(
struct openchrome_drm_private *dev_private);
void chip_revision_info(struct openchrome_drm_private *dev_private);
-void openchrome_flag_init(struct openchrome_drm_private *dev_private);
int openchrome_device_init(struct openchrome_drm_private *dev_private);
int openchrome_dev_pm_ops_suspend(struct device *dev);
diff --git a/drivers/gpu/drm/openchrome/openchrome_init.c b/drivers/gpu/drm/openchrome/openchrome_init.c
index 46a7838f2668..f7f9f49bbe65 100644
--- a/drivers/gpu/drm/openchrome/openchrome_init.c
+++ b/drivers/gpu/drm/openchrome/openchrome_init.c
@@ -974,6 +974,16 @@ out_err:
return ret;
}
+static void openchrome_flag_init(struct openchrome_drm_private *dev_private)
+{
+ DRM_DEBUG_KMS("Entered %s.\n", __func__);
+
+ /* Set this flag for ttm_bo_device_init. */
+ dev_private->need_dma32 = true;
+
+ DRM_DEBUG_KMS("Exiting %s.\n", __func__);
+}
+
static void openchrome_quirks_init(
struct openchrome_drm_private *dev_private)
{
@@ -1186,16 +1196,6 @@ void chip_revision_info(struct openchrome_drm_private *dev_private)
DRM_DEBUG_KMS("Exiting %s.\n", __func__);
}
-void openchrome_flag_init(struct openchrome_drm_private *dev_private)
-{
- DRM_DEBUG_KMS("Entered %s.\n", __func__);
-
- /* Set this flag for ttm_bo_device_init. */
- dev_private->need_dma32 = true;
-
- DRM_DEBUG_KMS("Exiting %s.\n", __func__);
-}
-
int openchrome_device_init(struct openchrome_drm_private *dev_private)
{
int ret;
More information about the openchrome-devel
mailing list