* [PATCH] media : cros-ec-cec: Add Fizz board variants, so driver can detect them
@ 2025-06-26 18:03 Pedro Nariyoshi
0 siblings, 0 replies; 5+ messages in thread
From: Pedro Nariyoshi @ 2025-06-26 18:03 UTC (permalink / raw)
To: Hans Verkuil, Mauro Carvalho Chehab, Benson Leung, Guenter Roeck,
linux-media, chrome-platform, linux-kernel, MrChromebox
Cc: Pedro Nariyoshi
I recently reflashed a Chromebox (Wukong variant of the Fizz board) with
coreboot and I noticed that the cec driver refused to load with a bit of
tinkering, I realized that the dmi_match_table was expecting the product
name to be Fizz, but `dmidecode` reports `Wukong` as the product name. I
am not sure if this is the best approach, but adding this patch lets me
load the driver and it works properly.
Alternatively, we could instead match the DMI_PRODUCT_FAMILY, instead of
DMI_SYS_VENDOR and DMI_PRODUCT_NAME. In my board at least, that says
"Google_Fizz".
I am open to suggestions for alternative solutions and I hope I did't
break any rules (this is my first kernel patch). (And sorry for the
previous error in the subject line)
Signed-off-by: Pedro Nariyoshi <pedro.nariyoshi@gmail.com>
---
drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
index 419b9a7abcce..a26473c3cd84 100644
--- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
+++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
@@ -302,8 +302,15 @@ static const char *const port_ab_conns[] = { "Port A", "Port B", NULL };
static const char *const port_d_conns[] = { "Port D", NULL };
static const struct cec_dmi_match cec_dmi_match_table[] = {
- /* Google Fizz */
+ /* Google Fizz and variants*/
{ "Google", "Fizz", "0000:00:02.0", port_b_conns },
+ { "Google", "Bleemo", "0000:00:02.0", port_b_conns },
+ { "Google", "Excelsior", "0000:00:02.0", port_b_conns },
+ { "Google", "Jax", "0000:00:02.0", port_b_conns },
+ { "Google", "Kench", "0000:00:02.0", port_b_conns },
+ { "Google", "Sion", "0000:00:02.0", port_b_conns },
+ { "Google", "Teemo", "0000:00:02.0", port_b_conns },
+ { "Google", "Wukong", "0000:00:02.0", port_b_conns },
/* Google Brask */
{ "Google", "Brask", "0000:00:02.0", port_b_conns },
/* Google Moli */
--
2.49.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] media: cros-ec-cec: Add Fizz board variants, so driver can detect them
@ 2025-06-28 18:14 Pedro Nariyoshi
2025-06-30 6:25 ` hans
2025-07-02 6:52 ` Tzung-Bi Shih
0 siblings, 2 replies; 5+ messages in thread
From: Pedro Nariyoshi @ 2025-06-28 18:14 UTC (permalink / raw)
To: Hans Verkuil, Mauro Carvalho Chehab, Benson Leung, Guenter Roeck,
linux-media, chrome-platform, linux-kernel, Mr Chromebox
Cc: Pedro Nariyoshi
I recently reflashed a Chromebox (Wukong variant of the Fizz board) with
coreboot and I noticed that the cec driver refused to load with a bit of
tinkering, I realized that the dmi_match_table was expecting the product
name to be Fizz, but `dmidecode` reports `Wukong` as the product name. I
am not sure if this is the best approach, but adding this patch lets me
load the driver and it works properly.
Alternatively, we could instead match the DMI_PRODUCT_FAMILY, instead of
DMI_SYS_VENDOR and DMI_PRODUCT_NAME. In my board at least, that says
"Google_Fizz".
I am open to suggestions for alternative solutions and I hope I did't
break any rules (this is my first kernel patch). (And sorry for the
previous submissions with errors in the subject line)
Signed-off-by: Pedro Nariyoshi <pedro.nariyoshi@gmail.com>
---
drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
index 419b9a7abcce..a26473c3cd84 100644
--- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
+++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
@@ -302,8 +302,15 @@ static const char *const port_ab_conns[] = { "Port A", "Port B", NULL };
static const char *const port_d_conns[] = { "Port D", NULL };
static const struct cec_dmi_match cec_dmi_match_table[] = {
- /* Google Fizz */
+ /* Google Fizz and variants*/
{ "Google", "Fizz", "0000:00:02.0", port_b_conns },
+ { "Google", "Bleemo", "0000:00:02.0", port_b_conns },
+ { "Google", "Excelsior", "0000:00:02.0", port_b_conns },
+ { "Google", "Jax", "0000:00:02.0", port_b_conns },
+ { "Google", "Kench", "0000:00:02.0", port_b_conns },
+ { "Google", "Sion", "0000:00:02.0", port_b_conns },
+ { "Google", "Teemo", "0000:00:02.0", port_b_conns },
+ { "Google", "Wukong", "0000:00:02.0", port_b_conns },
/* Google Brask */
{ "Google", "Brask", "0000:00:02.0", port_b_conns },
/* Google Moli */
--
2.49.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] media: cros-ec-cec: Add Fizz board variants, so driver can detect them
2025-06-28 18:14 [PATCH] media: " Pedro Nariyoshi
@ 2025-06-30 6:25 ` hans
[not found] ` <CAHPgyW5s8HB5op9z8cMPJPJ-9=e4Ufp6R3U3jABOxXD0Rzt06g@mail.gmail.com>
2025-07-02 6:52 ` Tzung-Bi Shih
1 sibling, 1 reply; 5+ messages in thread
From: hans @ 2025-06-30 6:25 UTC (permalink / raw)
To: Pedro Nariyoshi, Hans Verkuil, Mauro Carvalho Chehab,
Benson Leung, Guenter Roeck, linux-media, chrome-platform,
linux-kernel, Mr Chromebox
Hi Pedro,
On 28/06/2025 20:14, Pedro Nariyoshi wrote:
> I recently reflashed a Chromebox (Wukong variant of the Fizz board) with
> coreboot and I noticed that the cec driver refused to load with a bit of
> tinkering, I realized that the dmi_match_table was expecting the product
> name to be Fizz, but `dmidecode` reports `Wukong` as the product name. I
> am not sure if this is the best approach, but adding this patch lets me
> load the driver and it works properly.
>
> Alternatively, we could instead match the DMI_PRODUCT_FAMILY, instead of
> DMI_SYS_VENDOR and DMI_PRODUCT_NAME. In my board at least, that says
> "Google_Fizz".
>
> I am open to suggestions for alternative solutions and I hope I did't
> break any rules (this is my first kernel patch). (And sorry for the
> previous submissions with errors in the subject line)
>
> Signed-off-by: Pedro Nariyoshi <pedro.nariyoshi@gmail.com>
Thank you for your patch, but I would like to have someone from Google
review this as well.
The number of entries keeps increasing, so perhaps switching to
DMI_PRODUCT_FAMILY would make sense. But I have no insight in how this
is done internally at Google.
One question for Pedro: where did you get all the other code names
from? Based on the commit message you have the Wukong variant, but how
did you find all the other variants?
Regards,
Hans
> ---
> drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> index 419b9a7abcce..a26473c3cd84 100644
> --- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> +++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
> @@ -302,8 +302,15 @@ static const char *const port_ab_conns[] = { "Port A", "Port B", NULL };
> static const char *const port_d_conns[] = { "Port D", NULL };
>
> static const struct cec_dmi_match cec_dmi_match_table[] = {
> - /* Google Fizz */
> + /* Google Fizz and variants*/
> { "Google", "Fizz", "0000:00:02.0", port_b_conns },
> + { "Google", "Bleemo", "0000:00:02.0", port_b_conns },
> + { "Google", "Excelsior", "0000:00:02.0", port_b_conns },
> + { "Google", "Jax", "0000:00:02.0", port_b_conns },
> + { "Google", "Kench", "0000:00:02.0", port_b_conns },
> + { "Google", "Sion", "0000:00:02.0", port_b_conns },
> + { "Google", "Teemo", "0000:00:02.0", port_b_conns },
> + { "Google", "Wukong", "0000:00:02.0", port_b_conns },
> /* Google Brask */
> { "Google", "Brask", "0000:00:02.0", port_b_conns },
> /* Google Moli */
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] media: cros-ec-cec: Add Fizz board variants, so driver can detect them
[not found] ` <CAHPgyW5s8HB5op9z8cMPJPJ-9=e4Ufp6R3U3jABOxXD0Rzt06g@mail.gmail.com>
@ 2025-06-30 13:13 ` Mr. Chromebox
0 siblings, 0 replies; 5+ messages in thread
From: Mr. Chromebox @ 2025-06-30 13:13 UTC (permalink / raw)
To: Pedro Nariyoshi
Cc: hans, Hans Verkuil, Mauro Carvalho Chehab, Benson Leung,
Guenter Roeck, linux-media, chrome-platform, linux-kernel
> (Sorry to those re-receiving this message, my email client added HTML tags to the links and I didn't notice until too late)
same apologies from me
On Mon, Jun 30, 2025 at 7:52 AM Pedro Nariyoshi
<pedro.nariyoshi@gmail.com> wrote:
>
> (Sorry to those re-receiving this message, my email client added HTML tags to the links and I didn't notice until too late)
>
> Hello Hans,
> I don't particularly have a preference on what we match against. I went in this direction because I felt it was less disruptive to add elements to a table, than rewrite the matching function and the table (especially without the hardware to validate the changes on). I started looking at devices based on the same board on the chromium developer list (searching for "Fizz"):
>
> https://www.chromium.org/chromium-os/developer-library/reference/development/developer-information-for-chrome-os-devices/
>
> This list gave me Kench, Sion, Teemo and Wukong. Then I looked at the supported list for the coreboot implementation I am using:
>
> https://github.com/MrChromebox/scripts/blob/main/functions.sh
>
> The remaining boards seem to be rare variants of these devices (google meet hardware, i7 variants of the same board, etc). This gave me the rest of the boards I have added. Although, I now realize, I should have just gone to the source of coreboot:
>
> https://github.com/coreboot/coreboot/blob/main/src/mainboard/google/fizz/mainboard.c#L184-L194
>
> This made me realize I am missing Karma (an acer all-in-one) and Endeavor (another google meet variant). I could add these two missing boards, but I think it'd be helpful to have someone from Google chime in as to whether it'd make sense to change the matching scheme instead. Depending on what they think, I'd be open to rewrite the patch whichever way it is decided.
> Regards,
>
> Pedro Nariyoshi
>
> On Mon, Jun 30, 2025 at 2:25 AM <hans@jjverkuil.nl> wrote:
>>
>> Hi Pedro,
>>
>> On 28/06/2025 20:14, Pedro Nariyoshi wrote:
>> > I recently reflashed a Chromebox (Wukong variant of the Fizz board) with
>> > coreboot and I noticed that the cec driver refused to load with a bit of
>> > tinkering, I realized that the dmi_match_table was expecting the product
>> > name to be Fizz, but `dmidecode` reports `Wukong` as the product name. I
>> > am not sure if this is the best approach, but adding this patch lets me
>> > load the driver and it works properly.
>> >
>> > Alternatively, we could instead match the DMI_PRODUCT_FAMILY, instead of
>> > DMI_SYS_VENDOR and DMI_PRODUCT_NAME. In my board at least, that says
>> > "Google_Fizz".
>> >
>> > I am open to suggestions for alternative solutions and I hope I did't
>> > break any rules (this is my first kernel patch). (And sorry for the
>> > previous submissions with errors in the subject line)
>> >
>> > Signed-off-by: Pedro Nariyoshi <pedro.nariyoshi@gmail.com>
>>
>> Thank you for your patch, but I would like to have someone from Google
>> review this as well.
>>
>> The number of entries keeps increasing, so perhaps switching to
>> DMI_PRODUCT_FAMILY would make sense. But I have no insight in how this
>> is done internally at Google.
DMI_PRODUCT_FAMILY is the baseboard/reference board name (Fizz, Puff,
Brask, etc). The individual boards/retail products each have their own
codename as well, which Google sets as the ChromeOS HWID in their
custom coreboot firmware. With upstream coreboot firmware, the
individual board names are used for the DMI_PRODUCT_NAME as the HWID
doesn't exist there, which is why the existing matching works with
Google's firmware but not mine.
I highly recommend switching to use the DMI_PRODUCT_FAMILY instead, as
it's deterministic and a simpler match. Using it along with
DMI_SYS_VENDOR is fine.
>> One question for Pedro: where did you get all the other code names
>> from? Based on the commit message you have the Wukong variant, but how
>> did you find all the other variants?
they're available from many sources online, including my website
(mrchromebox.tech) and the coreboot source code
>> Regards,
>>
>> Hans
>>
regards,
Matt
>> > ---
>> > drivers/media/cec/platform/cros-ec/cros-ec-cec.c | 9 ++++++++-
>> > 1 file changed, 8 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
>> > index 419b9a7abcce..a26473c3cd84 100644
>> > --- a/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
>> > +++ b/drivers/media/cec/platform/cros-ec/cros-ec-cec.c
>> > @@ -302,8 +302,15 @@ static const char *const port_ab_conns[] = { "Port A", "Port B", NULL };
>> > static const char *const port_d_conns[] = { "Port D", NULL };
>> >
>> > static const struct cec_dmi_match cec_dmi_match_table[] = {
>> > - /* Google Fizz */
>> > + /* Google Fizz and variants*/
>> > { "Google", "Fizz", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Bleemo", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Excelsior", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Jax", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Kench", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Sion", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Teemo", "0000:00:02.0", port_b_conns },
>> > + { "Google", "Wukong", "0000:00:02.0", port_b_conns },
>> > /* Google Brask */
>> > { "Google", "Brask", "0000:00:02.0", port_b_conns },
>> > /* Google Moli */
>>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] media: cros-ec-cec: Add Fizz board variants, so driver can detect them
2025-06-28 18:14 [PATCH] media: " Pedro Nariyoshi
2025-06-30 6:25 ` hans
@ 2025-07-02 6:52 ` Tzung-Bi Shih
1 sibling, 0 replies; 5+ messages in thread
From: Tzung-Bi Shih @ 2025-07-02 6:52 UTC (permalink / raw)
To: Pedro Nariyoshi
Cc: Hans Verkuil, Mauro Carvalho Chehab, Benson Leung, Guenter Roeck,
linux-media, chrome-platform, linux-kernel, Mr Chromebox
On Sat, Jun 28, 2025 at 02:14:35PM -0400, Pedro Nariyoshi wrote:
> I recently reflashed a Chromebox (Wukong variant of the Fizz board) with
> coreboot and I noticed that the cec driver refused to load with a bit of
> tinkering, I realized that the dmi_match_table was expecting the product
> name to be Fizz, but `dmidecode` reports `Wukong` as the product name. I
> am not sure if this is the best approach, but adding this patch lets me
> load the driver and it works properly.
>
> Alternatively, we could instead match the DMI_PRODUCT_FAMILY, instead of
> DMI_SYS_VENDOR and DMI_PRODUCT_NAME. In my board at least, that says
> "Google_Fizz".
Yes, please extend the table of `struct cec_dmi_match` and support
DMI_PRODUCT_FAMILY match in cros_ec_cec_find_hdmi_dev().
> I am open to suggestions for alternative solutions and I hope I did't
> break any rules (this is my first kernel patch). (And sorry for the
> previous submissions with errors in the subject line)
Thank you for your patch. You could consider to move most of the additional
information after "---" in your patch (so that they won't be part of the
commit message).
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-07-02 6:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-26 18:03 [PATCH] media : cros-ec-cec: Add Fizz board variants, so driver can detect them Pedro Nariyoshi
-- strict thread matches above, loose matches on Subject: below --
2025-06-28 18:14 [PATCH] media: " Pedro Nariyoshi
2025-06-30 6:25 ` hans
[not found] ` <CAHPgyW5s8HB5op9z8cMPJPJ-9=e4Ufp6R3U3jABOxXD0Rzt06g@mail.gmail.com>
2025-06-30 13:13 ` Mr. Chromebox
2025-07-02 6:52 ` Tzung-Bi Shih
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).