All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: Andy Shevchenko <andy.shevchenko@gmail.com>
Cc: Erling Ljunggren <hljunggr@cisco.com>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	Jonathan Selnes <jonathansb1@gmail.com>
Subject: Re: [PATCH 4/5] media: i2c: cat24c208: driver for the cat24c208 EDID EEPROM
Date: Fri, 29 Jul 2022 17:34:18 +0200	[thread overview]
Message-ID: <8fec09b3-7879-3c01-66f5-48b8f30725af@xs4all.nl> (raw)
In-Reply-To: <CAHp75VfPgFsx93H+xqVsW7KFzP9oMmN0kJMykTcXv_45JUo9Sw@mail.gmail.com>



On 29/07/2022 16:47, Andy Shevchenko wrote:
> On Fri, Jul 29, 2022 at 2:11 PM Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote:
>> On 29/07/2022 14:00, Andy Shevchenko wrote:
>>> On Fri, Jul 29, 2022 at 9:21 AM Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote:
>>>> On 28/07/2022 22:56, Andy Shevchenko wrote:
>>>>> On Thu, Jul 28, 2022 at 3:23 PM Hans Verkuil <hverkuil-cisco@xs4all.nl> wrote:
>>>>>> On 28/07/2022 14:02, Andy Shevchenko wrote:
>>>>>>> On Thursday, July 28, 2022, Erling Ljunggren <hljunggr@cisco.com <mailto:hljunggr@cisco.com>> wrote:
>>>>>
>>>>>>>     Support reading and writing the EDID EEPROM through the
>>>>>>>     v4l2 API.
>>>>>>>
>>>>>>> Why the normal way of representing as a memory (we have framework and drivers) can’t work?
>>>>>>
>>>>>> Because support for EDID for video sinks is already part of the media subsystem (V4L2).
>>>>>> Normally it is integrated into an HDMI receiver, but in this case it is just the EDID
>>>>>> support without the video receiver. It belongs in drivers/media in any case since EDIDs
>>>>>> are closely tied to media.
>>>>>
>>>>> It's fine. From the Linux perspective we do not reduplicate the
>>>>> drivers that are done by other frameworks, right?
>>>>>
>>>>>>> Moreover, this driver seems limited in support of variety of the eeprom chips.
>>>>>>
>>>>>> Not quite sure what you mean. The cat24c208 is what this was developed for and
>>>>>> the only one we have.
>>>>>>
>>>>>> Note that an EDID EEPROM != a regular EEPROM: it has to support the VESA E-DDC
>>>>>> standard, which a normal EEPROM doesn't. So these devices are specifically made
>>>>>> for this use-case.
>>>>>
>>>>> What is the difference from a programming interface?
>>>>> Can the nvmem driver(s) be reused (at24?)?
>>>>
>>>> No. EDID EEPROM devices are specific to storing EDIDs: they have two i2c
>>>> ports, one connected to (typically) the HDMI bus (DDC lines) allowing a
>>>> video source to read the EDID, the other is connected to the SoC to write to
>>>> and configure the device. The HDMI bus side has two i2c addresses (reading the
>>>> EEPROM and to write to the segment address for EDIDs > 256 bytes), the SoC
>>>> side has three i2c addresses: to configure the behavior, the segment address,
>>>> and to write the EDID from the SoC.
>>>>
>>>> So it is a much more complex device than a regular eeprom, and it really
>>>> is dedicated to EDIDs only.
>>>
>>> Thanks for the explanation, but it's still unclear what the
>>> differences are in the programming interface there. Perhaps you may
>>> simply register a platform device in this driver and reuse the rest
>>> from at24?
>>
>> No, it's really different from a regular eeprom.
>>
>>>> Also note that the V4L2 API is already used to get/set EDIDs, everything is
>>>> in place for supporting that, including support for parsing EDIDs for the
>>>> physical address, which is something that is needed if this is combined with
>>>> HDMI CEC hardware. It's not implemented in this driver since it is not
>>>> needed in our use-case, but that might change in the future.
>>>>
>>>> And by using the V4L2 API you can use v4l2-ctl --get-edid and --set-edid
>>>> out of the box, using the standard API for EDIDs.
>>>
>>> Bonus question: we have cat24c04/cat24c05 are recognized by at24
>>> already, are they different to cat24c08?
>>>
>>
>> Yes, they are different.
> 
> Thanks for your patience and elaboration, I got it.
> 
> Would this driver be used only by v4l2? Or potentially some other
> hardware may need it (DRM?)?

Only V4L2: an EDID describes the capabilities of a video sink (e.g. a display),
so it is specific to video receivers, and that's the domain of V4L2.

Regards,

	Hans

  reply	other threads:[~2022-07-29 15:34 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-28 11:40 [PATCH 0/5] Add the cat24c208 EDID EEPROM driver + new EDID capability Erling Ljunggren
2022-07-28 11:40 ` [PATCH 1/5] media: videodev2.h: add V4L2_CAP_EDID_MEMORY Erling Ljunggren
2022-07-28 11:40 ` [PATCH 2/5] media: docs: Add V4L2_CAP_EDID_MEMORY Erling Ljunggren
2022-07-31  9:54   ` kernel test robot
2022-07-28 11:40 ` [PATCH 3/5] dt-bindings: media: add cat24c208 bindings Erling Ljunggren
2022-07-28 13:47   ` Rob Herring
2022-07-28 11:40 ` [PATCH 4/5] media: i2c: cat24c208: driver for the cat24c208 EDID EEPROM Erling Ljunggren
     [not found]   ` <CAHp75VeKMJ7eSZ3SLki74o+LkL6CBfcx4RL90n2J20BE+8L+KA@mail.gmail.com>
2022-07-28 13:23     ` Hans Verkuil
2022-07-28 20:56       ` Andy Shevchenko
2022-07-29  7:21         ` Hans Verkuil
2022-07-29 12:00           ` Andy Shevchenko
2022-07-29 12:11             ` Hans Verkuil
2022-07-29 14:47               ` Andy Shevchenko
2022-07-29 15:34                 ` Hans Verkuil [this message]
2022-07-29 15:51   ` Andy Shevchenko
2022-08-01 13:07     ` Erling Ljunggren (hljunggr)
2022-08-01 14:57       ` Andy Shevchenko
2022-08-01 18:34         ` Hans Verkuil
2022-08-02  8:42           ` Andy Shevchenko
2022-08-02  9:06             ` Hans Verkuil
2022-08-02 12:21               ` Andy Shevchenko
2022-08-02 12:23                 ` Andy Shevchenko
2022-08-02 12:26                   ` Andy Shevchenko
2022-08-02 12:45                     ` Hans Verkuil
2022-08-02 12:49                       ` Andy Shevchenko
2022-08-02 12:58                         ` Hans Verkuil
2022-08-02 16:26                           ` Andy Shevchenko
2022-08-02 16:28                             ` Andy Shevchenko
2022-08-03  1:36   ` kernel test robot
2022-07-28 11:40 ` [PATCH 5/5] media: v4l2-dev: handle V4L2_CAP_EDID_MEMORY Erling Ljunggren

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=8fec09b3-7879-3c01-66f5-48b8f30725af@xs4all.nl \
    --to=hverkuil-cisco@xs4all.nl \
    --cc=andy.shevchenko@gmail.com \
    --cc=hljunggr@cisco.com \
    --cc=jonathansb1@gmail.com \
    --cc=linux-media@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.