From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: [PATCH v6 RESEND 0/1] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 3 Apr 2018 14:23:16 +0300 Message-ID: <20180403112317.28751-1-andr2000@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id CF9C46E0B8 for ; Tue, 3 Apr 2018 11:23:26 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id x70-v6so12787165lfa.0 for ; Tue, 03 Apr 2018 04:23:26 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, daniel.vetter@intel.com, seanpaul@chromium.org, gustavo@padovan.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, Oleksandr Andrushchenko List-Id: dri-devel@lists.freedesktop.org RnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVw YW0uY29tPgoKUmVzZW5kaW5nIHdpdGggZXZlbiBtb3JlIGNoZWNrcGF0Y2ggY29kZS1zdHlsZSBm aXhlcy4KCkhlbGxvIQoKQm9yaXMvRGFuaWVsLCBJIHB1dCB5b3VyIFItYiB0YWdzLCBzbyBwbGVh c2UgZG8gbGV0IG1lIGtub3cgaWYgdGhpcyBpcyBub3QKYWNjZXB0YWJsZSwgc28gSSByZW1vdmUg dGhlIHRhZ3MuCgpUaGlzIHBhdGNoIHNlcmllcyBhZGRzIHN1cHBvcnQgZm9yIFhlbiBbMV0gcGFy YS12aXJ0dWFsaXplZApmcm9udGVuZCBkaXNwbGF5IGRyaXZlci4gSXQgaW1wbGVtZW50cyB0aGUg cHJvdG9jb2wgZnJvbQppbmNsdWRlL3hlbi9pbnRlcmZhY2UvaW8vZGlzcGxpZi5oIFsyXS4KQWNj b21wYW55aW5nIGJhY2tlbmQgWzNdIGlzIGltcGxlbWVudGVkIGFzIGEgdXNlci1zcGFjZSBhcHBs aWNhdGlvbgphbmQgaXRzIGhlbHBlciBsaWJyYXJ5IFs0XSwgY2FwYWJsZSBvZiBydW5uaW5nIGFz IGEgV2VzdG9uIGNsaWVudApvciBEUk0gbWFzdGVyLgpDb25maWd1cmF0aW9uIG9mIGJvdGggYmFj a2VuZCBhbmQgZnJvbnRlbmQgaXMgZG9uZSB2aWEgClhlbiBndWVzdCBkb21haW4gY29uZmlndXJh dGlvbiBvcHRpb25zIFs1XS4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKiBEcml2ZXIgbGltaXRh dGlvbnMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogMS4gQ29uZmlndXJhdGlvbiBvcHRpb25zIDEu MSAoY29udGlndW91cyBkaXNwbGF5IGJ1ZmZlcnMpIGFuZCAyIChiYWNrZW5kCiAgICBhbGxvY2F0 ZWQgYnVmZmVycykgYmVsb3cgYXJlIG5vdCBzdXBwb3J0ZWQgYXQgdGhlIHNhbWUgdGltZS4KCiAy LiBPbmx5IHByaW1hcnkgcGxhbmUgd2l0aG91dCBhZGRpdGlvbmFsIHByb3BlcnRpZXMgaXMgc3Vw cG9ydGVkLgoKIDMuIE9ubHkgb25lIHZpZGVvIG1vZGUgc3VwcG9ydGVkIHdoaWNoIHJlc29sdXRp b24gaXMgY29uZmlndXJlZCB2aWEgWGVuU3RvcmUuCgogNC4gQWxsIENSVENzIG9wZXJhdGUgYXQg Zml4ZWQgZnJlcXVlbmN5IG9mIDYwSHouCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiogRHJpdmVy IG1vZGVzIG9mIG9wZXJhdGlvbiBpbiB0ZXJtcyBvZiBkaXNwbGF5IGJ1ZmZlcnMgdXNlZAoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCiBEZXBlbmRpbmcgb24gdGhlIHJlcXVpcmVtZW50cyBmb3IgdGhl IHBhcmEtdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIG5hbWVseQogcmVxdWlyZW1lbnRzIGRpY3Rh dGVkIGJ5IHRoZSBhY2NvbXBhbnlpbmcgRFJNLyh2KUdQVSBkcml2ZXJzIHJ1bm5pbmcgaW4gYm90 aAogaG9zdCBhbmQgZ3Vlc3QgZW52aXJvbm1lbnRzLCBudW1iZXIgb2Ygb3BlcmF0aW5nIG1vZGVz IG9mIHBhcmEtdmlydHVhbGl6ZWQKIGRpc3BsYXkgZHJpdmVyIGFyZSBzdXBwb3J0ZWQ6CiAgLSBk aXNwbGF5IGJ1ZmZlcnMgY2FuIGJlIGFsbG9jYXRlZCBieSBlaXRoZXIgZnJvbnRlbmQgZHJpdmVy IG9yIGJhY2tlbmQKICAtIGRpc3BsYXkgYnVmZmVycyBjYW4gYmUgYWxsb2NhdGVkIHRvIGJlIGNv bnRpZ3VvdXMgaW4gbWVtb3J5IG9yIG5vdAoKIE5vdGUhIEZyb250ZW5kIGRyaXZlciBpdHNlbGYg aGFzIG5vIGRlcGVuZGVuY3kgb24gY29udGlndW91cyBtZW1vcnkgZm9yCiAgICAgICBpdHMgb3Bl cmF0aW9uLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIDEuIEJ1ZmZlcnMgYWxsb2NhdGVkIGJ5 IHRoZSBmcm9udGVuZCBkcml2ZXIuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiBUaGUgYmVsb3cg bW9kZXMgb2Ygb3BlcmF0aW9uIGFyZSBjb25maWd1cmVkIGF0IGNvbXBpbGUtdGltZSB2aWEKIGZy b250ZW5kIGRyaXZlcidzIGtlcm5lbCBjb25maWd1cmF0aW9uLgoKIDEuMS4gRnJvbnQgZHJpdmVy IGNvbmZpZ3VyZWQgdG8gdXNlIEdFTSBDTUEgaGVscGVycwogICAgICBUaGlzIHVzZS1jYXNlIGlz IHVzZWZ1bCB3aGVuIHVzZWQgd2l0aCBhY2NvbXBhbnlpbmcgRFJNL3ZHUFUgZHJpdmVyIGluCiAg ICAgIGd1ZXN0IGRvbWFpbiB3aGljaCB3YXMgZGVzaWduZWQgdG8gb25seSB3b3JrIHdpdGggY29u dGlndW91cyBidWZmZXJzLAogICAgICBlLmcuIERSTSBkcml2ZXIgYmFzZWQgb24gR0VNIENNQSBo ZWxwZXJzOiBzdWNoIGRyaXZlcnMgY2FuIG9ubHkgaW1wb3J0CiAgICAgIGNvbnRpZ3VvdXMgUFJJ TUUgYnVmZmVycywgdGh1cyByZXF1aXJpbmcgZnJvbnRlbmQgZHJpdmVyIHRvIHByb3ZpZGUKICAg ICAgc3VjaC4gSW4gb3JkZXIgdG8gaW1wbGVtZW50IHRoaXMgbW9kZSBvZiBvcGVyYXRpb24gcGFy YS12aXJ0dWFsaXplZAogICAgICBmcm9udGVuZCBkcml2ZXIgY2FuIGJlIGNvbmZpZ3VyZWQgdG8g dXNlIEdFTSBDTUEgaGVscGVycy4KCiAxLjIuIEZyb250IGRyaXZlciBkb2Vzbid0IHVzZSBHRU0g Q01BCiAgICAgIElmIGFjY29tcGFueWluZyBkcml2ZXJzIGNhbiBjb3BlIHdpdGggbm9uLWNvbnRp Z3VvdXMgbWVtb3J5IHRoZW4sIHRvCiAgICAgIGxvd2VyIHByZXNzdXJlIG9uIENNQSBzdWJzeXN0 ZW0gb2YgdGhlIGtlcm5lbCwgZHJpdmVyIGNhbiBhbGxvY2F0ZQogICAgICBidWZmZXJzIGZyb20g c3lzdGVtIG1lbW9yeS4KCiBOb3RlISBJZiB1c2VkIHdpdGggYWNjb21wYW55aW5nIERSTS8odilH UFUgZHJpdmVycyB0aGlzIG1vZGUgb2Ygb3BlcmF0aW9uCiAgIG1heSByZXF1aXJlIElPTU1VIHN1 cHBvcnQgb24gdGhlIHBsYXRmb3JtLCBzbyBhY2NvbXBhbnlpbmcgRFJNL3ZHUFUKICAgaGFyZHdh cmUgY2FuIHN0aWxsIHJlYWNoIGRpc3BsYXkgYnVmZmVyIG1lbW9yeSB3aGlsZSBpbXBvcnRpbmcg UFJJTUUKICAgYnVmZmVycyBmcm9tIHRoZSBmcm9udGVuZCBkcml2ZXIuCgoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCiogMi4gQnVmZmVycyBhbGxvY2F0ZWQgYnkgdGhlIGJhY2tlbmQKKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgoKIFRoaXMgbW9kZSBvZiBvcGVyYXRpb24gaXMgcnVuLXRpbWUgY29uZmln dXJlZCB2aWEgZ3Vlc3QgZG9tYWluIGNvbmZpZ3VyYXRpb24KIHRocm91Z2ggWGVuU3RvcmUgZW50 cmllcy4KCiBGb3Igc3lzdGVtcyB3aGljaCBkbyBub3QgcHJvdmlkZSBJT01NVSBzdXBwb3J0LCBi dXQgaGF2aW5nIHNwZWNpZmljCiByZXF1aXJlbWVudHMgZm9yIGRpc3BsYXkgYnVmZmVycyBpdCBp cyBwb3NzaWJsZSB0byBhbGxvY2F0ZSBzdWNoIGJ1ZmZlcnMKIGF0IGJhY2tlbmQgc2lkZSBhbmQg c2hhcmUgdGhvc2Ugd2l0aCB0aGUgZnJvbnRlbmQuCiBGb3IgZXhhbXBsZSwgaWYgaG9zdCBkb21h aW4gaXMgMToxIG1hcHBlZCBhbmQgaGFzIERSTS9HUFUgaGFyZHdhcmUgZXhwZWN0aW5nCiBwaHlz aWNhbGx5IGNvbnRpZ3VvdXMgbWVtb3J5LCB0aGlzIGFsbG93cyBpbXBsZW1lbnRpbmcgemVyby1j b3B5aW5nCiB1c2UtY2FzZXMuCgoKSSB3b3VsZCBsaWtlIHRvIHRoYW5rIGF0IGxlYXN0LCBidXQg bm90IGF0IGxhc3QgdGhlIGZvbGxvd2luZwpwZW9wbGUvY29tbXVuaXRpZXMgd2hvIGhlbHBlZCB0 aGlzIGRyaXZlciB0byBoYXBwZW4gOykKCjEuIE15IHRlYW0gYXQgRVBBTSBmb3IgY29udGludW91 cyBzdXBwb3J0CjIuIFhlbiBjb21tdW5pdHkgZm9yIGFuc3dlcmluZyB0b25zIG9mIHF1ZXN0aW9u cyBvbiBkaWZmZXJlbnQKbW9kZXMgb2Ygb3BlcmF0aW9uIG9mIHRoZSBkcml2ZXIgd2l0aCByZXNw ZWN0IHRvIHZpcnR1YWxpemVkCmVudmlyb25tZW50LgozLiBSb2IgQ2xhcmsgZm9yICJHRU0gYWxs b2NhdGlvbiBmb3IgcGFyYS12aXJ0dWFsaXplZCBEUk0gZHJpdmVyIiBbNl0KNC4gTWFhcnRlbiBM YW5raG9yc3QgZm9yICJBdG9taWMgZHJpdmVyIGFuZCBvbGQgcmVtb3ZlIEZCIGJlaGF2aW9yIiBb N10KNS4gVmlsbGUgU3lyasOkbMOkIGZvciAiUXVlc3Rpb25zIG9uIHBhZ2UgZmxpcHMgYW5kIGF0 b21pYyBtb2Rlc2V0IiBbOF0KCkNoYW5nZXMgc2luY2UgdjU6CioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKLSBmaXhlZCBtb3N0IG9mIHNjcmlwdHMvY2hlY2twYXRjaC5wbCB3YXJuaW5ncwoKQ2hhbmdl cyBzaW5jZSB2NDoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotIHVwZGF0ZWQgdGhlIGRyaXZlciBh ZnRlciAiZHJtL3NpbXBsZS1rbXMtaGVscGVyOiBQbHVtYiBwbGFuZSBzdGF0ZQogIHRvIHRoZSBl bmFibGUgaG9vayIgWzE0XQotIG1hZGUgZGlzcGxheV9tb2RlX3ZhbGlkIHN0YXRpYwotIGZpeGVk IHBhZ2UgbGVhayBvbiBldmVudCBjaGFubmVsIGVycm9yIHBhdGgKLSBjaGFuZ2VkIHRpdGxlIG9m IHRoZSBkb2N1bWVudGF0aW9uIHRvIG1hdGNoIHRoZSByZXN0IG9mIHRoZSBkcml2ZXJzCi0gcmVt b3ZlZCBmcm9tIHRoZSBzZXJpZXMgdGhlIHBhdGNoIGZyb20gTm9yYWxmIFRyw7hubmVzIFsxMl0g YXMgaXQgd2FzIHNlbnQgb3V0CiAgYXMgYSBzdGFuZGFsb25lIG9uZQoKQ2hhbmdlcyBzaW5jZSB2 MzoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgotIG5vIGNoYW5nZXMgdG8gWGVuIHJlbGF0ZWQgY29k ZSAoc2hhcmVkIGJ1ZmZlciBoYW5kbGluZywgZXZlbnQgY2hhbm5lbHMgZXRjLiksCiAgYnV0IG1p bm9yIGNoYW5nZXMgdG8geGVuYnVzX2RyaXZlciBzdGF0ZSBtYWNoaW5lIGR1ZSB0byByZS13b3Jr ZWQgdW5wbHVnCiAgaW1wbGVtZW50YXRpb246IGFkZGl0aW9uYWwgc3RhdGUgY2hlY2tzIGFkZGVk Ci0gcmUtd29ya2VkIGR1bWIgY3JlYXRpb24gY29kZSB0byBmaXggcmFjZSBjb25kaXRpb24gKGRy bV9nZW1faGFuZGxlX2NyZWF0ZSkKLSB1c2UgZHJtX2Rldl97ZW50ZXJ8ZXhpdH0gdG8gcHJvdGVj dCBjb2RlIHdoaWNoIG11c3Qgbm90IHJ1biB3aGVuIHVucGx1Z2dlZAotIHJlLXdvcmsgdW5wbHVn IGNvZGUgdG8gZnVsbHkgc3VwcG9ydCAiem9tYmllIiBEUk0gZGV2aWNlcyBvbiBiYWNrZW5kCiAg ZGlzY29ubmVjdAotIGltcGxlbWVudCBhIGRlZGljYXRlZCBwYWdlIGZsaXAgdGltZS1vdXQgd29y a2VyLCByZW1vdmUgbG9naWMgZnJvbSBjb25uZWN0b3IKICBkZXRlY3QgY2FsbGJhY2sKLSBtb3Zl IG1vZGVfdmFsaWQgZnJvbSBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB0byBkcm1fc2ltcGxl X2Rpc3BsYXlfcGlwZV9mdW5jcwotIHVzZSBkcm1fZ2VtX29iamVjdF9wdXRfdW5sb2NrZWQgaW5z dGVhZCBvZiBvYnNvbGV0ZSBkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZV91bmxvY2tlZAotIG1p bm9yIGNsZWFudXBzCgpDaGFuZ2VzIHNpbmNlIHYyOgoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0g bm8gY2hhbmdlcyB0byBYZW4gcmVsYXRlZCBjb2RlIChzaGFyZWQgYnVmZmVyIGhhbmRsaW5nLCBl dmVudCBjaGFubmVscyBldGMuKQotIHJld29yayBEUk0gZHJpdmVyIHJlbGVhc2Ugd2l0aCBob3Rw bHVnIChEYW5pZWwpCi0gc3F1YXNoIHhlbl9kcm1fZnJvbnQgYW5kIHhlbl9kcm1fZnJvbnRfZHJ2 IGFzIHRoZXkgZGVwZW5kIG9uIGVhY2gKICBvdGhlciB0b28gaGVhdmlseSBub3cKLSByZW1vdmUg cGxhdGZvcm0gZHJpdmVyIGFuZCBpbnN0YW50aWF0ZSBEUk0gZGV2aWNlCiAgZnJvbSB4ZW5idXMg ZHJpdmVyIGRpcmVjdGx5Ci0gaGF2ZSBzZXJpYWxpemluZyBtdXRleCBwZXIgY29ubmVjdG9yLCBu b3QgYSBzaW5nbGUgb25lLAogIHNvIHdlIGRvbid0IGludHJvZHVjZSBhIGJvdHRsZSBuZWNrIGZv ciBtdWx0aXBsZSBjb25uZWN0b3JzCi0gbWlub3IgY29tbWVudHMgYWRkcmVzc2VkIChEYW5pZWwp CgpDaGFuZ2VzIHNpbmNlIHYxOgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gdXNlIFNQRFggbGlj ZW5zZSBpZGVudGlmaWVyLCBzZXQgbGljZW5zZSB0byBHUEx2MiBPUiBNSVQKLSBjaGFuZ2VkIG1p ZGxheWVycyB0byBkaXJlY3QgZnVuY3Rpb24gY2FsbHMsIHJlbW92ZWQ6CiAgLSBmcm9udF9vcHMK ICAtIGdlbV9vcHMKLSByZW5hbWVkIHhlbmJ1c19kcml2ZXIgY2FsbGJhY2tzIHRvIGFsaWduIHdp dGggZXhpc2l0bmcgUFYgZHJpdmVycwotIHJlLXdvcmtlZCBiYWNrZW5kIGVycm9yIGhhbmRsaW5n IHdpdGggY29ubmVjdG9yIGhvdHBsdWcgdWV2ZW50cwotIHJlbW92ZWQgdmJsYW5rIGhhbmRsaW5n IHNvIHVzZXItc3BhY2UgZG9lc24ndCBoYXZlIGFuIGltcHJlc3Npb24KICB3ZSByZWFsbHkgc3Vw cG9ydCB0aGF0Ci0gZGlyZWN0bHkgdXNlIGZyb250J3MgbW9kZV9zZXQgaW4gZGlzcGxheSBlbmFi bGUvZGlzYWJsZQotIHJlbW92ZWQgQlVHX09OLCBlcnJvciBoYW5kbGluZyBpbXBsZW1lbnRlZAot IG1vdmVkIGRyaXZlciBkb2N1bWVudGF0aW9uIGludG8gRG9jdW1lbnRhdGlvbi9ncHUKLSBvdGhl ciBjb21tZW50cyBmcm9tIFhlbiBjb21tdW5pdHkgYWRkcmVzc2VkIChCb3JpcyBhbmQgSnVlcmdl bikKLSBzcXVhc2hlZCBYZW4gYW5kIERSTSBwYXRjaGVzIGZvciBiZXR0ZXIgaW50ZXJyY29ubmVj dGlvbiB2aXNpYmlsaXR5Ci0gZm9yIHlvdXIgY29udmVuaWVuY2UgZHJpdmVyIGlzIGF2YWlsYWJs ZSBhdCBbMTFdCgpUaGFuayB5b3UsCk9sZWtzYW5kciBBbmRydXNoY2hlbmtvCgpbMV0gaHR0cHM6 Ly93aWtpLnhlbi5vcmcvd2lraS9QYXJhdmlydHVhbGl6YXRpb25fKFBWKSNQVl9JT19Ecml2ZXJz ClsyXSBodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92NC4xNi1yYzIvc291cmNlL2lu Y2x1ZGUveGVuL2ludGVyZmFjZS9pby9kaXNwbGlmLmgKWzNdIGh0dHBzOi8vZ2l0aHViLmNvbS94 ZW4tdHJvb3BzL2Rpc3BsX2JlCls0XSBodHRwczovL2dpdGh1Yi5jb20veGVuLXRyb29wcy9saWJ4 ZW5iZQpbNV0gaHR0cHM6Ly94ZW5iaXRzLnhlbi5vcmcvZ2l0d2ViLz9wPXhlbi5naXQ7YT1ibG9i O2Y9ZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluO2g9YTY5OTM2Nzc3OWUyYWUxMjEyZmY4ZjYzOGVm ZjAyMDZlYzFhMWNjOTtoYj1yZWZzL2hlYWRzL21hc3RlciNsMTI1NwpbNl0gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvZHJpLWRldmVsLzIwMTctTWFyY2gvMTM2MDM4Lmh0 bWwKWzddIGh0dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2RyaS1kZXZlbC9tc2cxNjQxMDIu aHRtbApbOF0gaHR0cHM6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvZHJpLWRldmVsL21zZzE2NDQ2 My5odG1sCls5XSBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzM4MDcz LwpbMTBdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJpZXMvMzgxMzkvClsx MV0gaHR0cHM6Ly9naXRodWIuY29tL2FuZHIyMDAwL2xpbnV4L2NvbW1pdHMvZHJtX3RpcF9wdl9k cm1fdjIKWzEyXSBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMTc1Nzc5 LwpbMTNdIGh0dHBzOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2RyaS1kZXZlbC9tc2cxNzA0NTMu aHRtbApbMTRdIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yMTIzMjEv CgoKT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gKDEpOgogIGRybS94ZW4tZnJvbnQ6IEFkZCBzdXBw b3J0IGZvciBYZW4gUFYgZGlzcGxheSBmcm9udGVuZAoKIERvY3VtZW50YXRpb24vZ3B1L2RyaXZl cnMucnN0ICAgICAgICAgICAgICAgfCAgIDEgKwogRG9jdW1lbnRhdGlvbi9ncHUveGVuLWZyb250 LnJzdCAgICAgICAgICAgICB8ICA0MyArKwogZHJpdmVycy9ncHUvZHJtL0tjb25maWcgICAgICAg ICAgICAgICAgICAgICB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS94ZW4vS2NvbmZpZyAgICAgICAgICAg ICAgICAgfCAgMzAgKwogZHJpdmVycy9ncHUvZHJtL3hlbi9NYWtlZmlsZSAgICAgICAgICAgICAg ICB8ICAxNiArCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuYyAgICAgICAgIHwg ODgyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVu X2RybV9mcm9udC5oICAgICAgICAgfCAxODggKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hl bl9kcm1fZnJvbnRfY2ZnLmMgICAgIHwgIDc3ICsrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f ZHJtX2Zyb250X2NmZy5oICAgICB8ICAzNyArKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2Nvbm4uYyAgICB8IDExNSArKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1f ZnJvbnRfY29ubi5oICAgIHwgIDI3ICsKIGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9u dF9ldnRjaG5sLmMgfCAzODcgKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9k cm1fZnJvbnRfZXZ0Y2hubC5oIHwgIDgxICsrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2dlbS5jICAgICB8IDMxNCArKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hl bl9kcm1fZnJvbnRfZ2VtLmggICAgIHwgIDQzICsrCiBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9k cm1fZnJvbnRfZ2VtX2NtYS5jIHwgIDc5ICsrKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2ttcy5jICAgICB8IDM3MiArKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS94ZW4v eGVuX2RybV9mcm9udF9rbXMuaCAgICAgfCAgMjYgKwogZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5f ZHJtX2Zyb250X3NoYnVmLmMgICB8IDQzNiArKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmggICB8ICA3MiArKysKIDIxIGZpbGVzIGNoYW5nZWQs IDMyMjkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZ3B1 L3hlbi1mcm9udC5yc3QKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL0tj b25maWcKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL01ha2VmaWxlCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250LmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnQuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcuYwog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9jZmcu aAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4veGVuX2RybV9mcm9udF9j b25uLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJv bnRfY29ubi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJt X2Zyb250X2V2dGNobmwuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS94ZW4v eGVuX2RybV9mcm9udF9ldnRjaG5sLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfZ2VtX2NtYS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X2ttcy5oCiBjcmVhdGUgbW9kZSAx MDA2NDQgZHJpdmVycy9ncHUvZHJtL3hlbi94ZW5fZHJtX2Zyb250X3NoYnVmLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0veGVuL3hlbl9kcm1fZnJvbnRfc2hidWYuaAoKLS0g CjIuMTYuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755506AbeDCLXa (ORCPT ); Tue, 3 Apr 2018 07:23:30 -0400 Received: from mail-lf0-f67.google.com ([209.85.215.67]:42049 "EHLO mail-lf0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755121AbeDCLX1 (ORCPT ); Tue, 3 Apr 2018 07:23:27 -0400 X-Google-Smtp-Source: AIpwx4+QO3Z1YQh5SVW7tKjD7DajZbDRgCcsO9Y0Ghv4LM/gKfM3TKN78ICQmDRKzFqLQ9oAuihiQA== From: Oleksandr Andrushchenko To: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, airlied@linux.ie, daniel.vetter@intel.com, seanpaul@chromium.org, gustavo@padovan.org, jgross@suse.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Cc: andr2000@gmail.com, Oleksandr Andrushchenko Subject: [PATCH v6 RESEND 0/1] drm/xen-front: Add support for Xen PV display frontend Date: Tue, 3 Apr 2018 14:23:16 +0300 Message-Id: <20180403112317.28751-1-andr2000@gmail.com> X-Mailer: git-send-email 2.16.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Oleksandr Andrushchenko Resending with even more checkpatch code-style fixes. Hello! Boris/Daniel, I put your R-b tags, so please do let me know if this is not acceptable, so I remove the tags. This patch series adds support for Xen [1] para-virtualized frontend display driver. It implements the protocol from include/xen/interface/io/displif.h [2]. Accompanying backend [3] is implemented as a user-space application and its helper library [4], capable of running as a Weston client or DRM master. Configuration of both backend and frontend is done via Xen guest domain configuration options [5]. ******************************************************************************* * Driver limitations ******************************************************************************* 1. Configuration options 1.1 (contiguous display buffers) and 2 (backend allocated buffers) below are not supported at the same time. 2. Only primary plane without additional properties is supported. 3. Only one video mode supported which resolution is configured via XenStore. 4. All CRTCs operate at fixed frequency of 60Hz. ******************************************************************************* * Driver modes of operation in terms of display buffers used ******************************************************************************* Depending on the requirements for the para-virtualized environment, namely requirements dictated by the accompanying DRM/(v)GPU drivers running in both host and guest environments, number of operating modes of para-virtualized display driver are supported: - display buffers can be allocated by either frontend driver or backend - display buffers can be allocated to be contiguous in memory or not Note! Frontend driver itself has no dependency on contiguous memory for its operation. ******************************************************************************* * 1. Buffers allocated by the frontend driver. ******************************************************************************* The below modes of operation are configured at compile-time via frontend driver's kernel configuration. 1.1. Front driver configured to use GEM CMA helpers This use-case is useful when used with accompanying DRM/vGPU driver in guest domain which was designed to only work with contiguous buffers, e.g. DRM driver based on GEM CMA helpers: such drivers can only import contiguous PRIME buffers, thus requiring frontend driver to provide such. In order to implement this mode of operation para-virtualized frontend driver can be configured to use GEM CMA helpers. 1.2. Front driver doesn't use GEM CMA If accompanying drivers can cope with non-contiguous memory then, to lower pressure on CMA subsystem of the kernel, driver can allocate buffers from system memory. Note! If used with accompanying DRM/(v)GPU drivers this mode of operation may require IOMMU support on the platform, so accompanying DRM/vGPU hardware can still reach display buffer memory while importing PRIME buffers from the frontend driver. ******************************************************************************* * 2. Buffers allocated by the backend ******************************************************************************* This mode of operation is run-time configured via guest domain configuration through XenStore entries. For systems which do not provide IOMMU support, but having specific requirements for display buffers it is possible to allocate such buffers at backend side and share those with the frontend. For example, if host domain is 1:1 mapped and has DRM/GPU hardware expecting physically contiguous memory, this allows implementing zero-copying use-cases. I would like to thank at least, but not at last the following people/communities who helped this driver to happen ;) 1. My team at EPAM for continuous support 2. Xen community for answering tons of questions on different modes of operation of the driver with respect to virtualized environment. 3. Rob Clark for "GEM allocation for para-virtualized DRM driver" [6] 4. Maarten Lankhorst for "Atomic driver and old remove FB behavior" [7] 5. Ville Syrjälä for "Questions on page flips and atomic modeset" [8] Changes since v5: ******************************************************************************* - fixed most of scripts/checkpatch.pl warnings Changes since v4: ******************************************************************************* - updated the driver after "drm/simple-kms-helper: Plumb plane state to the enable hook" [14] - made display_mode_valid static - fixed page leak on event channel error path - changed title of the documentation to match the rest of the drivers - removed from the series the patch from Noralf Trønnes [12] as it was sent out as a standalone one Changes since v3: ******************************************************************************* - no changes to Xen related code (shared buffer handling, event channels etc.), but minor changes to xenbus_driver state machine due to re-worked unplug implementation: additional state checks added - re-worked dumb creation code to fix race condition (drm_gem_handle_create) - use drm_dev_{enter|exit} to protect code which must not run when unplugged - re-work unplug code to fully support "zombie" DRM devices on backend disconnect - implement a dedicated page flip time-out worker, remove logic from connector detect callback - move mode_valid from drm_connector_helper_funcs to drm_simple_display_pipe_funcs - use drm_gem_object_put_unlocked instead of obsolete drm_gem_object_unreference_unlocked - minor cleanups Changes since v2: ******************************************************************************* - no changes to Xen related code (shared buffer handling, event channels etc.) - rework DRM driver release with hotplug (Daniel) - squash xen_drm_front and xen_drm_front_drv as they depend on each other too heavily now - remove platform driver and instantiate DRM device from xenbus driver directly - have serializing mutex per connector, not a single one, so we don't introduce a bottle neck for multiple connectors - minor comments addressed (Daniel) Changes since v1: ******************************************************************************* - use SPDX license identifier, set license to GPLv2 OR MIT - changed midlayers to direct function calls, removed: - front_ops - gem_ops - renamed xenbus_driver callbacks to align with exisitng PV drivers - re-worked backend error handling with connector hotplug uevents - removed vblank handling so user-space doesn't have an impression we really support that - directly use front's mode_set in display enable/disable - removed BUG_ON, error handling implemented - moved driver documentation into Documentation/gpu - other comments from Xen community addressed (Boris and Juergen) - squashed Xen and DRM patches for better interrconnection visibility - for your convenience driver is available at [11] Thank you, Oleksandr Andrushchenko [1] https://wiki.xen.org/wiki/Paravirtualization_(PV)#PV_IO_Drivers [2] https://elixir.bootlin.com/linux/v4.16-rc2/source/include/xen/interface/io/displif.h [3] https://github.com/xen-troops/displ_be [4] https://github.com/xen-troops/libxenbe [5] https://xenbits.xen.org/gitweb/?p=xen.git;a=blob;f=docs/man/xl.cfg.pod.5.in;h=a699367779e2ae1212ff8f638eff0206ec1a1cc9;hb=refs/heads/master#l1257 [6] https://lists.freedesktop.org/archives/dri-devel/2017-March/136038.html [7] https://www.spinics.net/lists/dri-devel/msg164102.html [8] https://www.spinics.net/lists/dri-devel/msg164463.html [9] https://patchwork.freedesktop.org/series/38073/ [10] https://patchwork.freedesktop.org/series/38139/ [11] https://github.com/andr2000/linux/commits/drm_tip_pv_drm_v2 [12] https://patchwork.freedesktop.org/patch/175779/ [13] https://www.spinics.net/lists/dri-devel/msg170453.html [14] https://patchwork.freedesktop.org/patch/212321/ Oleksandr Andrushchenko (1): drm/xen-front: Add support for Xen PV display frontend Documentation/gpu/drivers.rst | 1 + Documentation/gpu/xen-front.rst | 43 ++ drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/xen/Kconfig | 30 + drivers/gpu/drm/xen/Makefile | 16 + drivers/gpu/drm/xen/xen_drm_front.c | 882 ++++++++++++++++++++++++++++ drivers/gpu/drm/xen/xen_drm_front.h | 188 ++++++ drivers/gpu/drm/xen/xen_drm_front_cfg.c | 77 +++ drivers/gpu/drm/xen/xen_drm_front_cfg.h | 37 ++ drivers/gpu/drm/xen/xen_drm_front_conn.c | 115 ++++ drivers/gpu/drm/xen/xen_drm_front_conn.h | 27 + drivers/gpu/drm/xen/xen_drm_front_evtchnl.c | 387 ++++++++++++ drivers/gpu/drm/xen/xen_drm_front_evtchnl.h | 81 +++ drivers/gpu/drm/xen/xen_drm_front_gem.c | 314 ++++++++++ drivers/gpu/drm/xen/xen_drm_front_gem.h | 43 ++ drivers/gpu/drm/xen/xen_drm_front_gem_cma.c | 79 +++ drivers/gpu/drm/xen/xen_drm_front_kms.c | 372 ++++++++++++ drivers/gpu/drm/xen/xen_drm_front_kms.h | 26 + drivers/gpu/drm/xen/xen_drm_front_shbuf.c | 436 ++++++++++++++ drivers/gpu/drm/xen/xen_drm_front_shbuf.h | 72 +++ 21 files changed, 3229 insertions(+) create mode 100644 Documentation/gpu/xen-front.rst create mode 100644 drivers/gpu/drm/xen/Kconfig create mode 100644 drivers/gpu/drm/xen/Makefile create mode 100644 drivers/gpu/drm/xen/xen_drm_front.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_cfg.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_cfg.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_conn.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_conn.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_evtchnl.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_evtchnl.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_gem.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_gem.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_gem_cma.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_kms.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_kms.h create mode 100644 drivers/gpu/drm/xen/xen_drm_front_shbuf.c create mode 100644 drivers/gpu/drm/xen/xen_drm_front_shbuf.h -- 2.16.2