linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems
@ 2017-05-15 11:01 Mika Westerberg
  2017-05-15 11:01 ` [PATCH 1/3] firmware: dmi: Add DMI_PRODUCT_FAMILY identification string Mika Westerberg
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Mika Westerberg @ 2017-05-15 11:01 UTC (permalink / raw)
  To: Linus Walleij, Jean Delvare
  Cc: Heikki Krogerus, Dmitry Torokhov, Wei Yongjun, bbaude,
	mildred-bug.kernel, barnacs, lvuksta, Andy Shevchenko,
	Mika Westerberg, linux-kernel, linux-gpio

Hi,

It turned out that there are bunch of other Chromebooks that need the DMI
quirk as well. Most of these are based on Intel_Strago reference design so
we can identify them by using DMI_PRODUCT_FAMILY introduced in this series.
The systems without the family string we add them separately.

Related bugzilla entry:

  https://bugzilla.kernel.org/show_bug.cgi?id=194945

I'm including fix from Yongjun as well because I did not find it in
v4.12-rc1 possibly because it just was forgotten.

Mika Westerberg (2):
  firmware: dmi: Add DMI_PRODUCT_FAMILY identification string
  pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems

Wei Yongjun (1):
  pinctrl: cherryview: Add terminate entry for dmi_system_id tables

 drivers/firmware/dmi-id.c                  |  2 ++
 drivers/firmware/dmi_scan.c                |  1 +
 drivers/pinctrl/intel/pinctrl-cherryview.c | 26 +++++++++++++++++++++-----
 include/linux/mod_devicetable.h            |  1 +
 4 files changed, 25 insertions(+), 5 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] firmware: dmi: Add DMI_PRODUCT_FAMILY identification string
  2017-05-15 11:01 [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems Mika Westerberg
@ 2017-05-15 11:01 ` Mika Westerberg
  2017-05-15 11:01 ` [PATCH 2/3] pinctrl: cherryview: Add terminate entry for dmi_system_id tables Mika Westerberg
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Mika Westerberg @ 2017-05-15 11:01 UTC (permalink / raw)
  To: Linus Walleij, Jean Delvare
  Cc: Heikki Krogerus, Dmitry Torokhov, Wei Yongjun, bbaude,
	mildred-bug.kernel, barnacs, lvuksta, Andy Shevchenko,
	Mika Westerberg, linux-kernel, linux-gpio

Sometimes it is more convenient to be able to match a whole family of
products, like in case of bunch of Chromebooks based on Intel_Strago to
apply a driver quirk instead of quirking each machine one-by-one.

This adds support for DMI_PRODUCT_FAMILY identification string and also
exports it to the userspace through sysfs attribute just like the
existing ones.

Suggested-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/firmware/dmi-id.c       | 2 ++
 drivers/firmware/dmi_scan.c     | 1 +
 include/linux/mod_devicetable.h | 1 +
 3 files changed, 4 insertions(+)

diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c
index 44c01390d035..dc269cb288c2 100644
--- a/drivers/firmware/dmi-id.c
+++ b/drivers/firmware/dmi-id.c
@@ -47,6 +47,7 @@ DEFINE_DMI_ATTR_WITH_SHOW(product_name,		0444, DMI_PRODUCT_NAME);
 DEFINE_DMI_ATTR_WITH_SHOW(product_version,	0444, DMI_PRODUCT_VERSION);
 DEFINE_DMI_ATTR_WITH_SHOW(product_serial,	0400, DMI_PRODUCT_SERIAL);
 DEFINE_DMI_ATTR_WITH_SHOW(product_uuid,		0400, DMI_PRODUCT_UUID);
+DEFINE_DMI_ATTR_WITH_SHOW(product_family,	0400, DMI_PRODUCT_FAMILY);
 DEFINE_DMI_ATTR_WITH_SHOW(board_vendor,		0444, DMI_BOARD_VENDOR);
 DEFINE_DMI_ATTR_WITH_SHOW(board_name,		0444, DMI_BOARD_NAME);
 DEFINE_DMI_ATTR_WITH_SHOW(board_version,	0444, DMI_BOARD_VERSION);
@@ -191,6 +192,7 @@ static void __init dmi_id_init_attr_table(void)
 	ADD_DMI_ATTR(product_version,   DMI_PRODUCT_VERSION);
 	ADD_DMI_ATTR(product_serial,    DMI_PRODUCT_SERIAL);
 	ADD_DMI_ATTR(product_uuid,      DMI_PRODUCT_UUID);
+	ADD_DMI_ATTR(product_family,      DMI_PRODUCT_FAMILY);
 	ADD_DMI_ATTR(board_vendor,      DMI_BOARD_VENDOR);
 	ADD_DMI_ATTR(board_name,        DMI_BOARD_NAME);
 	ADD_DMI_ATTR(board_version,     DMI_BOARD_VERSION);
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 54be60ead08f..93f7acdaac7a 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -430,6 +430,7 @@ static void __init dmi_decode(const struct dmi_header *dm, void *dummy)
 		dmi_save_ident(dm, DMI_PRODUCT_VERSION, 6);
 		dmi_save_ident(dm, DMI_PRODUCT_SERIAL, 7);
 		dmi_save_uuid(dm, DMI_PRODUCT_UUID, 8);
+		dmi_save_ident(dm, DMI_PRODUCT_FAMILY, 26);
 		break;
 	case 2:		/* Base Board Information */
 		dmi_save_ident(dm, DMI_BOARD_VENDOR, 4);
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 566fda587fcf..3f74ef2281e8 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -467,6 +467,7 @@ enum dmi_field {
 	DMI_PRODUCT_VERSION,
 	DMI_PRODUCT_SERIAL,
 	DMI_PRODUCT_UUID,
+	DMI_PRODUCT_FAMILY,
 	DMI_BOARD_VENDOR,
 	DMI_BOARD_NAME,
 	DMI_BOARD_VERSION,
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] pinctrl: cherryview: Add terminate entry for dmi_system_id tables
  2017-05-15 11:01 [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems Mika Westerberg
  2017-05-15 11:01 ` [PATCH 1/3] firmware: dmi: Add DMI_PRODUCT_FAMILY identification string Mika Westerberg
@ 2017-05-15 11:01 ` Mika Westerberg
  2017-05-15 11:01 ` [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems Mika Westerberg
  2017-05-23  8:00 ` [PATCH 0/3] pinctrl: cherryview: Extend the " Linus Walleij
  3 siblings, 0 replies; 8+ messages in thread
From: Mika Westerberg @ 2017-05-15 11:01 UTC (permalink / raw)
  To: Linus Walleij, Jean Delvare
  Cc: Heikki Krogerus, Dmitry Torokhov, Wei Yongjun, bbaude,
	mildred-bug.kernel, barnacs, lvuksta, Andy Shevchenko,
	Mika Westerberg, linux-kernel, linux-gpio

From: Wei Yongjun <weiyongjun1@huawei.com>

Make sure dmi_system_id tables are NULL terminated.

Fixes: 703650278372 ("pinctrl: cherryview: Add a quirk to make Acer Chromebook keyboard work again")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-cherryview.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 2debba62fac9..e35d0fe4c737 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1547,7 +1547,8 @@ static const struct dmi_system_id chv_no_valid_mask[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Edgar"),
 			DMI_MATCH(DMI_BIOS_DATE, "05/21/2016"),
 		},
-	}
+	},
+	{}
 };
 
 static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems
  2017-05-15 11:01 [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems Mika Westerberg
  2017-05-15 11:01 ` [PATCH 1/3] firmware: dmi: Add DMI_PRODUCT_FAMILY identification string Mika Westerberg
  2017-05-15 11:01 ` [PATCH 2/3] pinctrl: cherryview: Add terminate entry for dmi_system_id tables Mika Westerberg
@ 2017-05-15 11:01 ` Mika Westerberg
  2017-05-15 11:14   ` Andy Shevchenko
  2017-05-23  8:00 ` [PATCH 0/3] pinctrl: cherryview: Extend the " Linus Walleij
  3 siblings, 1 reply; 8+ messages in thread
From: Mika Westerberg @ 2017-05-15 11:01 UTC (permalink / raw)
  To: Linus Walleij, Jean Delvare
  Cc: Heikki Krogerus, Dmitry Torokhov, Wei Yongjun, bbaude,
	mildred-bug.kernel, barnacs, lvuksta, Andy Shevchenko,
	Mika Westerberg, linux-kernel, linux-gpio

It turns out there are quite many Chromebooks out there that have the
same keyboard issue than Acer Chromebook. All of them are based on
Intel_Strago reference and report their DMI_PRODUCT_FAMILY as
"Intel_Strago" (Samsung Chromebook 3 and Cyan Chromebooks are exceptions
for which we add separate entries).

Instead of adding each machine to the quirk table, we use
DMI_PRODUCT_FAMILY of "Intel_Strago" that hopefully covers most of the
machines out there currently.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=194945
Suggested: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
---
 drivers/pinctrl/intel/pinctrl-cherryview.c | 23 +++++++++++++++++++----
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index e35d0fe4c737..3366959cf988 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1539,13 +1539,28 @@ static void chv_gpio_irq_handler(struct irq_desc *desc)
  * is not listed below.
  */
 static const struct dmi_system_id chv_no_valid_mask[] = {
+	/* See https://bugzilla.kernel.org/show_bug.cgi?id=194945 */
 	{
-		/* See https://bugzilla.kernel.org/show_bug.cgi?id=194945 */
-		.ident = "Acer Chromebook (CYAN)",
+		.ident = "Intel_Strago based Chromebooks",
 		.matches = {
 			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
-			DMI_MATCH(DMI_PRODUCT_NAME, "Edgar"),
-			DMI_MATCH(DMI_BIOS_DATE, "05/21/2016"),
+			DMI_MATCH(DMI_PRODUCT_FAMILY, "Intel_Strago"),
+		},
+	},
+	{
+		.ident = "Cyan Chromebook",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Cyan"),
+			DMI_MATCH(DMI_BIOS_DATE, "05/20/2016"),
+		},
+	},
+	{
+		.ident = "Samsung Chromebook 3",
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Celes"),
+			DMI_MATCH(DMI_BIOS_DATE, "01/19/2017"),
 		},
 	},
 	{}
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems
  2017-05-15 11:01 ` [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems Mika Westerberg
@ 2017-05-15 11:14   ` Andy Shevchenko
  2017-05-15 11:19     ` Mika Westerberg
  2017-05-15 22:26     ` Dmitry Torokhov
  0 siblings, 2 replies; 8+ messages in thread
From: Andy Shevchenko @ 2017-05-15 11:14 UTC (permalink / raw)
  To: Mika Westerberg, Linus Walleij, Jean Delvare
  Cc: Heikki Krogerus, Dmitry Torokhov, Wei Yongjun, bbaude,
	mildred-bug.kernel, barnacs, lvuksta, linux-kernel, linux-gpio

On Mon, 2017-05-15 at 14:01 +0300, Mika Westerberg wrote:
> It turns out there are quite many Chromebooks out there that have the
> same keyboard issue than Acer Chromebook. All of them are based on
> Intel_Strago reference and report their DMI_PRODUCT_FAMILY as
> "Intel_Strago" (Samsung Chromebook 3 and Cyan Chromebooks are
> exceptions
> for which we add separate entries).
> 
> Instead of adding each machine to the quirk table, we use
> DMI_PRODUCT_FAMILY of "Intel_Strago" that hopefully covers most of the
> machines out there currently.
> 
> 

> +		.ident = "Intel_Strago based Chromebooks",

> +		.ident = "Cyan Chromebook",

> +		.ident = "Samsung Chromebook 3",

I would do something like below (though I'm fine with current as well).

	.ident = "Intel_Strago based Chromebooks (All models)",
	.ident = "Intel_Strago based Chromebooks (Cyan)",
	.ident = "Samsung Chromebook 3 (Celes)",

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems
  2017-05-15 11:14   ` Andy Shevchenko
@ 2017-05-15 11:19     ` Mika Westerberg
  2017-05-15 22:26     ` Dmitry Torokhov
  1 sibling, 0 replies; 8+ messages in thread
From: Mika Westerberg @ 2017-05-15 11:19 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Linus Walleij, Jean Delvare, Heikki Krogerus, Dmitry Torokhov,
	Wei Yongjun, bbaude, mildred-bug.kernel, barnacs, lvuksta,
	linux-kernel, linux-gpio

On Mon, May 15, 2017 at 02:14:38PM +0300, Andy Shevchenko wrote:
> On Mon, 2017-05-15 at 14:01 +0300, Mika Westerberg wrote:
> > It turns out there are quite many Chromebooks out there that have the
> > same keyboard issue than Acer Chromebook. All of them are based on
> > Intel_Strago reference and report their DMI_PRODUCT_FAMILY as
> > "Intel_Strago" (Samsung Chromebook 3 and Cyan Chromebooks are
> > exceptions
> > for which we add separate entries).
> > 
> > Instead of adding each machine to the quirk table, we use
> > DMI_PRODUCT_FAMILY of "Intel_Strago" that hopefully covers most of the
> > machines out there currently.
> > 
> > 
> 
> > +		.ident = "Intel_Strago based Chromebooks",
> 
> > +		.ident = "Cyan Chromebook",
> 
> > +		.ident = "Samsung Chromebook 3",
> 
> I would do something like below (though I'm fine with current as well).
> 
> 	.ident = "Intel_Strago based Chromebooks (All models)",
> 	.ident = "Intel_Strago based Chromebooks (Cyan)",
> 	.ident = "Samsung Chromebook 3 (Celes)",

Works for me :)

I will change this in v2 accordinly. Thanks.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems
  2017-05-15 11:14   ` Andy Shevchenko
  2017-05-15 11:19     ` Mika Westerberg
@ 2017-05-15 22:26     ` Dmitry Torokhov
  1 sibling, 0 replies; 8+ messages in thread
From: Dmitry Torokhov @ 2017-05-15 22:26 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Mika Westerberg, Linus Walleij, Jean Delvare, Heikki Krogerus,
	Wei Yongjun, bbaude, mildred-bug.kernel, barnacs, lvuksta, lkml,
	linux-gpio

On Mon, May 15, 2017 at 4:14 AM, Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
> On Mon, 2017-05-15 at 14:01 +0300, Mika Westerberg wrote:
>> It turns out there are quite many Chromebooks out there that have the
>> same keyboard issue than Acer Chromebook. All of them are based on
>> Intel_Strago reference and report their DMI_PRODUCT_FAMILY as
>> "Intel_Strago" (Samsung Chromebook 3 and Cyan Chromebooks are
>> exceptions
>> for which we add separate entries).
>>
>> Instead of adding each machine to the quirk table, we use
>> DMI_PRODUCT_FAMILY of "Intel_Strago" that hopefully covers most of the
>> machines out there currently.
>>
>>
>
>> +             .ident = "Intel_Strago based Chromebooks",
>
>> +             .ident = "Cyan Chromebook",
>
>> +             .ident = "Samsung Chromebook 3",
>
> I would do something like below (though I'm fine with current as well).
>
>         .ident = "Intel_Strago based Chromebooks (All models)",
>         .ident = "Intel_Strago based Chromebooks (Cyan)",

I think this one should be "Acer Chromebook R11 (Cyan)"

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems
  2017-05-15 11:01 [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems Mika Westerberg
                   ` (2 preceding siblings ...)
  2017-05-15 11:01 ` [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems Mika Westerberg
@ 2017-05-23  8:00 ` Linus Walleij
  3 siblings, 0 replies; 8+ messages in thread
From: Linus Walleij @ 2017-05-23  8:00 UTC (permalink / raw)
  To: Mika Westerberg, Andy Shevchenko, Jean Delvare
  Cc: Heikki Krogerus, Dmitry Torokhov, Wei Yongjun, bbaude,
	mildred-bug.kernel, barnacs, lvuksta, linux-kernel, linux-gpio

On Mon, May 15, 2017 at 1:01 PM, Mika Westerberg
<mika.westerberg@linux.intel.com> wrote:

> It turned out that there are bunch of other Chromebooks that need the DMI
> quirk as well. Most of these are based on Intel_Strago reference design so
> we can identify them by using DMI_PRODUCT_FAMILY introduced in this series.
> The systems without the family string we add them separately.

I guess this is fixes material.

Who can ACK the firmware patch?

That subsystem seems to be weirdly floating between maintainers...

Andy generally seems to know what is going on with Intel
firmwares, so Andy can you ACK this patch set?

Jean Delvare's review would also be appreciated.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-05-23  8:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-15 11:01 [PATCH 0/3] pinctrl: cherryview: Extend the DMI quirk to Intel_Strago systems Mika Westerberg
2017-05-15 11:01 ` [PATCH 1/3] firmware: dmi: Add DMI_PRODUCT_FAMILY identification string Mika Westerberg
2017-05-15 11:01 ` [PATCH 2/3] pinctrl: cherryview: Add terminate entry for dmi_system_id tables Mika Westerberg
2017-05-15 11:01 ` [PATCH 3/3] pinctrl: cherryview: Extend the Chromebook DMI quirk to Intel_Strago systems Mika Westerberg
2017-05-15 11:14   ` Andy Shevchenko
2017-05-15 11:19     ` Mika Westerberg
2017-05-15 22:26     ` Dmitry Torokhov
2017-05-23  8:00 ` [PATCH 0/3] pinctrl: cherryview: Extend the " Linus Walleij

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).