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 X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D543C2D0D2 for ; Thu, 19 Dec 2019 18:55:14 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 4F2652468A for ; Thu, 19 Dec 2019 18:55:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="Wb1RnXll" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4F2652468A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E0DDC6E3B7; Thu, 19 Dec 2019 18:55:12 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id DCD2B6E0D4 for ; Thu, 19 Dec 2019 18:55:06 +0000 (UTC) Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4EC6024686; Thu, 19 Dec 2019 18:55:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576781706; bh=8lf+bvqxmeTkyo+Jri7kTp9DHiOIK0LeB435rMQ/SCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wb1RnXllbyM5VgeCu+ctzG02hLIzQdXxPg/TFVB/Qqsnj+Ei+XTP2CwPydHp/CX6h OfmoYbqKK+26EofVWBqeVjH4aVUFALCvBZZbhmwqvqzbwUd/08ErziIEM0UaD0y86y 5Ou7LVIP2TyHwAr7j+35EWrE1rczQKn75EXU/c+4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Subject: [PATCH 5.4 48/80] drm/mgag200: Add workaround for HW that does not support startadd Date: Thu, 19 Dec 2019 19:34:40 +0100 Message-Id: <20191219183116.739455056@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191219183031.278083125@linuxfoundation.org> References: <20191219183031.278083125@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 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: , Cc: John Donnelly , Neil Armstrong , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, stable@vger.kernel.org, Andrzej Pietrasiewicz , Gerd Hoffmann , Thomas Zimmermann , Greg Kroah-Hartman , =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= , Dave Airlie , Thomas Gleixner , Sam Ravnborg Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2UuZGU+Cgpjb21taXQgMTU5 MWZhZGY4NTdjZGJhZjJiYWE1NWU0MjFhZjk5YTYxMzU0NzEzYyB1cHN0cmVhbS4KClRoZXJlJ3Mg YXQgbGVhc3Qgb25lIHN5c3RlbSB0aGF0IGRvZXMgbm90IGludGVycHJldCB0aGUgdmFsdWUgb2YK dGhlIGRldmljZSdzICdzdGFydGFkZCcgZmllbGQgY29ycmVjdGx5LCB3aGljaCBsZWFkcyB0byBp bmNvcnJlY3RseQpkaXNwbGF5ZWQgc2Nhbm91dCBidWZmZXJzLiBBbHdheXMgcGxhY2luZyB0aGUg YWN0aXZlIHNjYW5vdXQgYnVmZmVyCmF0IG9mZnNldCAwIHdvcmtzIGFyb3VuZCB0aGUgcHJvYmxl bS4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBaaW1tZXJtYW5uIDx0emltbWVybWFubkBzdXNlLmRl PgpSZXBvcnRlZC1ieTogSm9obiBEb25uZWxseSA8am9obi5wLmRvbm5lbGx5QG9yYWNsZS5jb20+ ClRlc3RlZC1ieTogSm9obiBEb25uZWxseSA8am9obi5wLmRvbm5lbGx5QG9yYWNsZS5jb20+ClJl dmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpGaXhlczog ODFkYTg3ZjYzYTFlICgiZHJtOiBSZXBsYWNlIGRybV9nZW1fdnJhbV9wdXNoX3RvX3N5c3RlbSgp IHdpdGgga3VubWFwICsgdW5waW4iKQpDYzogR2VyZCBIb2ZmbWFubiA8a3JheGVsQHJlZGhhdC5j b20+CkNjOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogTWFhcnRlbiBMYW5r aG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6IE1heGltZSBSaXBh cmQgPG1yaXBhcmRAa2VybmVsLm9yZz4KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5p ZT4KQ2M6IFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KQ2M6ICJZLkMuIENoZW4iIDx5 Y19jaGVuQGFzcGVlZHRlY2guY29tPgpDYzogTmVpbCBBcm1zdHJvbmcgPG5hcm1zdHJvbmdAYmF5 bGlicmUuY29tPgpDYzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+CkNjOiAi Sm9zw6kgUm9iZXJ0byBkZSBTb3V6YSIgPGpvc2Uuc291emFAaW50ZWwuY29tPgpDYzogQW5kcnpl aiBQaWV0cmFzaWV3aWN6IDxhbmRyemVqLnBAY29sbGFib3JhLmNvbT4KQ2M6IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPiAjIHY1LjMr Ckxpbms6IGh0dHBzOi8vZ2l0bGFiLmZyZWVkZXNrdG9wLm9yZy9kcm0vbWlzYy9pc3N1ZXMvNwpM aW5rOiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvbXNnaWQvMjAxOTEx MjYxMDE1MjkuMjAzNTYtNC10emltbWVybWFubkBzdXNlLmRlCltkcm9wIGRlYnVnZnNfaW5pdCBj YWxsYmFjayAtIGdyZWdraF0KU2lnbmVkLW9mZi1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVn a2hAbGludXhmb3VuZGF0aW9uLm9yZz4KCi0tLQogZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdh ZzIwMF9kcnYuYyB8ICAgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJp dmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuaCB8ICAgIDMgKysKIDIgZmlsZXMgY2hh bmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21nYWcyMDAvbWdhZzIwMF9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9t Z2FnMjAwX2Rydi5jCkBAIC0zMCw2ICszMCw4IEBAIG1vZHVsZV9wYXJhbV9uYW1lZChtb2Rlc2V0 LCBtZ2FnMjAwX21vZGUKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBkcml2ZXI7CiAKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsKKwl7IFBDSV9WRU5E T1JfSURfTUFUUk9YLCAweDUyMiwgUENJX1ZFTkRPUl9JRF9TVU4sIDB4NDg1MiwgMCwgMCwKKwkJ RzIwMF9TRV9BIHwgTUdBRzIwMF9GTEFHX0hXX0JVR19OT19TVEFSVEFERH0sCiAJeyBQQ0lfVkVO RE9SX0lEX01BVFJPWCwgMHg1MjIsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIEcyMDBf U0VfQSB9LAogCXsgUENJX1ZFTkRPUl9JRF9NQVRST1gsIDB4NTI0LCBQQ0lfQU5ZX0lELCBQQ0lf QU5ZX0lELCAwLCAwLCBHMjAwX1NFX0IgfSwKIAl7IFBDSV9WRU5ET1JfSURfTUFUUk9YLCAweDUz MCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgMCwgMCwgRzIwMF9FViB9LApAQCAtNjMsNiArNjUs MzUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbWdhZwogCURSTV9WUkFN X01NX0ZJTEVfT1BFUkFUSU9OUwogfTsKIAorc3RhdGljIGJvb2wgbWdhZzIwMF9waW5fYm9fYXRf MChjb25zdCBzdHJ1Y3QgbWdhX2RldmljZSAqbWRldikKK3sKKwlyZXR1cm4gbWRldi0+ZmxhZ3Mg JiBNR0FHMjAwX0ZMQUdfSFdfQlVHX05PX1NUQVJUQUREOworfQorCitpbnQgbWdhZzIwMF9kcml2 ZXJfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAorCQkJICAgICAgIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCisJCQkgICAgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICph cmdzKQoreworCXN0cnVjdCBtZ2FfZGV2aWNlICptZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwl1 bnNpZ25lZCBsb25nIHBnX2FsaWduOworCisJaWYgKFdBUk5fT05DRSghZGV2LT52cmFtX21tLCAi VlJBTSBNTSBub3QgaW5pdGlhbGl6ZWQiKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlwZ19hbGln biA9IDB1bDsKKworCS8qCisJICogQWxpZ25pbmcgc2Nhbm91dCBidWZmZXJzIHRvIHRoZSBzaXpl IG9mIHRoZSB2aWRlbyByYW0gZm9yY2VzCisJICogcGxhY2VtZW50IGF0IG9mZnNldCAwLiBXb3Jr cyBhcm91bmQgYSBidWcgd2hlcmUgSFcgZG9lcyBub3QKKwkgKiByZXNwZWN0ICdzdGFydGFkZCcg ZmllbGQuCisJICovCisJaWYgKG1nYWcyMDBfcGluX2JvX2F0XzAobWRldikpCisJCXBnX2FsaWdu ID0gUEZOX1VQKG1kZXYtPm1jLnZyYW1fc2l6ZSk7CisKKwlyZXR1cm4gZHJtX2dlbV92cmFtX2Zp bGxfY3JlYXRlX2R1bWIoZmlsZSwgZGV2LCAmZGV2LT52cmFtX21tLT5iZGV2LAorCQkJCQkgICAg IHBnX2FsaWduLCBmYWxzZSwgYXJncyk7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgZHJtX2RyaXZlciBk cml2ZXIgPSB7CiAJLmRyaXZlcl9mZWF0dXJlcyA9IERSSVZFUl9HRU0gfCBEUklWRVJfTU9ERVNF VCwKIAkubG9hZCA9IG1nYWcyMDBfZHJpdmVyX2xvYWQsCkBAIC03NCw3ICsxMDUsOSBAQCBzdGF0 aWMgc3RydWN0IGRybV9kcml2ZXIgZHJpdmVyID0gewogCS5tYWpvciA9IERSSVZFUl9NQUpPUiwK IAkubWlub3IgPSBEUklWRVJfTUlOT1IsCiAJLnBhdGNobGV2ZWwgPSBEUklWRVJfUEFUQ0hMRVZF TCwKLQlEUk1fR0VNX1ZSQU1fRFJJVkVSCisJLmR1bWJfY3JlYXRlID0gbWdhZzIwMF9kcml2ZXJf ZHVtYl9jcmVhdGUsCisJLmR1bWJfbWFwX29mZnNldCA9IGRybV9nZW1fdnJhbV9kcml2ZXJfZHVt Yl9tbWFwX29mZnNldCwKKwkuZ2VtX3ByaW1lX21tYXAgPSBkcm1fZ2VtX3ByaW1lX21tYXAsCiB9 OwogCiBzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgbWdhZzIwMF9wY2lfZHJpdmVyID0gewotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZ2FnMjAwL21nYWcyMDBfZHJ2LmgKQEAgLTE1OSw2ICsxNTksOSBAQCBlbnVtIG1nYV90 eXBlIHsKIAlHMjAwX0VXMywKIH07CiAKKy8qIEhXIGRvZXMgbm90IGhhbmRsZSAnc3RhcnRhZGQn IGZpZWxkIGNvcnJlY3QuICovCisjZGVmaW5lIE1HQUcyMDBfRkxBR19IV19CVUdfTk9fU1RBUlRB REQJKDF1bCA8PCA4KQorCiAjZGVmaW5lIE1HQUcyMDBfVFlQRV9NQVNLCSgweDAwMDAwMGZmKQog I2RlZmluZSBNR0FHMjAwX0ZMQUdfTUFTSwkoMHgwMGZmZmYwMCkKIAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo= 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 X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1DA59C2D0C1 for ; Thu, 19 Dec 2019 18:55:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E88A8222C2 for ; Thu, 19 Dec 2019 18:55:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576781711; bh=8lf+bvqxmeTkyo+Jri7kTp9DHiOIK0LeB435rMQ/SCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=NKTFHDS9YWSIFd0co3sd0QQpxQVe4OwhVObe95+xF9GDVlMe7NJGr/z2rUrFGnV+V zlJO3/lzt2XE+dhmmYVnm/YJ0MPU716VIs1GHnAK+dANXBXF9JByNgIAdOwN4qbIV/ OzMXpkPHt6I/+m0lA9AbiRTkv09KrLYfiO2/OvPI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730394AbfLSSzJ (ORCPT ); Thu, 19 Dec 2019 13:55:09 -0500 Received: from mail.kernel.org ([198.145.29.99]:50882 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730622AbfLSSzH (ORCPT ); Thu, 19 Dec 2019 13:55:07 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4EC6024686; Thu, 19 Dec 2019 18:55:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1576781706; bh=8lf+bvqxmeTkyo+Jri7kTp9DHiOIK0LeB435rMQ/SCM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wb1RnXllbyM5VgeCu+ctzG02hLIzQdXxPg/TFVB/Qqsnj+Ei+XTP2CwPydHp/CX6h OfmoYbqKK+26EofVWBqeVjH4aVUFALCvBZZbhmwqvqzbwUd/08ErziIEM0UaD0y86y 5Ou7LVIP2TyHwAr7j+35EWrE1rczQKn75EXU/c+4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Thomas Zimmermann , John Donnelly , Daniel Vetter , Gerd Hoffmann , Dave Airlie , Maarten Lankhorst , Maxime Ripard , David Airlie , Sam Ravnborg , "Y.C. Chen" , Neil Armstrong , Thomas Gleixner , =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= , Andrzej Pietrasiewicz , dri-devel@lists.freedesktop.org Subject: [PATCH 5.4 48/80] drm/mgag200: Add workaround for HW that does not support startadd Date: Thu, 19 Dec 2019 19:34:40 +0100 Message-Id: <20191219183116.739455056@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20191219183031.278083125@linuxfoundation.org> References: <20191219183031.278083125@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thomas Zimmermann commit 1591fadf857cdbaf2baa55e421af99a61354713c upstream. There's at least one system that does not interpret the value of the device's 'startadd' field correctly, which leads to incorrectly displayed scanout buffers. Always placing the active scanout buffer at offset 0 works around the problem. Signed-off-by: Thomas Zimmermann Reported-by: John Donnelly Tested-by: John Donnelly Reviewed-by: Daniel Vetter Fixes: 81da87f63a1e ("drm: Replace drm_gem_vram_push_to_system() with kunmap + unpin") Cc: Gerd Hoffmann Cc: Dave Airlie Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: David Airlie Cc: Sam Ravnborg Cc: "Y.C. Chen" Cc: Neil Armstrong Cc: Thomas Gleixner Cc: "José Roberto de Souza" Cc: Andrzej Pietrasiewicz Cc: dri-devel@lists.freedesktop.org Cc: # v5.3+ Link: https://gitlab.freedesktop.org/drm/misc/issues/7 Link: https://patchwork.freedesktop.org/patch/msgid/20191126101529.20356-4-tzimmermann@suse.de [drop debugfs_init callback - gregkh] Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/mgag200/mgag200_drv.c | 35 +++++++++++++++++++++++++++++++++- drivers/gpu/drm/mgag200/mgag200_drv.h | 3 ++ 2 files changed, 37 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/mgag200/mgag200_drv.c +++ b/drivers/gpu/drm/mgag200/mgag200_drv.c @@ -30,6 +30,8 @@ module_param_named(modeset, mgag200_mode static struct drm_driver driver; static const struct pci_device_id pciidlist[] = { + { PCI_VENDOR_ID_MATROX, 0x522, PCI_VENDOR_ID_SUN, 0x4852, 0, 0, + G200_SE_A | MGAG200_FLAG_HW_BUG_NO_STARTADD}, { PCI_VENDOR_ID_MATROX, 0x522, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_SE_A }, { PCI_VENDOR_ID_MATROX, 0x524, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_SE_B }, { PCI_VENDOR_ID_MATROX, 0x530, PCI_ANY_ID, PCI_ANY_ID, 0, 0, G200_EV }, @@ -63,6 +65,35 @@ static const struct file_operations mgag DRM_VRAM_MM_FILE_OPERATIONS }; +static bool mgag200_pin_bo_at_0(const struct mga_device *mdev) +{ + return mdev->flags & MGAG200_FLAG_HW_BUG_NO_STARTADD; +} + +int mgag200_driver_dumb_create(struct drm_file *file, + struct drm_device *dev, + struct drm_mode_create_dumb *args) +{ + struct mga_device *mdev = dev->dev_private; + unsigned long pg_align; + + if (WARN_ONCE(!dev->vram_mm, "VRAM MM not initialized")) + return -EINVAL; + + pg_align = 0ul; + + /* + * Aligning scanout buffers to the size of the video ram forces + * placement at offset 0. Works around a bug where HW does not + * respect 'startadd' field. + */ + if (mgag200_pin_bo_at_0(mdev)) + pg_align = PFN_UP(mdev->mc.vram_size); + + return drm_gem_vram_fill_create_dumb(file, dev, &dev->vram_mm->bdev, + pg_align, false, args); +} + static struct drm_driver driver = { .driver_features = DRIVER_GEM | DRIVER_MODESET, .load = mgag200_driver_load, @@ -74,7 +105,9 @@ static struct drm_driver driver = { .major = DRIVER_MAJOR, .minor = DRIVER_MINOR, .patchlevel = DRIVER_PATCHLEVEL, - DRM_GEM_VRAM_DRIVER + .dumb_create = mgag200_driver_dumb_create, + .dumb_map_offset = drm_gem_vram_driver_dumb_mmap_offset, + .gem_prime_mmap = drm_gem_prime_mmap, }; static struct pci_driver mgag200_pci_driver = { --- a/drivers/gpu/drm/mgag200/mgag200_drv.h +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h @@ -159,6 +159,9 @@ enum mga_type { G200_EW3, }; +/* HW does not handle 'startadd' field correct. */ +#define MGAG200_FLAG_HW_BUG_NO_STARTADD (1ul << 8) + #define MGAG200_TYPE_MASK (0x000000ff) #define MGAG200_FLAG_MASK (0x00ffff00)