From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Williams, Dan J" Subject: Re: [PATCH] drm/vmwgfx: switch from ioremap_cache to memremap Date: Mon, 19 Oct 2015 21:34:11 +0000 Message-ID: <1445290450.27395.2.camel@intel.com> References: <20151012223527.34143.87313.stgit@dwillia2-desk3.jf.intel.com> <561C9427.8020001@vmware.com> <561D4F65.5080908@vmware.com> <561D52FE.5080304@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id A76FD6E0C9 for ; Mon, 19 Oct 2015 14:34:24 -0700 (PDT) In-Reply-To: <561D52FE.5080304@vmware.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "thellstrom@vmware.com" Cc: "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAyMDE1LTEwLTEzIGF0IDIwOjUyICswMjAwLCBUaG9tYXMgSGVsbHN0cm9tIHdyb3Rl Og0KPiA+IE9rLCBJJ2xsIG1ha2UgbG9jYWwgcmVhZF9maWZvKCkgYW5kIHdyaXRlX2ZpZm8oKSBt YWNyb3MgdG8gbWFrZSB0aGlzDQo+ID4gZXhwbGljaXQuICBBcmUgdGhlc2UgbmFtZXMgb2sgd2l0 aCB5b3U/DQo+IA0KPiBTdXJlLg0KPiANCg0KU28gSSBlbmRlZCB1cCBqdXN0IGxlYXZpbmcgdGhl IF9faW9tZW0gYW5ub3RhdGlvbiBvbiBtbWlvX3ZpcnQgZm9yIG5vdw0KdW50aWwgdGhlIGltcGxl bWVudGF0aW9uIGNhbiBiZSBjb252ZXJ0ZWQgdG8gdXNlIGV4cGxpY2l0IGJhcnJpZXJzIHdoZXJl DQpuZWNlc3NhcnkuDQoNCjg8LS0tLS0NClN1YmplY3Q6IGRybS92bXdnZng6IHN3aXRjaCBmcm9t IGlvcmVtYXBfY2FjaGUgdG8gbWVtcmVtYXANCg0KRnJvbTogRGFuIFdpbGxpYW1zIDxkYW4uai53 aWxsaWFtc0BpbnRlbC5jb20+DQoNClBlciBjb21taXQgMmU1ODZhN2UwMTdhICJkcm0vdm13Z2Z4 OiBNYXAgdGhlIGZpZm8gYXMgY2FjaGVkIiB0aGUgZHJpdmVyDQpleHBlY3RzIHRoZSBmaWZvIHJl Z2lzdGVycyB0byBiZSBjYWNoZWFibGUuICBJbiBwcmVwYXJhdGlvbiBmb3INCmRlcHJlY2F0aW5n IGlvcmVtYXBfY2FjaGUoKSBjb252ZXJ0IGl0cyB1c2FnZSBpbiB2bXdnZnggdG8gbWVtcmVtYXAo KS4NCg0KQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4NCkNjOiBUaG9tYXMgSGVs bHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+DQpDYzogU2luY2xhaXIgWWVoIDxzeWVoQHZt d2FyZS5jb20+DQpDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KU2lnbmVkLW9m Zi1ieTogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0BpbnRlbC5jb20+DQotLS0NCiBkcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyB8ICAgMTQgKysrKysrKysrKy0tLS0NCiAx IGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkNCg0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMNCmluZGV4IDJjN2EyNWM3MWFmMi4uMzNlOWVkYTc3YmFk IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMNCisrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jDQpAQCAtNzUyLDggKzc1MiwxNCBA QCBzdGF0aWMgaW50IHZtd19kcml2ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBsb25nIGNoaXBzZXQpDQogCXR0bV9sb2NrX3NldF9raWxsKCZkZXZfcHJpdi0+ZmJkZXZf bWFzdGVyLmxvY2ssIGZhbHNlLCBTSUdURVJNKTsNCiAJZGV2X3ByaXYtPmFjdGl2ZV9tYXN0ZXIg PSAmZGV2X3ByaXYtPmZiZGV2X21hc3RlcjsNCiANCi0JZGV2X3ByaXYtPm1taW9fdmlydCA9IGlv cmVtYXBfY2FjaGUoZGV2X3ByaXYtPm1taW9fc3RhcnQsDQotCQkJCQkgICAgZGV2X3ByaXYtPm1t aW9fc2l6ZSk7DQorCS8qDQorCSAqIEZvcmNlIF9faW9tZW0gZm9yIHRoaXMgbWFwcGluZyB1bnRp bCB0aGUgaW1wbGllZCBjb21waWxlcg0KKwkgKiBiYXJyaWVycyBhbmQge1JFQUR8V1JJVEV9X09O Q0Ugc2VtYW50aWNzIGZyb20gdGhlDQorCSAqIGlve3JlYWR8d3JpdGV9MzIoKSBhY2Nlc3NvcnMg Y2FuIGJlIHJlcGxhY2VkIHdpdGggZXhwbGljaXQNCisJICogYmFycmllcnMuDQorCSAqLw0KKwlk ZXZfcHJpdi0+bW1pb192aXJ0ID0gKHZvaWQgX19pb21lbSAqKSBtZW1yZW1hcChkZXZfcHJpdi0+ bW1pb19zdGFydCwNCisJCQkJCSAgICBkZXZfcHJpdi0+bW1pb19zaXplLCBNRU1SRU1BUF9XQik7 DQogDQogCWlmICh1bmxpa2VseShkZXZfcHJpdi0+bW1pb192aXJ0ID09IE5VTEwpKSB7DQogCQly ZXQgPSAtRU5PTUVNOw0KQEAgLTkwNyw3ICs5MTMsNyBAQCBvdXRfbm9faXJxOg0KIG91dF9ub19k ZXZpY2U6DQogCXR0bV9vYmplY3RfZGV2aWNlX3JlbGVhc2UoJmRldl9wcml2LT50ZGV2KTsNCiBv dXRfZXJyNDoNCi0JaW91bm1hcChkZXZfcHJpdi0+bW1pb192aXJ0KTsNCisJbWVtdW5tYXAoKHZv aWQgX19mb3JjZSAqKSBkZXZfcHJpdi0+bW1pb192aXJ0KTsNCiBvdXRfZXJyMzoNCiAJdm13X3R0 bV9nbG9iYWxfcmVsZWFzZShkZXZfcHJpdik7DQogb3V0X2VycjA6DQpAQCAtOTU4LDcgKzk2NCw3 IEBAIHN0YXRpYyBpbnQgdm13X2RyaXZlcl91bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikN CiAJCXBjaV9yZWxlYXNlX3JlZ2lvbnMoZGV2LT5wZGV2KTsNCiANCiAJdHRtX29iamVjdF9kZXZp Y2VfcmVsZWFzZSgmZGV2X3ByaXYtPnRkZXYpOw0KLQlpb3VubWFwKGRldl9wcml2LT5tbWlvX3Zp cnQpOw0KKwltZW11bm1hcCgodm9pZCBfX2ZvcmNlICopIGRldl9wcml2LT5tbWlvX3ZpcnQpOw0K IAlpZiAoZGV2X3ByaXYtPmN0eC5zdGFnZWRfYmluZGluZ3MpDQogCQl2bXdfYmluZGluZ19zdGF0 ZV9mcmVlKGRldl9wcml2LT5jdHguc3RhZ2VkX2JpbmRpbmdzKTsNCiAJdm13X3R0bV9nbG9iYWxf cmVsZWFzZShkZXZfcHJpdik7DQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753674AbbJSVeb (ORCPT ); Mon, 19 Oct 2015 17:34:31 -0400 Received: from mga01.intel.com ([192.55.52.88]:35177 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751705AbbJSVea (ORCPT ); Mon, 19 Oct 2015 17:34:30 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.17,704,1437462000"; d="scan'208";a="830685274" From: "Williams, Dan J" To: "thellstrom@vmware.com" CC: "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" , "syeh@vmware.com" , "airlied@linux.ie" Subject: Re: [PATCH] drm/vmwgfx: switch from ioremap_cache to memremap Thread-Topic: [PATCH] drm/vmwgfx: switch from ioremap_cache to memremap Thread-Index: AQHRBT8t1WpP3+StG0GqllnVa+O7H55pWA2AgABp5IKAAARvvYAKEEIA Date: Mon, 19 Oct 2015 21:34:11 +0000 Message-ID: <1445290450.27395.2.camel@intel.com> References: <20151012223527.34143.87313.stgit@dwillia2-desk3.jf.intel.com> <561C9427.8020001@vmware.com> <561D4F65.5080908@vmware.com> <561D52FE.5080304@vmware.com> In-Reply-To: <561D52FE.5080304@vmware.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.139] Content-Type: text/plain; charset="utf-8" Content-ID: MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id t9JLYaCA011529 On Tue, 2015-10-13 at 20:52 +0200, Thomas Hellstrom wrote: > > Ok, I'll make local read_fifo() and write_fifo() macros to make this > > explicit. Are these names ok with you? > > Sure. > So I ended up just leaving the __iomem annotation on mmio_virt for now until the implementation can be converted to use explicit barriers where necessary. 8<----- Subject: drm/vmwgfx: switch from ioremap_cache to memremap From: Dan Williams Per commit 2e586a7e017a "drm/vmwgfx: Map the fifo as cached" the driver expects the fifo registers to be cacheable. In preparation for deprecating ioremap_cache() convert its usage in vmwgfx to memremap(). Cc: David Airlie Cc: Thomas Hellstrom Cc: Sinclair Yeh Cc: dri-devel@lists.freedesktop.org Signed-off-by: Dan Williams --- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 2c7a25c71af2..33e9eda77bad 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -752,8 +752,14 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) ttm_lock_set_kill(&dev_priv->fbdev_master.lock, false, SIGTERM); dev_priv->active_master = &dev_priv->fbdev_master; - dev_priv->mmio_virt = ioremap_cache(dev_priv->mmio_start, - dev_priv->mmio_size); + /* + * Force __iomem for this mapping until the implied compiler + * barriers and {READ|WRITE}_ONCE semantics from the + * io{read|write}32() accessors can be replaced with explicit + * barriers. + */ + dev_priv->mmio_virt = (void __iomem *) memremap(dev_priv->mmio_start, + dev_priv->mmio_size, MEMREMAP_WB); if (unlikely(dev_priv->mmio_virt == NULL)) { ret = -ENOMEM; @@ -907,7 +913,7 @@ out_no_irq: out_no_device: ttm_object_device_release(&dev_priv->tdev); out_err4: - iounmap(dev_priv->mmio_virt); + memunmap((void __force *) dev_priv->mmio_virt); out_err3: vmw_ttm_global_release(dev_priv); out_err0: @@ -958,7 +964,7 @@ static int vmw_driver_unload(struct drm_device *dev) pci_release_regions(dev->pdev); ttm_object_device_release(&dev_priv->tdev); - iounmap(dev_priv->mmio_virt); + memunmap((void __force *) dev_priv->mmio_virt); if (dev_priv->ctx.staged_bindings) vmw_binding_state_free(dev_priv->ctx.staged_bindings); vmw_ttm_global_release(dev_priv); {.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I