drivers/gpu/drm/openchrome/openchrome_crtc.c | 37 +++++++++++++++++---------- drivers/gpu/drm/openchrome/openchrome_drv.h | 4 +- 2 files changed, 26 insertions(+), 15 deletions(-)
New commits: commit 01c7f004b9b1ee9adbaf52110169f30462f659a9 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Feb 9 17:24:26 2022 -0600 drm/openchrome: Version bumped to 3.4.18 Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/openchrome_drv.h b/drivers/gpu/drm/openchrome/openchrome_drv.h index b63c08bb39c0..02fa1e541fce 100644 --- a/drivers/gpu/drm/openchrome/openchrome_drv.h +++ b/drivers/gpu/drm/openchrome/openchrome_drv.h @@ -54,10 +54,10 @@ #define DRIVER_MAJOR 3 #define DRIVER_MINOR 4 -#define DRIVER_PATCHLEVEL 17 +#define DRIVER_PATCHLEVEL 18 #define DRIVER_NAME "openchrome" #define DRIVER_DESC "OpenChrome DRM for VIA Technologies Chrome IGP" -#define DRIVER_DATE "20220201" +#define DRIVER_DATE "20220209" #define DRIVER_AUTHOR "OpenChrome Project" commit b2f6678bea99f04ab755daa9b65d25009e57a6c9 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Feb 9 17:21:28 2022 -0600 drm/openchrome: No longer check for color depth in *_atomic_update() This was done inside openchrome_primary_atomic_update(). It should probably be done somewhere else. Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c index 6afb98007c75..876cdb422442 100644 --- a/drivers/gpu/drm/openchrome/openchrome_crtc.c +++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c @@ -1924,14 +1924,6 @@ void openchrome_primary_atomic_update(struct drm_plane *plane, DRM_DEBUG_KMS("Entered %s.\n", __func__); - if ((fb->format->depth != 8) && (fb->format->depth != 16) && - (fb->format->depth != 24)) { - DRM_ERROR("Unsupported IGA%s Color Depth: %d bit\n", - (!iga->index) ? "1" : "2", - fb->format->depth); - goto exit; - } - gem = fb->obj[0]; ttm_bo = container_of(gem, struct ttm_buffer_object, base); bo = container_of(ttm_bo, struct openchrome_bo, ttm_bo); @@ -1983,7 +1975,6 @@ void openchrome_primary_atomic_update(struct drm_plane *plane, load_value_to_registers(VGABASE, &iga->offset, pitch >> 3); } -exit: DRM_DEBUG_KMS("Exiting %s.\n", __func__); } commit 8c494eb6e81d041eb15ccc5b9c6da218686afca8 Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Feb 9 17:20:20 2022 -0600 drm/openchrome: Check for drm_mode_crtc_set_gamma_size() return type Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c index 882c4ba0a810..6afb98007c75 100644 --- a/drivers/gpu/drm/openchrome/openchrome_crtc.c +++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c @@ -2227,14 +2227,19 @@ static void openchrome_crtc_param_init( } } -static void openchrome_gamma_init(struct drm_crtc *crtc) +static int openchrome_gamma_init(struct drm_crtc *crtc) { u16 *gamma; uint32_t i; + int ret; DRM_DEBUG_KMS("Entered %s.\n", __func__); - drm_mode_crtc_set_gamma_size(crtc, 256); + ret = drm_mode_crtc_set_gamma_size(crtc, 256); + if (ret) { + DRM_ERROR("Failed to set gamma size!\n"); + goto exit; + } gamma = crtc->gamma_store; for (i = 0; i < 256; i++) { @@ -2243,7 +2248,9 @@ static void openchrome_gamma_init(struct drm_crtc *crtc) gamma[i + 512] = i << 8 | i; } +exit: DRM_DEBUG_KMS("Exiting %s.\n", __func__); + return ret; } static const uint32_t openchrome_primary_formats[] = { @@ -2327,7 +2334,11 @@ int openchrome_crtc_init(struct openchrome_drm_private *dev_private, iga->index = index; openchrome_crtc_param_init(dev_private, &iga->base, index); - openchrome_gamma_init(&iga->base); + ret = openchrome_gamma_init(&iga->base); + if (ret) { + goto free_crtc; + } + goto exit; free_crtc: kfree(iga); commit 2d2984ae00795078fa654188d31824e95ed7aada Author: Kevin Brace <kevinbr...@gmx.com> Date: Wed Feb 9 17:18:51 2022 -0600 drm/openchrome: Perform gamma initialization in openchrome_gamma_init() Signed-off-by: Kevin Brace <kevinbr...@gmx.com> diff --git a/drivers/gpu/drm/openchrome/openchrome_crtc.c b/drivers/gpu/drm/openchrome/openchrome_crtc.c index ce23075bb9e6..882c4ba0a810 100644 --- a/drivers/gpu/drm/openchrome/openchrome_crtc.c +++ b/drivers/gpu/drm/openchrome/openchrome_crtc.c @@ -2075,8 +2075,6 @@ static void openchrome_crtc_param_init( struct pci_dev *pdev = to_pci_dev(dev->dev); struct via_crtc *iga = container_of(crtc, struct via_crtc, base); - u16 *gamma; - uint32_t i; if (iga->index) { iga->timings.htotal.count = ARRAY_SIZE(iga2_hor_total); @@ -2227,15 +2225,25 @@ static void openchrome_crtc_param_init( iga->offset.count = ARRAY_SIZE(iga1_offset); iga->offset.regs = iga1_offset; } +} + +static void openchrome_gamma_init(struct drm_crtc *crtc) +{ + u16 *gamma; + uint32_t i; + + DRM_DEBUG_KMS("Entered %s.\n", __func__); drm_mode_crtc_set_gamma_size(crtc, 256); - gamma = crtc->gamma_store; + gamma = crtc->gamma_store; for (i = 0; i < 256; i++) { gamma[i] = i << 8 | i; gamma[i + 256] = i << 8 | i; gamma[i + 512] = i << 8 | i; } + + DRM_DEBUG_KMS("Exiting %s.\n", __func__); } static const uint32_t openchrome_primary_formats[] = { @@ -2319,6 +2327,7 @@ int openchrome_crtc_init(struct openchrome_drm_private *dev_private, iga->index = index; openchrome_crtc_param_init(dev_private, &iga->base, index); + openchrome_gamma_init(&iga->base); goto exit; free_crtc: kfree(iga);