mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-27 06:39:51 +00:00
3a5584e0df
Adds latest 6.6 patches from the Raspberry Pi repository. These patches were generated from: https://github.com/raspberrypi/linux/commits/rpi-6.6.y/ With the following command: git format-patch -N v6.6.67..HEAD (HEAD -> 811ff707533bcd67cdcd368bbd46223082009b12) Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> (cherry picked from commit 692205305db14deeff1a2dc4a6d7f87e19fc418b)
102 lines
3.7 KiB
Diff
102 lines
3.7 KiB
Diff
From 8181e682d6f4ef209845ec24f0a1eb37764d6731 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
Date: Fri, 21 Oct 2022 14:26:12 +0100
|
|
Subject: [PATCH] drm: Increase plane_mask to 64bit.
|
|
|
|
The limit of 32 planes per DRM device is dictated by the use
|
|
of planes_mask returning a u32.
|
|
|
|
Change to a u64 such that 64 planes can be supported by a device.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
|
---
|
|
drivers/gpu/drm/drm_atomic.c | 2 +-
|
|
drivers/gpu/drm/drm_framebuffer.c | 2 +-
|
|
drivers/gpu/drm/drm_mode_config.c | 2 +-
|
|
drivers/gpu/drm/drm_plane.c | 2 +-
|
|
drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c | 2 +-
|
|
include/drm/drm_crtc.h | 2 +-
|
|
include/drm/drm_plane.h | 4 ++--
|
|
7 files changed, 8 insertions(+), 8 deletions(-)
|
|
|
|
--- a/drivers/gpu/drm/drm_atomic.c
|
|
+++ b/drivers/gpu/drm/drm_atomic.c
|
|
@@ -451,7 +451,7 @@ static void drm_atomic_crtc_print_state(
|
|
drm_printf(p, "\tactive_changed=%d\n", state->active_changed);
|
|
drm_printf(p, "\tconnectors_changed=%d\n", state->connectors_changed);
|
|
drm_printf(p, "\tcolor_mgmt_changed=%d\n", state->color_mgmt_changed);
|
|
- drm_printf(p, "\tplane_mask=%x\n", state->plane_mask);
|
|
+ drm_printf(p, "\tplane_mask=%llx\n", state->plane_mask);
|
|
drm_printf(p, "\tconnector_mask=%x\n", state->connector_mask);
|
|
drm_printf(p, "\tencoder_mask=%x\n", state->encoder_mask);
|
|
drm_printf(p, "\tmode: " DRM_MODE_FMT "\n", DRM_MODE_ARG(&state->mode));
|
|
--- a/drivers/gpu/drm/drm_framebuffer.c
|
|
+++ b/drivers/gpu/drm/drm_framebuffer.c
|
|
@@ -959,7 +959,7 @@ static int atomic_remove_fb(struct drm_f
|
|
struct drm_connector *conn __maybe_unused;
|
|
struct drm_connector_state *conn_state;
|
|
int i, ret;
|
|
- unsigned plane_mask;
|
|
+ u64 plane_mask;
|
|
bool disable_crtcs = false;
|
|
|
|
retry_disable:
|
|
--- a/drivers/gpu/drm/drm_mode_config.c
|
|
+++ b/drivers/gpu/drm/drm_mode_config.c
|
|
@@ -636,7 +636,7 @@ void drm_mode_config_validate(struct drm
|
|
struct drm_encoder *encoder;
|
|
struct drm_crtc *crtc;
|
|
struct drm_plane *plane;
|
|
- u32 primary_with_crtc = 0, cursor_with_crtc = 0;
|
|
+ u64 primary_with_crtc = 0, cursor_with_crtc = 0;
|
|
unsigned int num_primary = 0;
|
|
|
|
if (!drm_core_check_feature(dev, DRIVER_MODESET))
|
|
--- a/drivers/gpu/drm/drm_plane.c
|
|
+++ b/drivers/gpu/drm/drm_plane.c
|
|
@@ -249,7 +249,7 @@ static int __drm_universal_plane_init(st
|
|
int ret;
|
|
|
|
/* plane index is used with 32bit bitmasks */
|
|
- if (WARN_ON(config->num_total_plane >= 32))
|
|
+ if (WARN_ON(config->num_total_plane >= 64))
|
|
return -EINVAL;
|
|
|
|
/*
|
|
--- a/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
|
|
+++ b/drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c
|
|
@@ -230,7 +230,7 @@ static int ipu_crtc_atomic_check(struct
|
|
{
|
|
struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state,
|
|
crtc);
|
|
- u32 primary_plane_mask = drm_plane_mask(crtc->primary);
|
|
+ u64 primary_plane_mask = drm_plane_mask(crtc->primary);
|
|
|
|
if (crtc_state->active && (primary_plane_mask & crtc_state->plane_mask) == 0)
|
|
return -EINVAL;
|
|
--- a/include/drm/drm_crtc.h
|
|
+++ b/include/drm/drm_crtc.h
|
|
@@ -192,7 +192,7 @@ struct drm_crtc_state {
|
|
* @plane_mask: Bitmask of drm_plane_mask(plane) of planes attached to
|
|
* this CRTC.
|
|
*/
|
|
- u32 plane_mask;
|
|
+ u64 plane_mask;
|
|
|
|
/**
|
|
* @connector_mask: Bitmask of drm_connector_mask(connector) of
|
|
--- a/include/drm/drm_plane.h
|
|
+++ b/include/drm/drm_plane.h
|
|
@@ -915,9 +915,9 @@ static inline unsigned int drm_plane_ind
|
|
* drm_plane_mask - find the mask of a registered plane
|
|
* @plane: plane to find mask for
|
|
*/
|
|
-static inline u32 drm_plane_mask(const struct drm_plane *plane)
|
|
+static inline u64 drm_plane_mask(const struct drm_plane *plane)
|
|
{
|
|
- return 1 << drm_plane_index(plane);
|
|
+ return 1ULL << drm_plane_index(plane);
|
|
}
|
|
|
|
struct drm_plane * drm_plane_from_index(struct drm_device *dev, int idx);
|