From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
To: Jon Hunter <jonathanh@nvidia.com>
Cc: Rob Herring <robh+dt@kernel.org>,
Thierry Reding <thierry.reding@gmail.com>,
linux-i2c <linux-i2c@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
linux-devicetree <devicetree@vger.kernel.org>,
linux-tegra@vger.kernel.org
Subject: Re: [PATCH 1/5] misc: eeprom: at24: Initialise AT24 NVMEM ID field
Date: Fri, 11 Sep 2020 09:45:43 +0200 [thread overview]
Message-ID: <CAMpxmJUAhJmGA_3nKs51hF=08vY19U5Rpfz30DLgOOiTMuxjzA@mail.gmail.com> (raw)
In-Reply-To: <5afe9537-dc50-16ff-028e-b4539c6f924a@nvidia.com>
On Thu, Sep 10, 2020 at 8:19 PM Jon Hunter <jonathanh@nvidia.com> wrote:
>
>
> On 10/09/2020 19:15, Jon Hunter wrote:
> >
> > On 10/09/2020 16:35, Bartosz Golaszewski wrote:
> >> On Thu, Sep 10, 2020 at 3:43 PM Jon Hunter <jonathanh@nvidia.com> wrote:
> >>>
> >>> The AT24 EEPROM driver does not initialise the 'id' field of the
> >>> nvmem_config structure and because the entire structure is not
> >>> initialised, it ends up with a random value. This causes the NVMEM
> >>> driver to append the device 'devid' value to name of the NVMEM
> >>> device. Although this is not a problem per-se, for I2C devices such as
> >>> the AT24, that already have a device unique name, there does not seem
> >>> much value in appending an additional 0 to the I2C name. For example,
> >>> appending a 0 to an I2C device name such as 1-0050 does not seem
> >>> necessary and maybe even a bit confusing. Therefore, fix this by
> >>> setting the NVMEM config.id to NVMEM_DEVID_NONE for AT24 EEPROMs.
> >>>
> >>> Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
> >>> ---
> >>> drivers/misc/eeprom/at24.c | 1 +
> >>> 1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
> >>> index e9df1ca251df..3f7a3bb6a36c 100644
> >>> --- a/drivers/misc/eeprom/at24.c
> >>> +++ b/drivers/misc/eeprom/at24.c
> >>> @@ -715,6 +715,7 @@ static int at24_probe(struct i2c_client *client)
> >>>
> >>> nvmem_config.name = dev_name(dev);
> >>> nvmem_config.dev = dev;
> >>> + nvmem_config.id = NVMEM_DEVID_NONE;
> >>> nvmem_config.read_only = !writable;
> >>> nvmem_config.root_only = !(flags & AT24_FLAG_IRUGO);
> >>> nvmem_config.owner = THIS_MODULE;
> >>> --
> >>> 2.25.1
> >>>
> >>
> >> This patch is correct and thanks for catching it. I vaguely recall
> >> wondering at some point why the appended 0 in the nvmem name for at24.
> >> Unfortunately this change would affect how the device is visible in
> >> user-space in /sys/bus/nvmem/devices/ and this could break existing
> >> users. Also: there are many in-kernel users that would need to be
> >> updated. I'm afraid we'll need some sort of backward compatibility.
> >
> >
> > Thanks, yes that is a problem. I guess for now we could explicitly init
> > to NVMEM_DEVID_AUTO or maybe just 0 so that it defaults to the same path
> > in the NVMEM driver. However, I am not sure how we can make allow some
> > devices to use NVMEM_DEVID_NONE and others use something else. This is
> > not really something that we can describe in DT because it has nothing
> > to do with h/w.
>
>
> Unless we make the configuration of the 'id' dependent on the 'label'
> property so something like ...
>
> if (device_property_present(dev, "label")) {
> nvmem_config.id = NVMEM_DEVID_NONE;
> err = device_property_read_string(dev, "label",
> &nvmem_config.name);
> if (err)
> return err;
> } else {
> nvmem_config.id = NVMEM_DEVID_AUTO;
> nvmem_config.name = dev_name(dev);
> }
>
> Cheers
> Jon
>
> --
> nvpublic
Yes, this looks like the best compromise we can get for now. Please
make sure to document why we do this in the code.
Bartosz
next prev parent reply other threads:[~2020-09-11 7:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-10 13:42 [PATCH 0/5] Add support for custom names for AT24 EEPROMs Jon Hunter
2020-09-10 13:42 ` [PATCH 1/5] misc: eeprom: at24: Initialise AT24 NVMEM ID field Jon Hunter
2020-09-10 15:35 ` Bartosz Golaszewski
2020-09-10 18:15 ` Jon Hunter
2020-09-10 18:19 ` Jon Hunter
2020-09-11 7:45 ` Bartosz Golaszewski [this message]
2020-09-10 13:42 ` [PATCH 2/5] dt-bindings: eeprom: at24: Add label property for AT24 Jon Hunter
2020-09-15 20:25 ` Rob Herring
2020-09-10 13:42 ` [PATCH 3/5] misc: eeprom: at24: Support custom device names for AT24 EEPROMs Jon Hunter
2020-09-10 13:42 ` [PATCH 4/5] arm64: tegra: Add label properties for EEPROMs Jon Hunter
2020-09-10 13:42 ` [PATCH 5/5] arm64: tegra: Populate EEPROMs for Jetson Xavier NX Jon Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMpxmJUAhJmGA_3nKs51hF=08vY19U5Rpfz30DLgOOiTMuxjzA@mail.gmail.com' \
--to=bgolaszewski@baylibre.com \
--cc=devicetree@vger.kernel.org \
--cc=jonathanh@nvidia.com \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=robh+dt@kernel.org \
--cc=thierry.reding@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).