diff mbox

platform/x86: silead_dmi: Add touchscreen info for GP-electronic T701

Message ID 20170507123515.12671-1-hdegoede@redhat.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Hans de Goede May 7, 2017, 12:35 p.m. UTC
Add touchscreen info for the GP-electronic T701 tablet.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/platform/x86/silead_dmi.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

Comments

Darren Hart May 8, 2017, 3:40 p.m. UTC | #1
On Sun, May 07, 2017 at 02:35:15PM +0200, Hans de Goede wrote:
> Add touchscreen info for the GP-electronic T701 tablet.
> 

Ugh, this is exactly the kind of thing ACPI _DSD was intended to solve. Not a
lot we can do about the vendors not including the info in the DSDT of course,
but...  ugh.

I'm curious, are the vendors involved in driving these patches? If so, have you
asked them if they are aware of _DSD and if they would consider using it so they
can avoid having to patch the driver for every instance of a product using this
touchscreen?

> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Queued to testing, thanks Hans.
Darren Hart May 8, 2017, 3:41 p.m. UTC | #2
Just noticed LKML not Cc'd. Please Cc LKML on all patches to the Linux kernel.

On Sun, May 07, 2017 at 02:35:15PM +0200, Hans de Goede wrote:
> Add touchscreen info for the GP-electronic T701 tablet.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/platform/x86/silead_dmi.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/drivers/platform/x86/silead_dmi.c b/drivers/platform/x86/silead_dmi.c
> index a3a57d93cf06..db3a877d2160 100644
> --- a/drivers/platform/x86/silead_dmi.c
> +++ b/drivers/platform/x86/silead_dmi.c
> @@ -80,6 +80,19 @@ static const struct silead_ts_dmi_data surftab_wintron70_st70416_6_data = {
>  	.properties	= surftab_wintron70_st70416_6_props,
>  };
>  
> +static const struct property_entry gp_electronic_t701_props[] = {
> +	PROPERTY_ENTRY_U32("touchscreen-size-x", 960),
> +	PROPERTY_ENTRY_U32("touchscreen-size-y", 640),
> +	PROPERTY_ENTRY_STRING("firmware-name",
> +			      "gsl1680-gp-electronic-t701.fw"),
> +	{ }
> +};
> +
> +static const struct silead_ts_dmi_data gp_electronic_t701_data = {
> +	.acpi_name	= "MSSL1680:00",
> +	.properties	= gp_electronic_t701_props,
> +};
> +
>  static const struct dmi_system_id silead_ts_dmi_table[] = {
>  	{
>  		/* CUBE iwork8 Air */
> @@ -117,6 +130,15 @@ static const struct dmi_system_id silead_ts_dmi_table[] = {
>  			DMI_MATCH(DMI_BIOS_VERSION, "TREK.G.WI71C.JGBMRBA04"),
>  		},
>  	},
> +	{
> +		/* GP-electronic T701 */
> +		.driver_data = (void *)&gp_electronic_t701_data,
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
> +			DMI_MATCH(DMI_PRODUCT_NAME, "T701"),
> +			DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"),
> +		},
> +	},
>  	{ },
>  };
>  
> -- 
> 2.12.2
> 
>
Hans de Goede May 8, 2017, 7:49 p.m. UTC | #3
Hi,

On 08-05-17 17:40, Darren Hart wrote:
> On Sun, May 07, 2017 at 02:35:15PM +0200, Hans de Goede wrote:
>> Add touchscreen info for the GP-electronic T701 tablet.
>>
> 
> Ugh, this is exactly the kind of thing ACPI _DSD was intended to solve. Not a
> lot we can do about the vendors not including the info in the DSDT of course,
> but...  ugh.
> 
> I'm curious, are the vendors involved in driving these patches?

Nope this is just a spare-time project of mine helping people who
want to run mainline Linux on various Bay Trail and Cherry Trail devices.

Regards,

Hans
diff mbox

Patch

diff --git a/drivers/platform/x86/silead_dmi.c b/drivers/platform/x86/silead_dmi.c
index a3a57d93cf06..db3a877d2160 100644
--- a/drivers/platform/x86/silead_dmi.c
+++ b/drivers/platform/x86/silead_dmi.c
@@ -80,6 +80,19 @@  static const struct silead_ts_dmi_data surftab_wintron70_st70416_6_data = {
 	.properties	= surftab_wintron70_st70416_6_props,
 };
 
+static const struct property_entry gp_electronic_t701_props[] = {
+	PROPERTY_ENTRY_U32("touchscreen-size-x", 960),
+	PROPERTY_ENTRY_U32("touchscreen-size-y", 640),
+	PROPERTY_ENTRY_STRING("firmware-name",
+			      "gsl1680-gp-electronic-t701.fw"),
+	{ }
+};
+
+static const struct silead_ts_dmi_data gp_electronic_t701_data = {
+	.acpi_name	= "MSSL1680:00",
+	.properties	= gp_electronic_t701_props,
+};
+
 static const struct dmi_system_id silead_ts_dmi_table[] = {
 	{
 		/* CUBE iwork8 Air */
@@ -117,6 +130,15 @@  static const struct dmi_system_id silead_ts_dmi_table[] = {
 			DMI_MATCH(DMI_BIOS_VERSION, "TREK.G.WI71C.JGBMRBA04"),
 		},
 	},
+	{
+		/* GP-electronic T701 */
+		.driver_data = (void *)&gp_electronic_t701_data,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "T701"),
+			DMI_MATCH(DMI_BIOS_VERSION, "BYT70A.YNCHENG.WIN.007"),
+		},
+	},
 	{ },
 };