The current code is not flexible to configure the VKMS device. In preparation for ConfigFS interface introduce few structure that can be used to configure the device creation: `vkms_config`. This part is splitted from the ConfigFS implementation itself to avoid mixing two complex interfaces. The vkms_config structure will allows the configuration of: - planes - name - possible_crtcs - supported_color_encodings - supported_rotations - supported_color_ranges - default_rotation - default_color_range - default_color_encoding - type - crtcs - name - possible_planes [automatically filled by helpers] - possible_encoders [automatically filled by helpers] - encoders - name - possible_crtcs Signed-off-by: Louis Chauvet <louis.chauvet@xxxxxxxxxxx> --- Louis Chauvet (15): drm/vkms: Remove useles devres group drm/vkms: remove possible crtc from parameters drm/vkms: Extract vkms_config header drm/vkms: Add a validation function for vkms configuration drm/vkms: Move default_config creation to its own function drm/vkms: Introduce plane configuration drm/vkms: Introduce plane name configuration drm/vkms: Introduce plane rotation configuration drm/vkms: Introduce configuration for plane color encoding drm/vkms: Introduce configuration for plane color range drm: writeback: Add drm_writeback_connector cleanup drm/vkms: Add configuration for CRTCs and encoders drm/vkms: Add name configuration for encoders drm/vkms: Add name configuration for CRTCs drm/vkms: Add test for config structure drivers/gpu/drm/drm_writeback.c | 10 + drivers/gpu/drm/vkms/Makefile | 3 +- drivers/gpu/drm/vkms/tests/Makefile | 1 + drivers/gpu/drm/vkms/tests/vkms_config_test.c | 135 ++++++++ drivers/gpu/drm/vkms/vkms_config.c | 426 ++++++++++++++++++++++++++ drivers/gpu/drm/vkms/vkms_config.h | 203 ++++++++++++ drivers/gpu/drm/vkms/vkms_crtc.c | 22 +- drivers/gpu/drm/vkms/vkms_crtc.h | 3 +- drivers/gpu/drm/vkms/vkms_drv.c | 168 ++++------ drivers/gpu/drm/vkms/vkms_drv.h | 15 +- drivers/gpu/drm/vkms/vkms_plane.c | 23 +- drivers/gpu/drm/vkms/vkms_plane.h | 5 +- include/drm/drm_writeback.h | 11 + 13 files changed, 888 insertions(+), 137 deletions(-) --- base-commit: 219b45d023ed0902b05c5902a4f31c2c38bcf68c change-id: 20240521-google-remove-crtc-index-from-parameter-f9afb21c7a85 prerequisite-message-id: <20240809-yuv-v10-0-1a7c764166f7@xxxxxxxxxxx> prerequisite-patch-id: ae2d8b2efbbaa9decce56632c498c87e708288b3 prerequisite-patch-id: c26b6d4867eaf6566195aa0002765357d4f69f8c prerequisite-patch-id: 8791d34a6f3148dc518da5249453067e40d346e3 prerequisite-patch-id: 26ec7cd5a449004bcfd6ce483671f87655f8635c prerequisite-patch-id: 2e855ba871f2e99d4b6b7d85da2ddac6bb32262e prerequisite-patch-id: 82523a917646793deeec7cdcc7ff286bd924fd21 prerequisite-patch-id: 0e355e5316281f53ab5e97ab6e63b0a682f3eb9e prerequisite-patch-id: 7a63d245a377d5f5283f48e8f52421b912811752 prerequisite-patch-id: dda6bf4692cd1795c489ff58e72c0841ea8ffbc4 prerequisite-patch-id: f70e535b6086cc587975fbfa75741f485f679a32 prerequisite-patch-id: 6c2aa2645c7d854951608aa4d15a02e076abe1fe prerequisite-patch-id: dc61c6d3db73053fc36e115af561e0c42b467de2 prerequisite-patch-id: deda292af6d8bbf6762b0bf4d351ffd2225995d8 prerequisite-patch-id: 18554f49b53cbcfd4a8ca50dc83b17dd3cf96474 prerequisite-patch-id: 5633292e10132d29be2467812e6e2e824cfedb67 prerequisite-patch-id: 43f37e9c1bc041d491e41dfb59548ed258a1e071 prerequisite-message-id: <20240814-b4-new-color-formats-v2-0-8b3499cfe90e@xxxxxxxxxxx> prerequisite-patch-id: d10db4cb12a88de2e5f6440e9fcf5ddda191e3cd prerequisite-patch-id: 16bac0ef1f1dc010a72ce2faae66631797d23d3f prerequisite-patch-id: 8e0e5cc0727e8fd2d14ebafc5538fd987c2dd38e prerequisite-patch-id: 32bad3bf3df46d042e9edd4c1259c2e2a3fb8975 prerequisite-patch-id: 4bd9e4cef308abd17b7b274a5575a3de73a1503b prerequisite-patch-id: a98fac5a2c60fe23fbc6a455e9a4ab8b0f187ee8 prerequisite-patch-id: 62c8d109a22b9978f755255b67f13fe74fb7008d prerequisite-patch-id: baa8da4871dd90b03a07c6d9ddb45e10929ee70a prerequisite-message-id: <20240814-writeback_line_by_line-v2-0-36541c717569@xxxxxxxxxxx> prerequisite-patch-id: df699289213021fa202fcdf1b4bdff513d09caa2 prerequisite-patch-id: 59d021ccb166fbe2962de9cda72aceb3caa9cabe prerequisite-patch-id: 895ace6d58b3776798791705b7b05e26b8d37c7b prerequisite-message-id: <20240814-google-clarifications-v1-0-3ee76d7d0c28@xxxxxxxxxxx> prerequisite-patch-id: a4408d1de7730262456bdd618d3cb86f5f5b01ba prerequisite-patch-id: f215b5aee5644d2e5b1b2af0bb0f4f1e7609558b prerequisite-patch-id: d4f3b4c714324c5f326af3daba394899e6663d75 prerequisite-message-id: <20240814-google-split-headers-v1-0-51712f088f5d@xxxxxxxxxxx> prerequisite-patch-id: 55e5c2ded8332cd6600d9c0c2b7be657c793e2a0 prerequisite-patch-id: 88323ab9ea04fb21a0a4c65642bcd499f2354042 prerequisite-patch-id: 437b67cf9bdc036fa7c5e11b5c9ab387b10cc151 prerequisite-patch-id: d34801b7f3035ab15facd42281c1c96e61d35a4c prerequisite-patch-id: 37862a6437ff407a42e5aaff0b8e742fc9901e03 prerequisite-patch-id: 43a5079497a1579aef713ea9c4ec47ef53a177a2 prerequisite-message-id: <20240814-google-vkms-managed-v1-0-7ab8b8921103@xxxxxxxxxxx> prerequisite-patch-id: f07b5109188f67a6b11f83e6c591d04d8d9f7eb4 prerequisite-patch-id: 29f74417aff64dc7bb65ecc2902540073cd73352 prerequisite-patch-id: 23bdc1fb18aba22e0f40f62a7aaae1619f0eb89c prerequisite-patch-id: 0acd7f43a33491b7987e9665b5b800c4f8aa266a Best regards, -- Louis Chauvet <louis.chauvet@xxxxxxxxxxx>