From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from vps-vb.mhejs.net (vi37-28-154-113.vibiznes.pl [37.28.154.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 85B7A1A0065 for ; Sun, 17 Jan 2016 12:02:11 +1100 (AEDT) Message-ID: <569AE7D1.6050607@maciej.szmigiero.name> Date: Sun, 17 Jan 2016 02:01:05 +0100 From: "Maciej S. Szmigiero" 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 List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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