Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp596407imm; Fri, 11 May 2018 03:30:18 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrCOlzUmO5ObmLRQawvbT5UHlP+/Es2E5rdoNlmDC1tCoB1oSjHdWjFxRi/I6dSVM80AYox X-Received: by 2002:a62:e04c:: with SMTP id f73-v6mr4974472pfh.88.1526034618593; Fri, 11 May 2018 03:30:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526034618; cv=none; d=google.com; s=arc-20160816; b=n22irqNFuUXZN4Q1nkJ0hHNVLnY/fwZEM2KQ4NIQwTW4s8auPLWD6aS9+vjRuB3LfS +wsjWGWqEHJMCZ5r8NuEfkSyyH3rnW9xNxGsct9Zp8VMtrJMlIINORJ5kW888GmzA9LS 3o2/HKSkwrIpQ+dgQ/ZGBsJd4Zbo6nSUFL+Ad3S/+7WN0iLCZBYeo24x0wrRtsxMetts 5iKub0wQ4WBd+iakIvnYnnHyLiRlAgHrXdEMRgt+CyNyLzcNCG4uEjZxG+4VLbzX2ikV ZF3RSzdYKlkY+Bf2aqWQhPj73DeO/J1oLGrVVspHhK/Z9qoPdwKSgSoaWlAkMxVTUTrs yFRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=TYJu/IKo6IJz/6fWuKjP2kSotqpqnC9eyWiJxIHWm1E=; b=qqkj7zZqL8N0Iczi7y4Vc4Ba4W2UNZnR8OcRBdW/4epR869ACIk6NbQ4S9JRMKQRA9 g78FZ7ZChj5OCqto6+WN4uMxY7Q1fCeE0zfMMBeEdauSmwsOids3+jdplrda+Zcu+pPM H6wmWGqvjrKYeJmzohUDk7fRxgdIp/MG0IbC+Hr+jqYPTjCgx85o+IVIAGObCqTuw93P WJfaprzG8VwLXyVSb0xmK2jlS771CotqczZyQWHEku0B8ryTjnaxdF4Qja/wX8pNefkB rM1RKUW38mB+46V2oUsVspnBA25dUr9Khv2XV9r+gNNA4TesrLTeBqVsufnphEh38f06 KV9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=sy2NyRjS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 73-v6si2970152pfh.315.2018.05.11.03.30.03; Fri, 11 May 2018 03:30:18 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@baylibre-com.20150623.gappssmtp.com header.s=20150623 header.b=sy2NyRjS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752868AbeEKK3r (ORCPT + 99 others); Fri, 11 May 2018 06:29:47 -0400 Received: from mail-wr0-f174.google.com ([209.85.128.174]:33433 "EHLO mail-wr0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752627AbeEKK3p (ORCPT ); Fri, 11 May 2018 06:29:45 -0400 Received: by mail-wr0-f174.google.com with SMTP id o4-v6so4851695wrm.0 for ; Fri, 11 May 2018 03:29:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=TYJu/IKo6IJz/6fWuKjP2kSotqpqnC9eyWiJxIHWm1E=; b=sy2NyRjSA1oHi1hR/H0XJjKwvS3Al7a1xkX2mV0wg8S5mvHPiiXQpWODXrzYXdWSaO YsSbIlKHTzA3v0as5JTnakqXDHkfKE1diWhe8W5Vr1iwn1IU2T2GOorFTqtKyMHsrtVZ 2P1qKbSXtnU0CNzgxWhVRnMM0CxXUlDb12d0FW4TgOo+uHLx2g1mi64yjcyQkQ3/dd5m bOT3BaQ2z9bwMOMLUyVZXJQuZwasBf8p85JR29YiHDWBUB0NgBmnvxNDkElfm5RKJpdK ys7sba8fHdxVAW0O0RqNsgjWMeUPET9bHCNHYiWJnJK3mMJpCj9QmxmO2Qyy5V9VOEOF /HNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=TYJu/IKo6IJz/6fWuKjP2kSotqpqnC9eyWiJxIHWm1E=; b=i/9MVgwwoBy9ZV8vsQ/iyNdBwhmAjINZs8WQIXlq/kx7wjemgs+NJWXJ5uqJKhhHwA GerqlCaFVMBM2f2Oe+xyLMh1K2Ya1svMJfo7ImWAdMGra9YX/rFNwcYu5jrHJLLGWp6B omCQyJFzN1K2GsxU0wadg6CjRJkCc88Fl0Ma7vW/IIVO2cgtMetFyoEtepGhX/C1R1AQ 0mCu2kAqqjTQvF6QjAj0O8TH7O3eZNNV4yFZuJDAkt8hvDwx3xp7eDdmjjXRanA78BK2 1mJu5NL+DYqdkpVva9y6RGq5UHNQPiYjS2r6NEKLVsD+5AC7FkkG56tfv+d4d7CM7JSQ U9xQ== X-Gm-Message-State: ALKqPwdcMrsUA+vihHFQbvvyEBdtFKeGZ/TwpE3kkruYI+Os7PV1QfaY hcMnhZw08SuuTKK2IKSRalGsfCu1oFI= X-Received: by 2002:adf:d1d1:: with SMTP id m17-v6mr4221133wri.96.1526034584417; Fri, 11 May 2018 03:29:44 -0700 (PDT) Received: from [192.168.1.2] (141.pool85-51-114.dynamic.orange.es. [85.51.114.141]) by smtp.gmail.com with ESMTPSA id a79-v6sm786351wme.48.2018.05.11.03.29.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 03:29:43 -0700 (PDT) Subject: Re: [RFC] regmap: allow volatile register writes with cached only read maps To: Mark Brown Cc: linux-kernel@vger.kernel.org References: <1525817169-29233-1-git-send-email-jramirez@baylibre.com> <20180509083919.GU13402@sirena.org.uk> <65607fde-d0e9-0f08-3042-f6a58b760896@baylibre.com> <20180511020049.GD949@sirena.org.uk> From: Jorge Ramirez-Ortiz Message-ID: <7cc158bb-3471-4d8e-d066-2e7f535812eb@baylibre.com> Date: Fri, 11 May 2018 12:29:42 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180511020049.GD949@sirena.org.uk> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/11/2018 04:00 AM, Mark Brown wrote: > On Wed, May 09, 2018 at 01:49:21PM +0200, Jorge Ramirez-Ortiz wrote: >> On 05/09/2018 10:39 AM, Mark Brown wrote: >>> I don't understand what voltile access means for write only devices. >>> Volatile means that we don't read the cache but go direct to the >>> hardware so if we can't read the hardware that's pretty redundant, a >>> volatile read that goes to the cache is just a default read. >> 1. only cached reads: (as a consequence every regmap write must succeed). >> 2. cached writes: do not access the hardware unless the value differs from >> what is in the cache already or (3) applies. >> 3. support for selectable volatile writes: those that will always access the >> device no matter what the cache holds. > We don't currently suppress writes except when regmap_update_bits() > notices that the modification was a noop. You probably want to be using > regmap_write_bits() here instead of regmap_update_bits(), that will > always do the write. but isnt that interface at a different level? I am not sure if you are asking me to review my patch or just discarding the RFC and highlighting that I have a configuration problem. In my use case and what triggered this RFC (config below), an 'amixer set' might never reach the driver's .reg_write interface even though the register is configured as volatile (to me this is not consistent since volatile_reg is being silently ignored). So I dont see where/how your recommendation fits; maybe you could clarify a bit more please? static const struct regmap_config foo_regmap = { ??? .reg_write??? ?????? = foo_write_reg, ??? .reg_bits??? ??????? = 32, ??? .val_bits??? ??????? = 32, ??? .reg_stride??? ????? = 1, ??? .volatile_reg??? ??? = foo_volatile_reg, ??? .max_register??? ??? = CODEC_ENABLE_DEBUG_CTRL_REG, ??? .reg_defaults??? ??? = foo_reg_defaults, ??? .num_reg_defaults??? = ARRAY_SIZE(foo_reg_defaults), ??? .cache_type??? ????? = REGCACHE_RBTREE, };