From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751788AbdBOQTP (ORCPT ); Wed, 15 Feb 2017 11:19:15 -0500 Received: from mail.free-electrons.com ([62.4.15.54]:46332 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750905AbdBOQTO (ORCPT ); Wed, 15 Feb 2017 11:19:14 -0500 From: Maxime Ripard To: Daniel Vetter , David Airlie , Sean Paul , Jani Nikula Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Stefan Christ , Boris Brezillon , Maxime Ripard Subject: [PATCH v3 0/2] drm: Support framebuffer panning Date: Wed, 15 Feb 2017 17:19:07 +0100 Message-Id: X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This is a respin of the previous serie called "Support fast framebuffer panning for i.MX6" made by Stefan 6 monthes ago. The imx6 bits have been removed, and the comments that were made at that time fixed (hopefully). Let me know what you think, Maxime Changes from v2: - Renamed the CONFIG_DRM_CMA_FBDEV_BUFFER_NUM to CONFIG_DRM_FBDEV_OVERALLOC, and changed it for a percentage - Moved the overallocation code into the core fbdev helpers to not rely on CMA anymore - Changed the locks taken by drm_fb_helper_ioctl to the mode_config mutex intead of calling drm_modeset_lock_all - Don't test against drm_crtc's enabled anymore, but rely on the error code of drm_crtc_vblank_get instead - Defined drm_fb_helper_ioctl when DRM_FBDEV_EMULATION is not set in order to fix a compilation error - Don't wait for all CRTC's vblank but only the one given in the ioctl argument Changes from v1: - Added drm_fb_helper_ioctl to DRM_FB_HELPER_DEFAULT_OPS - Expanded a bit the kerneldoc for drm_fb_helper_ioctl - Added some locking to drm_fb_helper_ioctl - Checked that the framebuffer is indeed attached before allowing ioctl - Added a module parameter to specify the number of framebuffers to allocate Initial cover letter: Support fast framebuffer panning for i.MX6 im currently working on supporting double/tripple buffering for the framebuffer emulation on the i.MX6. While working on it I noticed that the mainline kernel does not support some features in the generic drm framebuffer emulation for framebuffer panning and vsync synchronisation. They are needed for simple framebuffer applications and some OpenGL libraries using double buffering with FBIOPUT_VSCREENINFO, FBIO_WAITFORVSYNC and FBIOPAN_DISPLAY. Stefan Christ (1): drm/fb-helper: implement ioctl FBIO_WAITFORVSYNC Xinliang Liu (1): drm/fb-helper: Add multi buffer support for cma fbdev drivers/gpu/drm/Kconfig | 9 ++++- drivers/gpu/drm/drm_fb_helper.c | 73 ++++++++++++++++++++++++++++++++++- include/drm/drm_fb_helper.h | 12 +++++- 3 files changed, 93 insertions(+), 1 deletion(-) base-commit: 0879b944c95d65f7523d178d3addaebe84e510ec -- git-series 0.8.11 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Ripard Subject: [PATCH v3 0/2] drm: Support framebuffer panning Date: Wed, 15 Feb 2017 17:19:07 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.free-electrons.com (mail.free-electrons.com [62.4.15.54]) by gabe.freedesktop.org (Postfix) with ESMTP id A76776E23E for ; Wed, 15 Feb 2017 16:19:14 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , David Airlie , Sean Paul , Jani Nikula Cc: Maxime Ripard , Stefan Christ , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGksCgpUaGlzIGlzIGEgcmVzcGluIG9mIHRoZSBwcmV2aW91cyBzZXJpZSBjYWxsZWQgIlN1cHBv cnQgZmFzdCBmcmFtZWJ1ZmZlcgpwYW5uaW5nIGZvciBpLk1YNiIgbWFkZSBieSBTdGVmYW4gNiBt b250aGVzIGFnby4gVGhlIGlteDYgYml0cyBoYXZlIGJlZW4KcmVtb3ZlZCwgYW5kIHRoZSBjb21t ZW50cyB0aGF0IHdlcmUgbWFkZSBhdCB0aGF0IHRpbWUgZml4ZWQgKGhvcGVmdWxseSkuCgpMZXQg bWUga25vdyB3aGF0IHlvdSB0aGluaywKTWF4aW1lCgpDaGFuZ2VzIGZyb20gdjI6CiAgLSBSZW5h bWVkIHRoZSBDT05GSUdfRFJNX0NNQV9GQkRFVl9CVUZGRVJfTlVNIHRvCiAgICBDT05GSUdfRFJN X0ZCREVWX09WRVJBTExPQywgYW5kIGNoYW5nZWQgaXQgZm9yIGEgcGVyY2VudGFnZQogIC0gTW92 ZWQgdGhlIG92ZXJhbGxvY2F0aW9uIGNvZGUgaW50byB0aGUgY29yZSBmYmRldiBoZWxwZXJzIHRv IG5vdCByZWx5CiAgICBvbiBDTUEgYW55bW9yZQogIC0gQ2hhbmdlZCB0aGUgbG9ja3MgdGFrZW4g YnkgZHJtX2ZiX2hlbHBlcl9pb2N0bCB0byB0aGUgbW9kZV9jb25maWcgbXV0ZXgKICAgIGludGVh ZCBvZiBjYWxsaW5nIGRybV9tb2Rlc2V0X2xvY2tfYWxsCiAgLSBEb24ndCB0ZXN0IGFnYWluc3Qg ZHJtX2NydGMncyBlbmFibGVkIGFueW1vcmUsIGJ1dCByZWx5IG9uIHRoZSBlcnJvcgogICAgY29k ZSBvZiBkcm1fY3J0Y192YmxhbmtfZ2V0IGluc3RlYWQKICAtIERlZmluZWQgZHJtX2ZiX2hlbHBl cl9pb2N0bCB3aGVuIERSTV9GQkRFVl9FTVVMQVRJT04gaXMgbm90IHNldCBpbgogICAgb3JkZXIg dG8gZml4IGEgY29tcGlsYXRpb24gZXJyb3IKICAtIERvbid0IHdhaXQgZm9yIGFsbCBDUlRDJ3Mg dmJsYW5rIGJ1dCBvbmx5IHRoZSBvbmUgZ2l2ZW4gaW4gdGhlIGlvY3RsCiAgICBhcmd1bWVudAoK Q2hhbmdlcyBmcm9tIHYxOgogIC0gQWRkZWQgZHJtX2ZiX2hlbHBlcl9pb2N0bCB0byBEUk1fRkJf SEVMUEVSX0RFRkFVTFRfT1BTCiAgLSBFeHBhbmRlZCBhIGJpdCB0aGUga2VybmVsZG9jIGZvciBk cm1fZmJfaGVscGVyX2lvY3RsCiAgLSBBZGRlZCBzb21lIGxvY2tpbmcgdG8gZHJtX2ZiX2hlbHBl cl9pb2N0bAogIC0gQ2hlY2tlZCB0aGF0IHRoZSBmcmFtZWJ1ZmZlciBpcyBpbmRlZWQgYXR0YWNo ZWQgYmVmb3JlIGFsbG93aW5nIGlvY3RsCiAgLSBBZGRlZCBhIG1vZHVsZSBwYXJhbWV0ZXIgdG8g c3BlY2lmeSB0aGUgbnVtYmVyIG9mIGZyYW1lYnVmZmVycyB0bwogICAgYWxsb2NhdGUKCkluaXRp YWwgY292ZXIgbGV0dGVyOiBTdXBwb3J0IGZhc3QgZnJhbWVidWZmZXIgcGFubmluZyBmb3IgaS5N WDYKCmltIGN1cnJlbnRseSB3b3JraW5nIG9uIHN1cHBvcnRpbmcgZG91YmxlL3RyaXBwbGUgYnVm ZmVyaW5nIGZvciB0aGUKZnJhbWVidWZmZXIgZW11bGF0aW9uIG9uIHRoZSBpLk1YNi4gIFdoaWxl IHdvcmtpbmcgb24gaXQgSSBub3RpY2VkIHRoYXQgdGhlCm1haW5saW5lIGtlcm5lbCBkb2VzIG5v dCBzdXBwb3J0IHNvbWUgZmVhdHVyZXMgaW4gdGhlIGdlbmVyaWMgZHJtCmZyYW1lYnVmZmVyIGVt dWxhdGlvbiBmb3IgZnJhbWVidWZmZXIgcGFubmluZyBhbmQgdnN5bmMgc3luY2hyb25pc2F0aW9u LgpUaGV5IGFyZSBuZWVkZWQgZm9yIHNpbXBsZSBmcmFtZWJ1ZmZlciBhcHBsaWNhdGlvbnMgYW5k IHNvbWUgT3BlbkdMCmxpYnJhcmllcyB1c2luZyBkb3VibGUgYnVmZmVyaW5nIHdpdGggRkJJT1BV VF9WU0NSRUVOSU5GTywKRkJJT19XQUlURk9SVlNZTkMgYW5kIEZCSU9QQU5fRElTUExBWS4KClN0 ZWZhbiBDaHJpc3QgKDEpOgogIGRybS9mYi1oZWxwZXI6IGltcGxlbWVudCBpb2N0bCBGQklPX1dB SVRGT1JWU1lOQwoKWGlubGlhbmcgTGl1ICgxKToKICBkcm0vZmItaGVscGVyOiBBZGQgbXVsdGkg YnVmZmVyIHN1cHBvcnQgZm9yIGNtYSBmYmRldgoKIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAg ICAgICAgfCAgOSArKysrLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDczICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fZmJfaGVs cGVyLmggICAgIHwgMTIgKysrKystCiAzIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmJhc2UtY29tbWl0OiAwODc5Yjk0NGM5NWQ2NWY3NTIzZDE3OGQzYWRk YWViZTg0ZTUxMGVjCi0tIApnaXQtc2VyaWVzIDAuOC4xMQpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK