From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966626AbdLSIxu (ORCPT ); Tue, 19 Dec 2017 03:53:50 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:57330 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935862AbdLSIxr (ORCPT ); Tue, 19 Dec 2017 03:53:47 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20171219085344euoutp02b2d47da2d8ae00c7ef92637e07557d49~BpiRKrRCi1785217852euoutp02H X-AuditID: cbfec7f4-f790c6d0000075d3-8c-5a38d39799f3 Subject: Re: [PATCH] drm/bridge: analogix_dp: Use relaxed MMIO accessors To: Marc Zyngier , Archit Taneja , Laurent Pinchart Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org From: Andrzej Hajda Message-id: <1a70f78c-a94c-4fcf-e89d-da90973cbc79@samsung.com> Date: Tue, 19 Dec 2017 09:53:42 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-version: 1.0 In-reply-to: <20171218113935.8438-1-marc.zyngier@arm.com> Content-type: text/plain; charset="utf-8" Content-language: en-US Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMKsWRmVeSWpSXmKPExsWy7djP87rTL1tEGfzfpGXR1PGW1eLK1/ds Fp0Tl7BbXN41h83i751/bA6sHmvmrWH0uNzXy+Qxu2Mmq8f97uNMHp83yQWwRnHZpKTmZJal FunbJXBlvLr/kalggUDF18+XmRsYD/B2MXJwSAiYSPT9Sexi5AQyxSQu3FvPBhIWEljKKLHJ p4uRC8j8DGR++cEEUWMiMenuQkaIxDJGifPHzrJBOM8YJVqnvmMFqRIW8JBYc+Q4M0hCRKCT UWLGjCUsIAlmAUeJv/1bmUFsNgFNib+bb4Kt4xWwk1i1ywAkzCKgKvH25j2wbaICERJdz3aB zeQVEJT4Mfke2BhOAUuJ+8eusEKM1JR48WUS1HhxiebWm1C2vMTmNW/BbpAQOMEm0dr2GOoF F4n/iyezQtjCEq+Ob2GHsGUkOjsOMkE0dDNKfOo/wQ7hTGGU+PdhBjNElbXE4eMXoVbzSUza Np0ZEo68Eh1tQhAlHhKnFi2EWuAo8WDTMVZIEPUwSuz+up1pAqP8LCQfzULyxSwkX8xC8sUC RpZVjCKppcW56anFJnrFibnFpXnpesn5uZsYgUnl9L/jX3YwLj5mdYhRgINRiYf3w3XzKCHW xLLiytxDjBIczEoivAt3WkQJ8aYkVlalFuXHF5XmpBYfYpTmYFES57WNaosUEkhPLEnNTk0t SC2CyTJxcEo1ME5Z23Ox2Gm9zvNoft5JWl/4TTSmRrN19RQVlIT921ph7CY0v2ir4dp8A3X+ R6eCdh8pfnjUg29Oo8iivQ5395rOuaS6q//SCx1GMzaTj/HxC26m11+2u88lFhPZaLI+K+kD 068TjD9N02Kexq24kSX4Y0PRB+EXBz7sbq7Zxbi9ct08z5BNVUosxRmJhlrMRcWJAM95SM0m AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrOLMWRmVeSWpSXmKPExsVy+t/xK7rTL1tEGdy8wmfR1PGW1eLK1/ds Fp0Tl7BbXN41h83i751/bA6sHmvmrWH0uNzXy+Qxu2Mmq8f97uNMHp83yQWwRnHZpKTmZJal FunbJXBlvLr/kalggUDF18+XmRsYD/B2MXJySAiYSEy6u5ARwhaTuHBvPVsXIxeHkMASRonJ 69qZIZxnjBKv/+1jBakSFvCQWHPkOFhCRKCTUWLtyn9gCWYBR4m//VuZQWwhAQuJLf9usoHY bAKaEn83g9gcHLwCdhKrdhmAhFkEVCXe3rzHBGKLCkRINM2cCzaGV0BQ4sfkeywgNqeApcT9 Y1dYQVqZBdQlpkzJhdgkLtHcepMFwpaX2LzmLfMERsFZSLpnIXTMQtIxC0nHAkaWVYwiqaXF uem5xYZ6xYm5xaV56XrJ+bmbGIHBv+3Yz807GC9tDD7EKMDBqMTD63HLPEqINbGsuDL3EKME B7OSCO/CnRZRQrwpiZVVqUX58UWlOanFhxilOViUxHl796yOFBJITyxJzU5NLUgtgskycXBK NTCGZS6pSmZ6dPmGt8559RtmIcGFiu5bi/VMN05K/z+/m+vqLb7C7tSLGs7ndqbWzFvu8/qz T9eK4t0hHgXHHk/+mXVcRD9z2aH+B9V2PvNOHjrKbrbW7fG0zRsurP+psVfM/Kh3gNGsrbOi bXPzNdsmcj8tZ159kKdT/Em5dTXX1tgyv13xN1qUWIozEg21mIuKEwGi2HQSegIAAA== X-CMS-MailID: 20171219085343eucas1p18d361316271ce95bd3778aad118993bb X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20171219085343eucas1p18d361316271ce95bd3778aad118993bb X-RootMTR: 20171219085343eucas1p18d361316271ce95bd3778aad118993bb References: <20171218113935.8438-1-marc.zyngier@arm.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 18.12.2017 12:39, Marc Zyngier wrote: > The analogix DP bridge is entierely driven via MMIO accesses, and > does not do any DMA that requires coherency with the CPU. Yet, the > driver uses the non-relaxed accessors, forcing strong barriers to > be emitted on architectures with a relaxed memory ordering. > > This is of course completely unnecessary, and only serves as a way > to pointlessly reduce the performance of unsuspecting platforms. > > Switch the driver to the _relaxed accessors, making my kevin platform > a slightly better machine. Do you have any stats to justify this change? The common practice is/was to use writel/readl accessors to access MMIO, even if it is suboptimal in many cases. Has something changed in these practices? To be clear, I am not against this change. I am just curious. Regards Andrzej > > Signed-off-by: Marc Zyngier > --- > drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c | 488 +++++++++++----------- > 1 file changed, 244 insertions(+), 244 deletions(-) > > diff --git a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c > index 303083ad28e3..248d6ba913dc 100644 > --- a/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c > +++ b/drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c > @@ -31,13 +31,13 @@ void analogix_dp_enable_video_mute(struct analogix_dp_device *dp, bool enable) > u32 reg; > > if (enable) { > - reg = readl(dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > + reg = readl_relaxed(dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > reg |= HDCP_VIDEO_MUTE; > - writel(reg, dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > + writel_relaxed(reg, dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > } else { > - reg = readl(dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > + reg = readl_relaxed(dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > reg &= ~HDCP_VIDEO_MUTE; > - writel(reg, dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > + writel_relaxed(reg, dp->reg_base + ANALOGIX_DP_VIDEO_CTL_1); > } > } ...