From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753234AbcAQBCN (ORCPT ); Sat, 16 Jan 2016 20:02:13 -0500 Received: from vi37-28-154-113.vibiznes.pl ([37.28.154.113]:47093 "EHLO vps-vb.mhejs.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753095AbcAQBCM (ORCPT ); Sat, 16 Jan 2016 20:02:12 -0500 Message-ID: <569AE7D1.6050607@maciej.szmigiero.name> Date: Sun, 17 Jan 2016 02:01:05 +0100 From: "Maciej S. Szmigiero" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: Timur Tabi CC: Fabio Estevam , "alsa-devel@alsa-project.org" , Nicolin Chen , Xiubo Li , Liam Girdwood , Mark Brown , "linuxppc-dev@lists.ozlabs.org" , linux-kernel Subject: Re: [PATCH 3/3] ASoC: fsl_ssi: remove register defaults References: <5677107C.60904@maciej.szmigiero.name> <5693B4C1.4060400@maciej.szmigiero.name> <569AD8A7.7080803@maciej.szmigiero.name> <569ADC0D.2000807@tabi.org> In-Reply-To: <569ADC0D.2000807@tabi.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17.01.2016 01:10, Timur Tabi wrote: > Maciej S. Szmigiero wrote: >> +static const struct regmap_config fsl_ssi_regconfig_imx21 = { >> + .max_register = CCSR_SSI_SRMSK, >> + .reg_bits = 32, >> + .val_bits = 32, >> + .reg_stride = 4, >> + .val_format_endian = REGMAP_ENDIAN_NATIVE, >> + .num_reg_defaults_raw = CCSR_SSI_SRMSK / 4 + 1, >> + .readable_reg = fsl_ssi_readable_reg, >> + .volatile_reg = fsl_ssi_volatile_reg, >> + .precious_reg = fsl_ssi_precious_reg, >> + .writeable_reg = fsl_ssi_writeable_reg, >> + .cache_type = REGCACHE_RBTREE, >> +}; >> + >> static const struct regmap_config fsl_ssi_regconfig = { >> .max_register = CCSR_SSI_SACCDIS, >> .reg_bits = 32, >> .val_bits = 32, >> .reg_stride = 4, >> .val_format_endian = REGMAP_ENDIAN_NATIVE, >> - .reg_defaults = fsl_ssi_reg_defaults, >> - .num_reg_defaults = ARRAY_SIZE(fsl_ssi_reg_defaults), >> + .num_reg_defaults_raw = CCSR_SSI_SACCDIS / 4 + 1, >> .readable_reg = fsl_ssi_readable_reg, >> .volatile_reg = fsl_ssi_volatile_reg, >> .precious_reg = fsl_ssi_precious_reg, > > Is this really necessary? Why do we need separate register configs for one specific SOC? > There are already too many "if (some_stupid_imx_variant)" blocks in this driver. This is because (at least according to the datasheet) imx21-class SSI registers end at CCSR_SSI_SRMSK (no SACC{ST,EN,DIS} regs), so reading them for cache initialization may not be safe. Also, a "MXC 91221 only" comment before these regs in FSL tree (drivers/mxc/ssi/registers.h) seems to confirm that these registers aren't present at least on some SSI (or SoC) models. Best regards, Maciej Szmigiero