Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp688964ybl; Wed, 14 Aug 2019 04:34:39 -0700 (PDT) X-Google-Smtp-Source: APXvYqwlk77cRDulBSFZMQPF5RIAl66UpYGbuzF+ADSsJl+UDDUC6wLS9rdygdizBQuEDpnEt+b/ X-Received: by 2002:a17:902:8696:: with SMTP id g22mr8987536plo.122.1565782479849; Wed, 14 Aug 2019 04:34:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565782479; cv=none; d=google.com; s=arc-20160816; b=vln+WV3lMfiKvYzJKBq9I49NJ01b6nD4LQ2fzNvtPIOAEPmsKzfhPH2OvMZHo6QqFy +ZELxTBxGdtBggcBUEtY6JjHGsD90JunbR+QBbZCWGP0SY07kUKKYkZrsPKZ0msKnitS 7SEeIXR6CetRU6EkXyORwuLuIv5mtArU8xG291xv0UzbCYssL6G0ac5R9dkRtobZUodb 6SdM8m6kSHH1n4bCNiRKquWmD+tGpSqbIL7X5oY5QknyTG+sj4HZ6Ja7yhZv2a1Sct8S uTHKk0e1JRnaRhKkbOCQ8/WvwgEL/rhsqsDwb3bxrmqWpKGEDFkPMj1yrwVI2Pp8yHJi 3Qww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version; bh=jnH5gEWlUPqTFMc04DMHRK5rlUo9OFLR8LpIJiKaA88=; b=l0jglgkMibEwDlPgkbfuwRXvBItmmxmzDjPgapZ4Tvc7aE0wmUjQmWO0eagQtmGdT/ 9JDrpJI8XS4MSSGZtGw3//r4l+bstk98o6ZAN9ai8e3Y9n/iMWugedDPpLyAV9c69xQ5 sxzC3vqpyFZjaeKNRzB5N78HZ5M+39JhQ1QdbXk57vbrWU+czYr5CHqz5X4Hu4cPFzV8 w4gb1XGWLdPAKWyqngpG9lQZzFU5i7NN9fzdoVuAOs6AED/IKxsK6orzsuXuSyHehX3J 3iKRKqsQQcv81EobPW2VEWp+eBCcsprO6nrWICf0saX8axyXAwfzSVHqtb/2f76BoviZ 8ddg== ARC-Authentication-Results: i=1; mx.google.com; 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 a17si8720827pls.3.2019.08.14.04.34.23; Wed, 14 Aug 2019 04:34:39 -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; 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 S1727558AbfHNLbn (ORCPT + 99 others); Wed, 14 Aug 2019 07:31:43 -0400 Received: from mail-ed1-f66.google.com ([209.85.208.66]:40723 "EHLO mail-ed1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726166AbfHNLbn (ORCPT ); Wed, 14 Aug 2019 07:31:43 -0400 Received: by mail-ed1-f66.google.com with SMTP id h8so21472448edv.7 for ; Wed, 14 Aug 2019 04:31:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jnH5gEWlUPqTFMc04DMHRK5rlUo9OFLR8LpIJiKaA88=; b=l8lsY6lc+W7S7lrfqASoMKiGTVAfU6dqc3WV0D294o427MiVGJeDUBVnqUD0BPU6JU N8SWvyc/fz/b5PWZZ1hZMWqQftnyS6cRzWnzXxPT8cG/lvQiQj4nzx/8484ru2vGLFAM oeQ+8cPIzglbQ/aUg8xucM5i/FVJ9dST4H2EeVWsBZX9IoKQIZ+G/bMKyeF4rGU4KfWr zuWzkxXgGH4975w+jZSD/qQygaWCXVyYFRtRq2uQ6PXEgJxW1W2ejCYsNy3XQEH2tdt4 IfLXNcmulTebnx0Lyyvx1p/wLviswPQRnrwWeNJXR6ovcp2rNoK19a6Zdnvnw81XJUKX EWFw== X-Gm-Message-State: APjAAAV4T6I40s8IwPgScbB0CKr0eQlwbtlgSgAORHhjmBfwYgDO05/M Z2vviD424DR8yZYFncAouucnbFEtmH4= X-Received: by 2002:a17:906:1d51:: with SMTP id o17mr19930689ejh.186.1565782300242; Wed, 14 Aug 2019 04:31:40 -0700 (PDT) Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com. [209.85.128.52]) by smtp.gmail.com with ESMTPSA id g22sm18483186ejr.87.2019.08.14.04.31.39 for (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128); Wed, 14 Aug 2019 04:31:39 -0700 (PDT) Received: by mail-wm1-f52.google.com with SMTP id p74so4287267wme.4 for ; Wed, 14 Aug 2019 04:31:39 -0700 (PDT) X-Received: by 2002:a1c:4c06:: with SMTP id z6mr7844443wmf.47.1565782298812; Wed, 14 Aug 2019 04:31:38 -0700 (PDT) MIME-Version: 1.0 References: <20190814060854.26345-1-codekipper@gmail.com> <20190814060854.26345-16-codekipper@gmail.com> In-Reply-To: <20190814060854.26345-16-codekipper@gmail.com> From: Chen-Yu Tsai Date: Wed, 14 Aug 2019 19:31:27 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 15/15] ASoC: sun4i-i2s: Adjust regmap settings To: Code Kipper Cc: Maxime Ripard , linux-sunxi , linux-arm-kernel , Liam Girdwood , Mark Brown , linux-kernel , Linux-ALSA , "Andrea Venturi (pers)" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 14, 2019 at 2:09 PM wrote: > > From: Marcus Cooper > > Bypass the regmap cache when flushing the i2s FIFOs and modify the tables > to reflect this. > > Signed-off-by: Marcus Cooper > --- > sound/soc/sunxi/sun4i-i2s.c | 31 ++++++++++--------------------- > 1 file changed, 10 insertions(+), 21 deletions(-) > > diff --git a/sound/soc/sunxi/sun4i-i2s.c b/sound/soc/sunxi/sun4i-i2s.c > index d3c8789f70bb..ecfc1ed79379 100644 > --- a/sound/soc/sunxi/sun4i-i2s.c > +++ b/sound/soc/sunxi/sun4i-i2s.c > @@ -876,9 +876,11 @@ static int sun4i_i2s_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) > static void sun4i_i2s_start_capture(struct sun4i_i2s *i2s) > { > /* Flush RX FIFO */ > + regcache_cache_bypass(i2s->regmap, true); > regmap_update_bits(i2s->regmap, SUN4I_I2S_FIFO_CTRL_REG, > SUN4I_I2S_FIFO_CTRL_FLUSH_RX, > SUN4I_I2S_FIFO_CTRL_FLUSH_RX); > + regcache_cache_bypass(i2s->regmap, false); > > /* Clear RX counter */ > regmap_write(i2s->regmap, SUN4I_I2S_RX_CNT_REG, 0); > @@ -897,9 +899,11 @@ static void sun4i_i2s_start_capture(struct sun4i_i2s *i2s) > static void sun4i_i2s_start_playback(struct sun4i_i2s *i2s) > { > /* Flush TX FIFO */ > + regcache_cache_bypass(i2s->regmap, true); > regmap_update_bits(i2s->regmap, SUN4I_I2S_FIFO_CTRL_REG, > SUN4I_I2S_FIFO_CTRL_FLUSH_TX, > SUN4I_I2S_FIFO_CTRL_FLUSH_TX); > + regcache_cache_bypass(i2s->regmap, false); > > /* Clear TX counter */ > regmap_write(i2s->regmap, SUN4I_I2S_TX_CNT_REG, 0); > @@ -1053,13 +1057,7 @@ static const struct snd_soc_component_driver sun4i_i2s_component = { > > static bool sun4i_i2s_rd_reg(struct device *dev, unsigned int reg) > { > - switch (reg) { > - case SUN4I_I2S_FIFO_TX_REG: > - return false; > - > - default: > - return true; > - } > + return true; The commit log needs to explain why this is relevant. And I'm not sure why one would read back the TX FIFO. Also, if it's always true, just drop the callback. ChenYu > } > > static bool sun4i_i2s_wr_reg(struct device *dev, unsigned int reg) > @@ -1078,6 +1076,8 @@ static bool sun4i_i2s_volatile_reg(struct device *dev, unsigned int reg) > { > switch (reg) { > case SUN4I_I2S_FIFO_RX_REG: > + case SUN4I_I2S_FIFO_TX_REG: > + case SUN4I_I2S_FIFO_STA_REG: > case SUN4I_I2S_INT_STA_REG: > case SUN4I_I2S_RX_CNT_REG: > case SUN4I_I2S_TX_CNT_REG: > @@ -1088,23 +1088,12 @@ static bool sun4i_i2s_volatile_reg(struct device *dev, unsigned int reg) > } > } > > -static bool sun8i_i2s_rd_reg(struct device *dev, unsigned int reg) > -{ > - switch (reg) { > - case SUN8I_I2S_FIFO_TX_REG: > - return false; > - > - default: > - return true; > - } > -} > - > static bool sun8i_i2s_volatile_reg(struct device *dev, unsigned int reg) > { > if (reg == SUN8I_I2S_INT_STA_REG) > return true; > if (reg == SUN8I_I2S_FIFO_TX_REG) > - return false; > + return true; > > return sun4i_i2s_volatile_reg(dev, reg); > } > @@ -1175,7 +1164,7 @@ static const struct regmap_config sun8i_i2s_regmap_config = { > .reg_defaults = sun8i_i2s_reg_defaults, > .num_reg_defaults = ARRAY_SIZE(sun8i_i2s_reg_defaults), > .writeable_reg = sun4i_i2s_wr_reg, > - .readable_reg = sun8i_i2s_rd_reg, > + .readable_reg = sun4i_i2s_rd_reg, > .volatile_reg = sun8i_i2s_volatile_reg, > }; > > @@ -1188,7 +1177,7 @@ static const struct regmap_config sun50i_i2s_regmap_config = { > .reg_defaults = sun50i_i2s_reg_defaults, > .num_reg_defaults = ARRAY_SIZE(sun50i_i2s_reg_defaults), > .writeable_reg = sun4i_i2s_wr_reg, > - .readable_reg = sun8i_i2s_rd_reg, > + .readable_reg = sun4i_i2s_rd_reg, > .volatile_reg = sun8i_i2s_volatile_reg, > }; > > -- > 2.22.0 >