From patchwork Thu Nov 27 08:41:45 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zefan Li X-Patchwork-Id: 41605 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-wi0-f200.google.com (mail-wi0-f200.google.com [209.85.212.200]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 533C82486D for ; Thu, 27 Nov 2014 08:46:02 +0000 (UTC) Received: by mail-wi0-f200.google.com with SMTP id ex7sf2892111wid.7 for ; Thu, 27 Nov 2014 00:46:01 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:sender:precedence:list-id :x-original-sender:x-original-authentication-results:mailing-list :list-post:list-help:list-archive:list-unsubscribe; bh=zjhWSskz7yZYm+6LatpN/Z1UdgyhHWpvZfNSfomWcr0=; b=bZBjL9f+SoJau9kiFoR9Sbd7kCQTZWV0BOpQCgJDU1KqMoWtwxBbGYMnThwrr2RIqF KIrGpMhQvWZMSl8SGzRikshVhuslgirtJb1Ce5kffrynO9D0EiVheEwWW3SKFKVBwKSF FdCQx0+56dgDCRSxZ7TDJlBTPW/iZRPXaMZocj4ga4bZOrhhwZPaMolbegbhyo/CCYNR kY/z8Jm1P0U6dl/i9J1/90PHnKGFHkXcISUhdf7wYvRAvTU1XSPa2pns9e0trWHdVn15 uu4km1/VEMXcmVzMmj/XXdIgVQ3o2N8X0tZ0KwsDqxlE30nSr60RQqFwiB+iDBh7THzg vJlg== X-Gm-Message-State: ALoCoQnVhRsMVRsomj9mhkS778/Zk2OCSlN+0YOB3MOMGg8QCohvZLVVB2TBX9FgHJ9Vzct894zw X-Received: by 10.195.17.134 with SMTP id ge6mr2060360wjd.2.1417077961580; Thu, 27 Nov 2014 00:46:01 -0800 (PST) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.152.205.38 with SMTP id ld6ls817077lac.50.gmail; Thu, 27 Nov 2014 00:46:01 -0800 (PST) X-Received: by 10.152.1.130 with SMTP id 2mr36896776lam.89.1417077961290; Thu, 27 Nov 2014 00:46:01 -0800 (PST) Received: from mail-lb0-f169.google.com (mail-lb0-f169.google.com. [209.85.217.169]) by mx.google.com with ESMTPS id q2si526376lah.126.2014.11.27.00.46.01 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 27 Nov 2014 00:46:01 -0800 (PST) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.169 as permitted sender) client-ip=209.85.217.169; Received: by mail-lb0-f169.google.com with SMTP id p9so3821006lbv.28 for ; Thu, 27 Nov 2014 00:46:01 -0800 (PST) X-Received: by 10.112.14.69 with SMTP id n5mr37903940lbc.34.1417077961159; Thu, 27 Nov 2014 00:46:01 -0800 (PST) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.112.184.201 with SMTP id ew9csp765450lbc; Thu, 27 Nov 2014 00:46:00 -0800 (PST) X-Received: by 10.66.141.167 with SMTP id rp7mr61243312pab.118.1417077959507; Thu, 27 Nov 2014 00:45:59 -0800 (PST) Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id kv12si10400322pab.232.2014.11.27.00.45.58 for ; Thu, 27 Nov 2014 00:45:59 -0800 (PST) Received-SPF: none (google.com: linux-kernel-owner@vger.kernel.org does not designate permitted sender hosts) client-ip=209.132.180.67; Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754101AbaK0Ipz (ORCPT + 26 others); Thu, 27 Nov 2014 03:45:55 -0500 Received: from mail.kernel.org ([198.145.19.201]:40967 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754032AbaK0Ipx (ORCPT ); Thu, 27 Nov 2014 03:45:53 -0500 Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id EA5E0201B4; Thu, 27 Nov 2014 08:45:51 +0000 (UTC) Received: from localhost.localdomain (unknown [183.247.163.231]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EB3F4201B9; Thu, 27 Nov 2014 08:45:49 +0000 (UTC) From: lizf@kernel.org To: stable@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Mark Brown , Zefan Li Subject: [PATCH 3.4 02/91] regmap: Fix handling of volatile registers for format_write() chips Date: Thu, 27 Nov 2014 16:41:45 +0800 Message-Id: <1417077794-9299-2-git-send-email-lizf@kernel.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1417077368-9217-1-git-send-email-lizf@kernel.org> References: <1417077368-9217-1-git-send-email-lizf@kernel.org> X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-kernel-owner@vger.kernel.org Precedence: list List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: linux-kernel-owner@vger.kernel.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.217.169 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , From: Mark Brown 3.4.105-rc1 review patch. If anyone has any objections, please let me know. ------------------ commit 5844a8b9d98ec11ce1d77610daacf3f0a0e14715 upstream. A previous over-zealous factorisation of code means that we only treat registers as volatile if they are readable. For most devices this is fine since normally most registers can be read and volatility implies readability but for format_write() devices where there is no readback from the hardware and we use volatility to mean simply uncacheability this means that we end up treating all registers as cacheble. A bigger refactoring of the code to clarify this is in order but as a fix make a minimal change and only check readability when checking volatility if there is no format_write() operation defined for the device. Signed-off-by: Mark Brown Tested-by: Lars-Peter Clausen Signed-off-by: Zefan Li --- drivers/base/regmap/regmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index ca72d1f..e554542 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -48,7 +48,7 @@ bool regmap_readable(struct regmap *map, unsigned int reg) bool regmap_volatile(struct regmap *map, unsigned int reg) { - if (!regmap_readable(map, reg)) + if (!map->format.format_write && !regmap_readable(map, reg)) return false; if (map->volatile_reg)