Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp4915530pxb; Tue, 28 Sep 2021 06:53:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzzC/sNu1Buf+lFKKEo97wso5iLerK7YYYjSorv2BoeiED6GTiGpbYdeGcFgwezk6rJ66Fj X-Received: by 2002:a50:9dca:: with SMTP id l10mr7704917edk.61.1632837204492; Tue, 28 Sep 2021 06:53:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1632837204; cv=none; d=google.com; s=arc-20160816; b=slH8/WWIk0X3KnsW2nxc8wwgUnWqzECBz5GFObMzSCLxWG9cL1PTWoRcup9gvJCQDP MPCaWuF4CB20xyVTZ33+xxSQUAoq1hRsKMhf19KCk7PJ6xscDRxutJjpz/UeWMuSGBlF sHHZH2Wsr64lKziVcTBW25w83lInHn2ilAao2AOtwfSvu2qrn3ClzHpcPPzjJYR8fu39 n9ViPj3pnDZONQgaaA1dask5vBu9jeA5BNhBhIlPVqjonwaHaSSEApYNXEtyYE1eV7Gs ULAbeCIGZENORYFovY0UapMe9Hdw6yBpp8Q8yuRK7X4Vl/V8sujodsFCMfRkchMy+jyN iZ8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=Mr2XW/ExcapYxP/Bo4qXwpJMhGFNi4fgDwMu2/rJrI0=; b=0/WApfaOLDg9n6vnFMaaAey3I1EN/wRupxPA9c2xrFhaKWYCtliu6YA1TvI6F6pk4Z BMzedEkbpUm4JfbSIGb3SpVoH9V5Z3IIc5mj/f59TEuzzR+Q5GYqpFY+x5R0aTA22vst vYaDgCFQMrsU+/yNMakbHEBQUsrALQnOtOdENFeeEKJyo7RXXI5H08t6r/EijmtS9lSF opVKPW2ai8BQeXVTIrHEGhgxk+L7oabMPGMNLOK9Gk7jbDnJMZ2IPy+AzdXCwsTpBxYu cghZCgI1sQa5v4qjNuYIxvw1PHBv8fmJt9xXI16dkbPm9ujXGFz97/7URYkaXXZD8VnN emYg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="ewnHE/tg"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d26si9611451ejo.459.2021.09.28.06.52.55; Tue, 28 Sep 2021 06:53:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="ewnHE/tg"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240968AbhI1NxG (ORCPT + 99 others); Tue, 28 Sep 2021 09:53:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43438 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241107AbhI1NxF (ORCPT ); Tue, 28 Sep 2021 09:53:05 -0400 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 219C3C061575 for ; Tue, 28 Sep 2021 06:51:26 -0700 (PDT) Received: by mail-wr1-x430.google.com with SMTP id w29so58075588wra.8 for ; Tue, 28 Sep 2021 06:51:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=Mr2XW/ExcapYxP/Bo4qXwpJMhGFNi4fgDwMu2/rJrI0=; b=ewnHE/tgkUjMvexYV183LLT3n8rtLClqvwmklt30vsDGsH8tqJ5y61zXyv15nUUN4b cMDZzKiREL9qF83rYKrt/iW9E3uiXL5JRKVjKJvgbaHyNofO1LPNxuCXWgdUp7HvRA0D dxFoM21AnRLPgO/KoKN1meyELOTpcl9oYfz7/aFAhTIDOSNhMEh8KzHuRjc7dMTBYNAf bOOkAXBvkbEeIZSsC8LEh9uQBCivo20VUsFiXaZ4Tsaxm80VOZs/l5SQazRUuKx7oQem 0v+kHMSbt2Fd1Jgbj4825V3ArXcGRep6VYz5C2nCK7NnE0bpc9eSqFasPNuca9X8/uuk MeCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Mr2XW/ExcapYxP/Bo4qXwpJMhGFNi4fgDwMu2/rJrI0=; b=5FlIR+ZiCG06/9mC4PYy0KN/OQR13lTKCqzDiR2uvyUYrfdrs8VTWT04nvhE4bwUoT e1Pj2k8urnZQvHb34e467gkf6srKwz00WyUB6WWnzljD1rneYlWUNa1+S/lProUlE96L ie1ALT9AiA0ZyMptjX9rzienVIur3Jcs6UcVJ92OY2BbxSfJ151C6uaJ3oxQXQckeZ15 MAAIkuzBmQsFQEK9crcmRhfgzxvW7zEXKWItf0znns8FhtmQLAp8OkDt/dSGF5rVYz9w 2ubJUPZGSVQRNLzTwHLjuhT2AGJ7W9Xf54l/UzHMRGaSAjj4+zej5RcNGBGzj99t0xF/ BM9g== X-Gm-Message-State: AOAM5328L44i1AS95vM3uyurIzUZTeYMI7a19B1SaeXIISmlWXqHXZc+ S/h8JumYiPM/ji7/V1/KtqpFZQ== X-Received: by 2002:a05:6000:362:: with SMTP id f2mr82981wrf.197.1632837084740; Tue, 28 Sep 2021 06:51:24 -0700 (PDT) Received: from [192.168.86.34] (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.googlemail.com with ESMTPSA id e5sm19777680wrd.1.2021.09.28.06.51.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 28 Sep 2021 06:51:24 -0700 (PDT) Subject: Re: [PATCH v2 1/3] nvmem: core: introduce cells parser To: Vadym Kochan Cc: John Thomson , Rob Herring , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Robert Marko References: <20210608190327.22071-1-vadym.kochan@plvision.eu> <20210608190327.22071-2-vadym.kochan@plvision.eu> <43023500-dd6a-5180-057e-cecc1f1b6500@linaro.org> <20210616123356.GA9951@plvision.eu> <7e6d75ed-cebc-597f-7062-34261d184968@linaro.org> <0e471789-fe29-b747-5153-75c9b4616c7f@linaro.org> <1da03714-8f23-1004-e89a-891e4599e04a@linaro.org> <1e146349-9fef-972b-9084-577f02d5168b@linaro.org> <169d3f36-4297-32a3-3d23-824989625b26@linaro.org> <77b11bf7-3003-483f-b91e-bd93576eaae1@www.fastmail.com> <56fb5c64-4142-03ef-2ea8-fc586fd239e1@linaro.org> From: Srinivas Kandagatla Message-ID: Date: Tue, 28 Sep 2021 14:51:23 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 28/09/2021 14:31, Vadym Kochan wrote: >>>> Can I note here that I would like to parse >>>> TLV data from an SPI-NOR device to NVMEM cells. >>>> The same general use case (getting mac-address from OEM data). >>>> >>>> Was planning to base my work on this series, as well as >>>> https://lore.kernel.org/all/20210908100257.17833-1-qiangqing.zhang@nxp.com/ >>>> (thanks for pointing that out Srinivas) >>>> >>>> Cheers, >>> What about at least to have just one call in core.c to make it a bit >>> de-coupled, like: >> Why do you want to decouple this? the provider driver should be very >> well aware of the format the data layout. >> > In my understanding nvmem device should not aware about the data layout > (in case it does not rely on device's specific characteristics). Same > cells layout (TLV, etc) might exist on other nvmem devices. > How would provider driver parse this without even knowing data layout? >> Its fine to an extent to adding parse_cells() callback in nvmem_config. >> > OK, in that case it will require small change in the core. > >>> core.c >>> >>> struct nvmem_device *nvmem_register(const struct nvmem_config *config) >>> { >>> ... >>> rval = nvmem_add_cells_from_table(nvmem); >>> if (rval) >>> goto err_remove_cells; >>> >>> + rval = nvmem_parse_cells(nvmem, of); >>> + if (rval) { >>> + /* err handling */ >>> + } >>> + >>> rval = nvmem_add_cells_from_of(nvmem); >>> if (rval) >>> goto err_remove_cells; >>> >>> blocking_notifier_call_chain(&nvmem_notifier, NVMEM_ADD, nvmem); >>> >>> return nvmem; >>> >>> ... >>> >>> } >>> >>> somewhere in nvmem-parser.c: >> However this is totally over kill. >> >>> /* retreive parser name from of_node and call appropriate function to parse >>> non-fixed cells and update via of_update */ >> This is completely provider drivers job, nothing nvmem core should worry >> about. >> >> If you have concern of having code duplicated then we could make some of >> the common functions as library functions, But it still is within the >> scope of provider drivers. >> > Do I understand correctly that this parser function should be exported > from at24.c (in case of ONIE) and not from a separate C module ? Or > it just means that if there will be more users of this parsing function > then it might be moved to separate C module ? yes. For now am not really sure how many users are for such parsing function. > >> --srini >> > BTW, what if such change will be declined by particular nvmem driver > maintainer ? You would need some changes to provider driver to be able to flag that there is some kind of parsing required anyway. --srini >