From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f182.google.com (mail-pf1-f182.google.com [209.85.210.182]) (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 9C673346795 for ; Wed, 8 Apr 2026 17:08:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775668111; cv=none; b=KY8YU5OmZLCc3yy7aZVDP/zPrNhjF9rmhw1G9wjK0+pkGxG+qcsVadJRALvSRu2odily1ifFyhhlcRGGrvnUlZLk4BXLbscmptzykvbtBnNS4YnwRfqD4MBzbOmY5gCzPDTv6mH/nsStMbGC/tttH2T6j2X5YoaQN2UYZuRhURo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775668111; c=relaxed/simple; bh=TVDvBDhhE1GFZeZZeFs+dGuWH0KASYUMZZiT5zbEg7s=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=gyd8Ck+4Oj/JY7j2UIEWme5aFdkBflzTqOtlVAYaxuvi8xh82aakMvUx93ljFlsILogD5n6OFqzwgwZwp6Ro21pP7ItwYbSPc7JxC6se+jw4Snt97+DOGB0T3oz33OqDNAnzUgVkppcf6fbpRQ1cEMbPx5mKBklsce/DiCP9SjY= 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=lebtebPl; arc=none smtp.client-ip=209.85.210.182 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="lebtebPl" Received: by mail-pf1-f182.google.com with SMTP id d2e1a72fcca58-82c20b9fb15so1649b3a.3 for ; Wed, 08 Apr 2026 10:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775668110; x=1776272910; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Xz5Cydk8ycXF/+GGvFsNR7glut2xhT7NU+wPgS7bPP8=; b=lebtebPlpGDb8/bEi/NPyFcFExgcXkWDvCg+bENmCpmzFyD3VmYcrAbvCuQaW+0gsp MsJ881hdUgJV1HtO5vqcAt4UGTnkZdXsLjWzGYzGD1I1wPCuFoa7YSLUhvkrnEhc2300 FQTZLvFrFOeM7jbNiR2DghddM/y6qLyzZX+a8etgN1IsCB25ziLQoHcQbat9lhCb+Y+i /8BJHXZJnyoANuviJk117j5yrd9Lcdob4j1JXDdkNfTDDD4SMtrnBg656FYN23Tr3WDK H2qih7yRAAe7zrXaLp+qNC4bR1G30zIFJvPZ2fsEQUUNcIoVk7456uUwjZF1mBH/1lmv 4uHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775668110; x=1776272910; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Xz5Cydk8ycXF/+GGvFsNR7glut2xhT7NU+wPgS7bPP8=; b=JZcCrHPtH8DcIVuEcaIkzyItP2rS8Vz5pP7qI+nczRPSE314cj0MHSPH+Vveuyuten WlRC/yY4MbgTxAg2XicC8IlT4yaGBt2MTBjE3BMdJIf20cO+XdioAKbXWRjR+SBMTdLO HqgMsp1jQ67esSTV8BSevT5G1yjcf+Lkt6S/vkNevlh4AQrMTnnCfsZ0llhkLqmE4LZC 3Y5DU5jHlX7vV3UyqUThtZI0mMsUMaMz8i9Z1PxyGy2qPsusA2M8BwIZdYykwvZfiSVs +wmEXIxS/xdSRNPzk8oDwa6dEPKMMRg01yZQKdi1Lf8wFwBzxapM8mktypb1kfHjdi5R dzXw== X-Forwarded-Encrypted: i=1; AJvYcCUnavBmBJzdvRaDjpEob30aRVfKyFLeo1OcGJGsAeUnMD6KKTt+runvvuPy/DSZL8xRS5NljSEJvTSgwGA=@vger.kernel.org X-Gm-Message-State: AOJu0YxbMdoCOaF6cU8HiD/ywQcseIelvyvOwbcyNd7bJS+AMX5MIiWV s9ITXPTYD4XRG6lKmW63Bf3tXmSE8jwY5rZ02Rko+XPjQrSQXf4GwS1Z X-Gm-Gg: AeBDietQVb844+EQ2FWSkGOg0Z3I5Dn+WcrpydhRWbRj39PIEf/8NlHmyeXYoUEGMb7 HJke/AuVvhSERSDWVKG0Xo+RjgLBkz+phWxC6ydPnrSubetrb5MIiPJ//EZF0yVlbuQqgg/SuuU c66XDIQ3Awh2avEhZExCmLVdry07AEX3cUqGhomtmvjZDxAFU5PyxnxT7B/mx81L942ijrYZWYd 5UAKbSmN+0BGHpmmG/dyictb7SZGZP5I+Q2ph9gDYi3h2XI/EwczJ18dgvSd/R0zlkL/wI4aUcw Z6hJ8bLYbUsHpxkmGgiqR7ztP8mhh5AJjmQcScXZjw3rhLpqnX8W6xm5nIV1l9U4DV46aU196QS bRsDn3g2u3Tb9Mj7eVHdfJghOGQI0MEnXgAZFsLUl05d2axmQTzbYHAn+zkM+t5z+NFfJCXnohc tNH90E13EzMfEEn7INenVvesRFv8dU7RIt5y12JnOlUBviJD8Y6xiu2vROLSzdaJjEZ6thtojTi 9s3+mnoR52xM4k2cidiGM3TP/A9l/eNdRDNqz0+QcLXtLctUvc5SFO3HA== X-Received: by 2002:a05:6a00:429b:b0:824:b181:f492 with SMTP id d2e1a72fcca58-82dd8ad1516mr256957b3a.45.1775668109744; Wed, 08 Apr 2026 10:08:29 -0700 (PDT) Received: from lorddaniel-VivoBook-ASUSLaptop-K3502ZA-S3502ZA.www.tendawifi.com ([14.139.108.62]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-82cf9b2694csm21775091b3a.2.2026.04.08.10.08.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Apr 2026 10:08:29 -0700 (PDT) From: Piyush Patle To: Mark Brown Cc: Sheetal , Jonathan Hunter , Thierry Reding , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , linux-sound@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 0/2] ASoC: tegra210: simplify byte map handling in ADX and AMX Date: Wed, 8 Apr 2026 22:38:16 +0530 Message-Id: <20260408170818.70322-1-piyushpatle228@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260407170308.100238-3-piyushpatle228@gmail.com> References: <20260407170308.100238-3-piyushpatle228@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The Tegra210 ADX and AMX drivers both keep their "Byte Map N" ALSA control state as a byte-packed u32 map[] array along with a separate byte_mask[] bitmap. This is because the control range exposed to userspace is [0, 256], where 256 is the "disabled" sentinel and does not fit in a byte, so the two arrays have to be cross-checked on every get()/put(). This series stores each slot as a u16 holding the user-visible value directly, turning get_byte_map() into a direct return and put_byte_map() into a compare-and-store. The hardware-facing packed RAM word and the IN_BYTE_EN / OUT_BYTE_EN enable masks are computed on the fly inside each write_map_ram() callback, which is the only place that needs to know the hardware layout. The byte_mask[] field is dropped from both driver state structs. There is no userspace-visible ABI change. Control declarations, ranges, initial values and handling of out-of-range writes is preserved by treating values outside [0, 255] as disabled (256), matching previous behavior. As a side effect each patch also fixes a latent bug in put_byte_map() where an enabled-to-enabled value change was not persisted. The packed RAM word construction is also updated to ensure the shift operates on a u32 value, avoiding potential undefined behavior due to signed integer promotion. Addresses TODO comments left in tegra210_{adx,amx}_get_byte_map(). Changes since v1: - Allocate byte_mask[] dynamically using kcalloc() based on soc_data->byte_mask_size instead of fixed-size arrays - Propagate -ENOMEM from write_map_ram() to callers - Replace magic numbers with TEGRA_{ADX,AMX}_SLOTS_PER_WORD - Use BITS_PER_BYTE and BITS_PER_TYPE() instead of literal shifts - Add and includes Patch 1/2: ASoC: tegra210_adx: simplify byte map get/put logic Patch 2/2: ASoC: tegra210_amx: simplify byte map get/put logic -- 2.34.1