From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7C9B1FCF41 for ; Sat, 25 Apr 2026 01:43:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777081384; cv=none; b=L69AOpP7iOKRtIVoYhBsAbqnN0nZWzPfAH3KbKObS42/sIa7pv85xultlZEXHTb9OeFv927SuSyZbzvFoTJTxKn2VJUd7Z/En/aoyEBEThjr6TSs++nuX32W6pYCUFp/5m2PsJNmFngyiDeEH9xMtg5CRv/v0K5Z9Osm/loZdNw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777081384; c=relaxed/simple; bh=+cdLIRk7vhwZO1mTjgtO6cxF+uoVQlfIJe72382/1X8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=uN6wqxhjSugXR1J5/nAWxJYHMYz4Nd4pzwQ804XgpqIiLb9RNoH2ceCossbV2AAQjbXXvhPCy18yVeDjoziY+rP8nEuj+hVmRpHt7HrsGrwcvGYkgswUiObqQv77hEP+1ADkW1NXqzS75tYGlJwchxKz1rvh/UEGJqAQs0OB7Pk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=G6Gfbe4r; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="G6Gfbe4r" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-2ab46931cf1so65640745ad.0 for ; Fri, 24 Apr 2026 18:43:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777081382; x=1777686182; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Z7jfOZXdYS61UScW0k+/0N0W+wALOe5mQD08+f58S0o=; b=G6Gfbe4rwPdKE9yQ1N9dR77SsaGX7INzaTIO5P3JFJHkv6EaucQ/fxW6QlI7+7acCE 9W7wAh2T+1Kw/PUNRaay4Eq6rcL9YAqS2EkIeY1+O6JYFBgMDWRtHW21FRMOw0qCFp/f jlmOlF7AjXr4xpcIz+zYv3GD5GLz6tpuiz/1D97uryvXiKhcuOULbRy2rKoLLWw8oMd0 ZZDeifch6lO+6weuXgTy5yA49XxnazinE3xGPjBEpRKvst4Fn32zJ+szEiUEr1t3sRej 9NfkHFScdHDxf12rwpyT9kZawrk16CbJsdN66KPqJ6ulTHmksBuhYvhsRpkjMHjnh1gc gY/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777081382; x=1777686182; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Z7jfOZXdYS61UScW0k+/0N0W+wALOe5mQD08+f58S0o=; b=GbdkZD280VumO7/DmQqcWX2URHHt3b2ngWbVCtMF2eVLrwa1e0m7Y5C7lnC7OptkZq 7ikxd/J3bAhV3GCqDFht4Vs/mSJYT9LviVA7KKUfxF6bkFDN9NDd5y/cDNWV3qOSifaH aVBWzUtZUt+5rp2OUL7kRYprcsPjgvWR0ssRwSkDYpobJXUJQrzVqr+zlBO/Ulz4PDTS HqL9QfWyR6O2PEiFArIw+HOQeQuPyNoPxPhoOTHJlVUumvdkHvFpFttNjgyeWHwKXpn/ w7yTS0Oag0MgNHTujW9XktdfQweozFNVf1tixE9CiybwGLM5kqfjV9qaRWpgSc5Qi90l wLzg== X-Forwarded-Encrypted: i=1; AFNElJ8Ld3HblOIPuXCCXszRXopvSaNEp+bS6QY4CPcr4AOzz4U1VgyCAYUsNcAsEd6J8chhcsDX4qtMJ0gM12Q=@vger.kernel.org X-Gm-Message-State: AOJu0YzxtVAxO7dtx5qhjT97CYaEAvlM8RXTIUA0Gu4HhJ5VN+HY5p90 rY1mMWzR+HytkI5cIUA85kpCe7XAFmPorEwoEXb56vUGKbDKp0iHBpCR X-Gm-Gg: AeBDieuGTEGNXWDUUfyyzuBb+YNdLJRsYCEXjwSqyUy1IK5xVSq1Kr/i5JJl4KwrvXv OEisEaP0TZ3eS/M8LXvKGe0M56+WaWR8yNOSMJyhM+3eHAezU5geGcPL12zDFd/17LBWfPfS7Jk 83oTAraI6ayfR3E3Fm2ildGA/IgIgnLdeUZMR12ZdI9nzPFRX33H1LQoUphvF3GRAMrOsojo3o4 JYUSuqMGjPIIVQAAWjIyiXb7YMiFolXoBOWH+7AMrXTLIXD64DbQ3jXWFU56ATmM2/jhv0795qs fnms4vSmNukYKTl0xQ4F90JaiPppDvmU1vMPOpI9xLX0vNlF2qqll2FWuPng3osfOUQH6Qxnohl wvlALuDTXHMXhg8pZnS0/sZgTvkXOf8IF3jRrATBHgShi6JpaO4vRQboqM1qNMYTmlQ8sydJx+r ajSDUydS0Mls/B+vnRSp/shxv69CZsq06uXAd5siJ4emDbYnvBvhcOGW+gvFpME3wJ6QimfT8jH LUqPr1y+agLyp4MafovEmbLPQ== X-Received: by 2002:a17:902:e748:b0:2b4:5d0c:7a85 with SMTP id d9443c01a7336-2b5f9dbcd42mr318493365ad.3.1777081382212; Fri, 24 Apr 2026 18:43:02 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d::8bd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5faa494e1sm235306615ad.35.2026.04.24.18.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Apr 2026 18:43:01 -0700 (PDT) From: Rosen Penev To: linux-sound@vger.kernel.org Cc: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Thierry Reding , Jonathan Hunter , linux-tegra@vger.kernel.org (open list:TEGRA ARCHITECTURE SUPPORT), linux-kernel@vger.kernel.org (open list) Subject: [PATCH] ASoC: tegra: ADX: simplify probe allocation Date: Fri, 24 Apr 2026 18:42:44 -0700 Message-ID: <20260425014244.439788-1-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Reduce 3 allocations to one using a flexible array member. Also use of_device_get_match_data. No error checking since it cannot be NULL. Signed-off-by: Rosen Penev --- sound/soc/tegra/tegra210_adx.c | 24 ++++++++---------------- sound/soc/tegra/tegra210_adx.h | 2 +- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/sound/soc/tegra/tegra210_adx.c b/sound/soc/tegra/tegra210_adx.c index d2f742ffc59d..3f6c068d00c8 100644 --- a/sound/soc/tegra/tegra210_adx.c +++ b/sound/soc/tegra/tegra210_adx.c @@ -676,17 +676,20 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct tegra210_adx *adx; - const struct of_device_id *match; - struct tegra210_adx_soc_data *soc_data; + const struct tegra210_adx_soc_data *soc_data; void __iomem *regs; + size_t alloc_size; int err; - adx = devm_kzalloc(dev, sizeof(*adx), GFP_KERNEL); + soc_data = of_device_get_match_data(&pdev->dev); + alloc_size = struct_size(adx, map, soc_data->ram_depth); + alloc_size += sizeof(u32) * soc_data->byte_mask_size; + + adx = devm_kzalloc(dev, alloc_size, GFP_KERNEL); if (!adx) return -ENOMEM; - match = of_match_device(tegra210_adx_of_match, dev); - soc_data = (struct tegra210_adx_soc_data *)match->data; + adx->byte_mask = adx->map + soc_data->ram_depth; adx->soc_data = soc_data; dev_set_drvdata(dev, adx); @@ -703,17 +706,6 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev) regcache_cache_only(adx->regmap, true); - adx->map = devm_kzalloc(dev, soc_data->ram_depth * sizeof(*adx->map), - GFP_KERNEL); - if (!adx->map) - return -ENOMEM; - - adx->byte_mask = devm_kzalloc(dev, - soc_data->byte_mask_size * sizeof(*adx->byte_mask), - GFP_KERNEL); - if (!adx->byte_mask) - return -ENOMEM; - tegra210_adx_dais[TEGRA_ADX_IN_DAI_ID].playback.channels_max = adx->soc_data->max_ch; diff --git a/sound/soc/tegra/tegra210_adx.h b/sound/soc/tegra/tegra210_adx.h index 176a4e40de0a..4406a4a74496 100644 --- a/sound/soc/tegra/tegra210_adx.h +++ b/sound/soc/tegra/tegra210_adx.h @@ -88,9 +88,9 @@ struct tegra210_adx_soc_data { struct tegra210_adx { struct regmap *regmap; - unsigned int *map; unsigned int *byte_mask; const struct tegra210_adx_soc_data *soc_data; + unsigned int map[]; }; #endif -- 2.54.0