From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 46AB5FA1FD8 for ; Wed, 22 Apr 2026 16:49:49 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7F5F110EEC3; Wed, 22 Apr 2026 16:49:48 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=bootlin.com header.i=@bootlin.com header.b="WsnEWZEQ"; dkim-atps=neutral Received: from smtpout-03.galae.net (smtpout-03.galae.net [185.246.85.4]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8013010EEBF for ; Wed, 22 Apr 2026 16:49:36 +0000 (UTC) Received: from smtpout-01.galae.net (smtpout-01.galae.net [212.83.139.233]) by smtpout-03.galae.net (Postfix) with ESMTPS id 698B64E42AC1; Wed, 22 Apr 2026 16:49:35 +0000 (UTC) Received: from mail.galae.net (mail.galae.net [212.83.136.155]) by smtpout-01.galae.net (Postfix) with ESMTPS id 37DE65FA8F; Wed, 22 Apr 2026 16:49:35 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 013AA10460C14; Wed, 22 Apr 2026 18:49:31 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=dkim; t=1776876574; h=from:subject:date:message-id:to:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references; bh=yQbSHJ1pCmjkng+T8IWPSefSvSRH9WZoqqcDYcajovI=; b=WsnEWZEQ2f3oVm4ZZlEqQfkeVK5qGxkP6ZKBePWh+zbJwA7gghphVu0iStEX0e0iz4sP5V bjJFnCHfIPIqQz7gK3pXbJjernTBSj7Qnk+JoCheqMVJr5fjXkSilK1fShTd54UpPL736c U663umRUve+H6XzxkgJmR3dVRB3YeTp80g/X8k1PSltMpy3l7kk5RGzq+Z7xI5sb11vYFm 4VSgve1NpFbo41tiOnXVGe8d/XcmkWxJaZb+ZhQei7CzioyTr1ToTTVbOTqPXWbOtQEuCo IR1O53h8yRGmly/Qm5PKQyLbrmiRtTmy5hDkw2eiKRb1xugf2CCvYqWXqNPyAA== From: Louis Chauvet Date: Wed, 22 Apr 2026 18:48:13 +0200 Subject: [PATCH v4 16/37] drm/vkms: Introduce configfs for plane rotation MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Message-Id: <20260422-vkms-all-config-v4-16-dbb52e9aadc3@bootlin.com> References: <20260422-vkms-all-config-v4-0-dbb52e9aadc3@bootlin.com> In-Reply-To: <20260422-vkms-all-config-v4-0-dbb52e9aadc3@bootlin.com> To: Haneen Mohammed , Simona Vetter , Melissa Wen , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , jose.exposito89@gmail.com, Jonathan Corbet , Shuah Khan , Miguel Ojeda , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: victoria@system76.com, sebastian.wick@redhat.com, victoria@system76.com, airlied@gmail.com, thomas.petazzoni@bootlin.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Louis Chauvet , llvm@lists.linux.dev X-Mailer: b4 0.16-dev X-Last-TLS-Session-Version: TLSv1.3 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VG8gYWxsb3dzIHRoZSB1c2Vyc3BhY2UgdG8gdGVzdCBtYW55IGhhcmR3YXJlIGNvbmZpZ3VyYXRp b25zLCBpbnRyb2R1Y2UgYQpuZXcgaW50ZXJmYWNlIHRvIGNvbmZpZ3VyZSB0aGUgYXZhaWxhYmxl IHJvdGF0aW9uIHBlciBwbGFuZXMuIFZLTVMKc3VwcG9ydHMgYW55IHJvdGF0aW9uIGFuZCByZWZs ZWN0aW9uLCBzbyB0aGUgdXNlcnNwYWNlIGNhbiBjaG9vc2UgYW55CmNvbWJpbmF0aW9uLgoKVGhl IHN1cHBvcnRlZCByb3RhdGlvbnMgYXJlIGNvbmZpZ3VyZWQgYnkgd3JpdGluZyBhIHJvdGF0aW9u IGJpdG1hc2sgdG8KdGhlIGZpbGUgYHN1cHBvcnRlZF9yb3RhdGlvbnNgIGFuZCB0aGUgZGVmYXVs dCByb3RhdGlvbiBpcyBjaG9zZW4gYnkKd3JpdGluZyBhIHJvdGF0aW9uIGJpdG1hc2sgdG8gYGRl ZmF1bHRfcm90YXRpb25gLgoKU2lnbmVkLW9mZi1ieTogTG91aXMgQ2hhdXZldCA8bG91aXMuY2hh dXZldEBib290bGluLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2Zz LXZrbXMgfCAxNSArKysrKysKIERvY3VtZW50YXRpb24vZ3B1L3ZrbXMucnN0ICAgICAgICAgICAg ICB8ICA3ICsrLQogZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb25maWdmcy5jICAgIHwgODIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDEwMyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9B QkkvdGVzdGluZy9jb25maWdmcy12a21zIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9jb25m aWdmcy12a21zCmluZGV4IDY0MmQwZGFkOGNjYS4uNTU0NzJmNGU3MjFkIDEwMDY0NAotLS0gYS9E b2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL2NvbmZpZ2ZzLXZrbXMKKysrIGIvRG9jdW1lbnRhdGlv bi9BQkkvdGVzdGluZy9jb25maWdmcy12a21zCkBAIC0xMDksNiArMTA5LDIxIEBAIENvbnRhY3Q6 CWRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKIERlc2NyaXB0aW9uOgogCU5hbWUgb2Yg dGhlIHBsYW5lLgogCitXaGF0OgkJL3N5cy9rZXJuZWwvY29uZmlnL3ZrbXMvPGRldmljZT4vcGxh bmVzLzxwbGFuZT4vc3VwcG9ydGVkX3JvdGF0aW9ucworRGF0ZToJCU5vdiAyMDI1CitDb250YWN0 OglkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCitEZXNjcmlwdGlvbjoKKwlBdmFpbGFi bGUgcm90YXRpb25zIGZvciB0aGUgcGxhbmUsIGFzIGEgYml0bWFzazoKKwkweDAxIC0gbm8gcm90 YXRpb24sIDB4MDIgLSByb3RhdGUgOTDCsCwgMHgwNCAtIHJvdGF0ZSAxODDCsCwKKwkweDA4IC0g cm90YXRlIDI3MMKwLCAweDEwIC0gcmVmbGVjdCB4LCAweDIwIC0gcmVmbGVjdCB5LgorCitXaGF0 OgkJL3N5cy9rZXJuZWwvY29uZmlnL3ZrbXMvPGRldmljZT4vcGxhbmVzLzxwbGFuZT4vZGVmYXVs dF9yb3RhdGlvbgorRGF0ZToJCU5vdiAyMDI1CitDb250YWN0OglkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCitEZXNjcmlwdGlvbjoKKwlEZWZhdWx0IHJvdGF0aW9uIHByZXNlbnRlZCB0 byB1c2Vyc3BhY2UsIHNhbWUgdmFsdWVzIGFzCisJcG9zc2libGVfcm90YXRpb25zLgorCiBXaGF0 OgkJL3N5cy9rZXJuZWwvY29uZmlnL3ZrbXMvPGRldmljZT4vcGxhbmVzLzxwbGFuZT4vcG9zc2li bGVfY3J0Y3MKIERhdGU6CQlOb3YgMjAyNQogQ29udGFjdDoJZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvdmttcy5yc3QgYi9Eb2N1 bWVudGF0aW9uL2dwdS92a21zLnJzdAppbmRleCA3OWYxMTg1ZDg2NDUuLjAzNDU2NWViNDNhZCAx MDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvdmttcy5yc3QKKysrIGIvRG9jdW1lbnRhdGlv bi9ncHUvdmttcy5yc3QKQEAgLTg3LDExICs4NywxNiBAQCBTdGFydCBieSBjcmVhdGluZyBvbmUg b3IgbW9yZSBwbGFuZXM6OgogCiAgIHN1ZG8gbWtkaXIgL2NvbmZpZy92a21zL215LXZrbXMvcGxh bmVzL3BsYW5lMAogCi1QbGFuZXMgaGF2ZSAyIGNvbmZpZ3VyYWJsZSBhdHRyaWJ1dGVzOgorUGxh bmVzIGhhdmUgNCBjb25maWd1cmFibGUgYXR0cmlidXRlczoKIAogLSB0eXBlOiBQbGFuZSB0eXBl OiAwIG92ZXJsYXksIDEgcHJpbWFyeSwgMiBjdXJzb3IgKHNhbWUgdmFsdWVzIGFzIHRob3NlCiAg IGV4cG9zZWQgYnkgdGhlICJ0eXBlIiBwcm9wZXJ0eSBvZiBhIHBsYW5lKQogLSBuYW1lOiBOYW1l IG9mIHRoZSBwbGFuZS4gQWxsb3dlZCBjaGFyYWN0ZXJzIGFyZSBbQS1aYS16MS05Xy1dCistIHN1 cHBvcnRlZF9yb3RhdGlvbnM6IEF2YWlsYWJsZSByb3RhdGlvbiBmb3IgYSBwbGFuZSwgYXMgYSBi aXRtYXNrOiAweDAxIG5vIHJvdGF0aW9uLAorICAweDAyIHJvdGF0ZSA5MMKwLCAweDA0IHJvdGF0 ZSAxODDCsCwgMHgwOCByb3RhdGUgMjcwwrAsIDB4MTAgcmVmbGVjdCB4LCAweDIwIHJlZmxlY3Qg eQorICAoc2FtZSB2YWx1ZXMgYXMgdGhvc2UgZXhwb3NlZCBieSB0aGUgInJvdGF0aW9uIiBwcm9w ZXJ0eSBvZiBhIHBsYW5lKQorLSBkZWZhdWx0X3JvdGF0aW9uOiBEZWZhdWx0IHJvdGF0aW9uIHBy ZXNlbnRlZCB0byB0aGUgdXNlcnNwYWNlLCBzYW1lIHZhbHVlcyBhcworICBzdXBwb3J0ZWRfcm90 YXRpb25zLgogCiBDb250aW51ZSBieSBjcmVhdGluZyBvbmUgb3IgbW9yZSBDUlRDczo6CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY29uZmlnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS92a21zL3ZrbXNfY29uZmlnZnMuYwppbmRleCBlOGQ1NzkyYjA4NzMuLjVlZDZhN2Zh NjA0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZrbXMvdmttc19jb25maWdmcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS92a21zL3ZrbXNfY29uZmlnZnMuYwpAQCAtMzg0LDEyICszODQs OTQgQEAgc3RhdGljIHNzaXplX3QgcGxhbmVfbmFtZV9zdG9yZShzdHJ1Y3QgY29uZmlnX2l0ZW0g Kml0ZW0sIGNvbnN0IGNoYXIgKnBhZ2UsCiAJcmV0dXJuIChzc2l6ZV90KWNvdW50OwogfQogCitz dGF0aWMgc3NpemVfdCBwbGFuZV9zdXBwb3J0ZWRfcm90YXRpb25zX3Nob3coc3RydWN0IGNvbmZp Z19pdGVtICppdGVtLCBjaGFyICpwYWdlKQoreworCXN0cnVjdCB2a21zX2NvbmZpZ2ZzX3BsYW5l ICpwbGFuZSA9IHBsYW5lX2l0ZW1fdG9fdmttc19jb25maWdmc19wbGFuZShpdGVtKTsKKwl1bnNp Z25lZCBpbnQgcGxhbmVfc3VwcG9ydGVkX3JvdGF0aW9uczsKKworCXNjb3BlZF9ndWFyZChtdXRl eCwgJnBsYW5lLT5kZXYtPmxvY2spCisJCXBsYW5lX3N1cHBvcnRlZF9yb3RhdGlvbnMgPSB2a21z X2NvbmZpZ19wbGFuZV9nZXRfc3VwcG9ydGVkX3JvdGF0aW9ucyhwbGFuZS0+Y29uZmlnKTsKKwor CXJldHVybiBzcHJpbnRmKHBhZ2UsICIldSIsIHBsYW5lX3N1cHBvcnRlZF9yb3RhdGlvbnMpOwor fQorCitzdGF0aWMgc3NpemVfdCBwbGFuZV9zdXBwb3J0ZWRfcm90YXRpb25zX3N0b3JlKHN0cnVj dCBjb25maWdfaXRlbSAqaXRlbSwKKwkJCQkJICAgICAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVf dCBjb3VudCkKK3sKKwlzdHJ1Y3Qgdmttc19jb25maWdmc19wbGFuZSAqcGxhbmUgPSBwbGFuZV9p dGVtX3RvX3ZrbXNfY29uZmlnZnNfcGxhbmUoaXRlbSk7CisJaW50IHJldCwgdmFsID0gMDsKKwor CXJldCA9IGtzdHJ0b3VpbnQocGFnZSwgMCwgJnZhbCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKworCS8qIFNob3VsZCBiZSBhIHN1cHBvcnRlZCB2YWx1ZSAqLworCWlmICh2YWwgJiB+KERS TV9NT0RFX1JPVEFURV9NQVNLIHwgRFJNX01PREVfUkVGTEVDVF9NQVNLKSkKKwkJcmV0dXJuIC1F SU5WQUw7CisJLyogU2hvdWxkIGF0IGxlYXN0IHByb3ZpZGUgb25lIHJvdGF0aW9uICovCisJaWYg KCEodmFsICYgRFJNX01PREVfUk9UQVRFX01BU0spKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXNj b3BlZF9ndWFyZChtdXRleCwgJnBsYW5lLT5kZXYtPmxvY2spIHsKKwkJaWYgKHBsYW5lLT5kZXYt PmVuYWJsZWQpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCXZrbXNfY29uZmlnX3BsYW5lX3NldF9z dXBwb3J0ZWRfcm90YXRpb25zKHBsYW5lLT5jb25maWcsIHZhbCk7CisJfQorCisJcmV0dXJuIGNv dW50OworfQorCitzdGF0aWMgc3NpemVfdCBwbGFuZV9kZWZhdWx0X3JvdGF0aW9uX3Nob3coc3Ry dWN0IGNvbmZpZ19pdGVtICppdGVtLCBjaGFyICpwYWdlKQoreworCXN0cnVjdCB2a21zX2NvbmZp Z2ZzX3BsYW5lICpwbGFuZSA9IHBsYW5lX2l0ZW1fdG9fdmttc19jb25maWdmc19wbGFuZShpdGVt KTsKKwl1bnNpZ25lZCBpbnQgcGxhbmVfZGVmYXVsdF9yb3RhdGlvbjsKKworCXNjb3BlZF9ndWFy ZChtdXRleCwgJnBsYW5lLT5kZXYtPmxvY2spIHsKKwkJcGxhbmVfZGVmYXVsdF9yb3RhdGlvbiA9 IHZrbXNfY29uZmlnX3BsYW5lX2dldF9kZWZhdWx0X3JvdGF0aW9uKHBsYW5lLT5jb25maWcpOwor CX0KKworCXJldHVybiBzcHJpbnRmKHBhZ2UsICIldSIsIHBsYW5lX2RlZmF1bHRfcm90YXRpb24p OworfQorCitzdGF0aWMgc3NpemVfdCBwbGFuZV9kZWZhdWx0X3JvdGF0aW9uX3N0b3JlKHN0cnVj dCBjb25maWdfaXRlbSAqaXRlbSwKKwkJCQkJICAgIGNvbnN0IGNoYXIgKnBhZ2UsIHNpemVfdCBj b3VudCkKK3sKKwlzdHJ1Y3Qgdmttc19jb25maWdmc19wbGFuZSAqcGxhbmUgPSBwbGFuZV9pdGVt X3RvX3ZrbXNfY29uZmlnZnNfcGxhbmUoaXRlbSk7CisJaW50IHJldCwgdmFsID0gMDsKKworCXJl dCA9IGtzdHJ0b3VpbnQocGFnZSwgMTAsICZ2YWwpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7 CisKKwkvKiBTaG91bGQgYmUgYSBzdXBwb3J0ZWQgdmFsdWUgKi8KKwlpZiAodmFsICYgfihEUk1f TU9ERV9ST1RBVEVfTUFTSyB8IERSTV9NT0RFX1JFRkxFQ1RfTUFTSykpCisJCXJldHVybiAtRUlO VkFMOworCisJLyogU2hvdWxkIGNvbnRhaW4gZXhhY3RseSBvbmUgcm90YXRpb24gKi8KKwlpZiAo IWlzX3Bvd2VyX29mXzIodmFsICYgRFJNX01PREVfUk9UQVRFX01BU0spKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCXNjb3BlZF9ndWFyZChtdXRleCwgJnBsYW5lLT5kZXYtPmxvY2spIHsKKwkJaWYg KHBsYW5lLT5kZXYtPmVuYWJsZWQpCisJCQlyZXR1cm4gLUVCVVNZOworCisJCXZrbXNfY29uZmln X3BsYW5lX3NldF9kZWZhdWx0X3JvdGF0aW9uKHBsYW5lLT5jb25maWcsIHZhbCk7CisJfQorCisJ cmV0dXJuIGNvdW50OworfQorCiBDT05GSUdGU19BVFRSKHBsYW5lXywgdHlwZSk7CiBDT05GSUdG U19BVFRSKHBsYW5lXywgbmFtZSk7CitDT05GSUdGU19BVFRSKHBsYW5lXywgc3VwcG9ydGVkX3Jv dGF0aW9ucyk7CitDT05GSUdGU19BVFRSKHBsYW5lXywgZGVmYXVsdF9yb3RhdGlvbik7CiAKIHN0 YXRpYyBzdHJ1Y3QgY29uZmlnZnNfYXR0cmlidXRlICpwbGFuZV9pdGVtX2F0dHJzW10gPSB7CiAJ JnBsYW5lX2F0dHJfdHlwZSwKIAkmcGxhbmVfYXR0cl9uYW1lLAorCSZwbGFuZV9hdHRyX3N1cHBv cnRlZF9yb3RhdGlvbnMsCisJJnBsYW5lX2F0dHJfZGVmYXVsdF9yb3RhdGlvbiwKIAlOVUxMLAog fTsKIAoKLS0gCjIuNTQuMAoK