All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mei: me: Add itouch device IDs for SPT / ICP
@ 2020-06-01 15:59 Dorian Stoll
  2020-06-01 16:32 ` Winkler, Tomas
  0 siblings, 1 reply; 4+ messages in thread
From: Dorian Stoll @ 2020-06-01 15:59 UTC (permalink / raw)
  To: Tomas Winkler, Arnd Bergmann, Greg Kroah-Hartman
  Cc: linux-kernel, Dorian Stoll

These device IDs can be found on Microsoft Surface devices.

Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
---
 drivers/misc/mei/hw-me-regs.h | 2 ++
 drivers/misc/mei/pci-me.c     | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
index 9392934e3a06..90e7d3020fa5 100644
--- a/drivers/misc/mei/hw-me-regs.h
+++ b/drivers/misc/mei/hw-me-regs.h
@@ -59,6 +59,7 @@
 
 #define MEI_DEV_ID_SPT        0x9D3A  /* Sunrise Point */
 #define MEI_DEV_ID_SPT_2      0x9D3B  /* Sunrise Point 2 */
+#define MEI_DEV_ID_SPT_4      0x9D3E  /* Sunrise Point 4 (iTouch) */
 #define MEI_DEV_ID_SPT_H      0xA13A  /* Sunrise Point H */
 #define MEI_DEV_ID_SPT_H_2    0xA13B  /* Sunrise Point H 2 */
 
@@ -90,6 +91,7 @@
 #define MEI_DEV_ID_CDF        0x18D3  /* Cedar Fork */
 
 #define MEI_DEV_ID_ICP_LP     0x34E0  /* Ice Lake Point LP */
+#define MEI_DEV_ID_ICP_LP_4   0x34E4  /* Ice Lake Point LP 4 (iTouch) */
 
 #define MEI_DEV_ID_JSP_N      0x4DE0  /* Jasper Lake Point N */
 
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
index a1ed375fed37..5e621e90d8d4 100644
--- a/drivers/misc/mei/pci-me.c
+++ b/drivers/misc/mei/pci-me.c
@@ -68,6 +68,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
 
 	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
 	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
+	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
 	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
 	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
 	{MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_SPS_CFG)},
@@ -94,6 +95,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
 	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
 
 	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
+	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP_4, MEI_ME_PCH12_CFG)},
 
 	{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
 
-- 
2.26.2



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

* RE: [PATCH] mei: me: Add itouch device IDs for SPT / ICP
  2020-06-01 15:59 [PATCH] mei: me: Add itouch device IDs for SPT / ICP Dorian Stoll
@ 2020-06-01 16:32 ` Winkler, Tomas
  2020-06-01 17:24   ` Dorian Stoll
  0 siblings, 1 reply; 4+ messages in thread
From: Winkler, Tomas @ 2020-06-01 16:32 UTC (permalink / raw)
  To: Dorian Stoll, Arnd Bergmann, Greg Kroah-Hartman; +Cc: linux-kernel



> These device IDs can be found on Microsoft Surface devices.
> 
> Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>

This need to be done differently because of the server platforms conflict.
I have patches for that I will post short, though we are not officially supporting those devices under Linux, 
It will be hard to maintain,  as currently on the MS surface enables it as far as I know.

> ---
>  drivers/misc/mei/hw-me-regs.h | 2 ++
>  drivers/misc/mei/pci-me.c     | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-
> regs.h index 9392934e3a06..90e7d3020fa5 100644
> --- a/drivers/misc/mei/hw-me-regs.h
> +++ b/drivers/misc/mei/hw-me-regs.h
> @@ -59,6 +59,7 @@
> 
>  #define MEI_DEV_ID_SPT        0x9D3A  /* Sunrise Point */
>  #define MEI_DEV_ID_SPT_2      0x9D3B  /* Sunrise Point 2 */
> +#define MEI_DEV_ID_SPT_4      0x9D3E  /* Sunrise Point 4 (iTouch) */
>  #define MEI_DEV_ID_SPT_H      0xA13A  /* Sunrise Point H */
>  #define MEI_DEV_ID_SPT_H_2    0xA13B  /* Sunrise Point H 2 */
> 
> @@ -90,6 +91,7 @@
>  #define MEI_DEV_ID_CDF        0x18D3  /* Cedar Fork */
> 
>  #define MEI_DEV_ID_ICP_LP     0x34E0  /* Ice Lake Point LP */
> +#define MEI_DEV_ID_ICP_LP_4   0x34E4  /* Ice Lake Point LP 4 (iTouch) */
> 
>  #define MEI_DEV_ID_JSP_N      0x4DE0  /* Jasper Lake Point N */
> 
> diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c index
> a1ed375fed37..5e621e90d8d4 100644
> --- a/drivers/misc/mei/pci-me.c
> +++ b/drivers/misc/mei/pci-me.c
> @@ -68,6 +68,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
> 
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
> +	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_SPS_CFG)},
> @@ -94,6 +95,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
> 
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
> +	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP_4, MEI_ME_PCH12_CFG)},
> 
>  	{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
> 
> --
> 2.26.2
> 


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

* Re: [PATCH] mei: me: Add itouch device IDs for SPT / ICP
  2020-06-01 16:32 ` Winkler, Tomas
@ 2020-06-01 17:24   ` Dorian Stoll
  2020-06-01 21:25     ` Winkler, Tomas
  0 siblings, 1 reply; 4+ messages in thread
From: Dorian Stoll @ 2020-06-01 17:24 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman, Winkler, Tomas; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 4046 bytes --]

> 
> > These device IDs can be found on Microsoft Surface devices.
> > 
> > Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
> 
> This need to be done differently because of the server platforms conflict.
> I have patches for that I will post short, though we are not officially supporting those devices under Linux, 
> It will be hard to maintain,  as currently on the MS surface enables it as far as I know.
> 

Thank you for your response!

If you don't mind, could you elaborate on these devices not being supported
under Linux? Is it just that the functionality they provide
(Intel Precise Touch & Stylus / iTouch / IPTS) won't be supported? Because
that I already know, and it is not the intent of this patch. Or do you mean
that the entire MEI interface won't be supported for these devices?

Some context on this patch: I am part of a small team of volunteers who try
to make the MS Surface devices usable under linux, including the touchscreen
(which uses IPTS as of the Surface Pro 4).

The IPTS driver connects to the device over the MEI bus, but the MEI device
is provided by the iTouch devices. Currently we build our own kernels with
this patch applied to allow the driver to work. All of this is loosely based
on a driver that Intel published a few years ago.

Since the driver is otherwise pretty much standalone, my hope was that adding
these IDs would make it easier to develop / install our driver without having
to recompile the entire kernel (i.e. using DKMS). At least until the driver
has matured enough and is ready for upstream submission itself. Especially
since other iTouch devices have their device IDs added already.

That this would cause conflicts is unfortunate. Judging purely by your words
- without having any deeper knowledge about the MEI bus - it seems that it
might be possible to fix these conflicts? If thats true, I hope it would also
be possible to add these IDs, so that just the MEI interface to IPTS becomes
supported - I don't expect you to support the entire IPTS technology.

> > ---
> >  drivers/misc/mei/hw-me-regs.h | 2 ++
> >  drivers/misc/mei/pci-me.c     | 2 ++
> >  2 files changed, 4 insertions(+)
> > 
> > diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-
> > regs.h index 9392934e3a06..90e7d3020fa5 100644
> > --- a/drivers/misc/mei/hw-me-regs.h
> > +++ b/drivers/misc/mei/hw-me-regs.h
> > @@ -59,6 +59,7 @@
> > 
> >  #define MEI_DEV_ID_SPT        0x9D3A  /* Sunrise Point */
> >  #define MEI_DEV_ID_SPT_2      0x9D3B  /* Sunrise Point 2 */
> > +#define MEI_DEV_ID_SPT_4      0x9D3E  /* Sunrise Point 4 (iTouch) */
> >  #define MEI_DEV_ID_SPT_H      0xA13A  /* Sunrise Point H */
> >  #define MEI_DEV_ID_SPT_H_2    0xA13B  /* Sunrise Point H 2 */
> > 
> > @@ -90,6 +91,7 @@
> >  #define MEI_DEV_ID_CDF        0x18D3  /* Cedar Fork */
> > 
> >  #define MEI_DEV_ID_ICP_LP     0x34E0  /* Ice Lake Point LP */
> > +#define MEI_DEV_ID_ICP_LP_4   0x34E4  /* Ice Lake Point LP 4 (iTouch) */
> > 
> >  #define MEI_DEV_ID_JSP_N      0x4DE0  /* Jasper Lake Point N */
> > 
> > diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c index
> > a1ed375fed37..5e621e90d8d4 100644
> > --- a/drivers/misc/mei/pci-me.c
> > +++ b/drivers/misc/mei/pci-me.c
> > @@ -68,6 +68,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
> > 
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
> > +	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_SPS_CFG)},
> > @@ -94,6 +95,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
> > 
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
> > +	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP_4, MEI_ME_PCH12_CFG)},
> > 
> >  	{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
> > 
> > --
> > 2.26.2
> > 
> 
> 


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* RE: [PATCH] mei: me: Add itouch device IDs for SPT / ICP
  2020-06-01 17:24   ` Dorian Stoll
@ 2020-06-01 21:25     ` Winkler, Tomas
  0 siblings, 0 replies; 4+ messages in thread
From: Winkler, Tomas @ 2020-06-01 21:25 UTC (permalink / raw)
  To: Dorian Stoll, Arnd Bergmann, Greg Kroah-Hartman; +Cc: linux-kernel

> 
> >
> > > These device IDs can be found on Microsoft Surface devices.
> > >
> > > Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
> >
> > This need to be done differently because of the server platforms conflict.
> > I have patches for that I will post short, though we are not
> > officially supporting those devices under Linux, It will be hard to maintain,
> as currently on the MS surface enables it as far as I know.
> >
> 
> Thank you for your response!
> 
> If you don't mind, could you elaborate on these devices not being supported
> under Linux? Is it just that the functionality they provide (Intel Precise Touch
> & Stylus / iTouch / IPTS) won't be supported? Because that I already know,
> and it is not the intent of this patch. Or do you mean that the entire MEI
> interface won't be supported for these devices?

Just the iTouch.

> 
> Some context on this patch: I am part of a small team of volunteers who try
> to make the MS Surface devices usable under linux, including the
> touchscreen (which uses IPTS as of the Surface Pro 4).

Nice work.

> The IPTS driver connects to the device over the MEI bus, but the MEI device is
> provided by the iTouch devices. Currently we build our own kernels with this
> patch applied to allow the driver to work. All of this is loosely based on a
> driver that Intel published a few years ago.

Yes, I'm fully aware of that code base.
 
> Since the driver is otherwise pretty much standalone,
You do depend on i915, that's the hard part.
> my hope was that
> adding these IDs would make it easier to develop / install our driver without
> having to recompile the entire kernel (i.e. using DKMS). At least until the
> driver has matured enough and is ready for upstream submission itself.
> Especially since other iTouch devices have their device IDs added already.

Agree. 
 
> That this would cause conflicts is unfortunate. Judging purely by your words
> - without having any deeper knowledge about the MEI bus - it seems that it
> might be possible to fix these conflicts? If thats true, I hope it would also be
> possible to add these IDs, so that just the MEI interface to IPTS becomes
> supported - 

Yes, I'm working on that just now.

> I don't expect you to support the entire IPTS technology.

Yep, unfortunately it's not going to be funded by my wife.

> > > ---
> > >  drivers/misc/mei/hw-me-regs.h | 2 ++
> > >  drivers/misc/mei/pci-me.c     | 2 ++
> > >  2 files changed, 4 insertions(+)
> > >
> > > diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-
> > > regs.h index 9392934e3a06..90e7d3020fa5 100644
> > > --- a/drivers/misc/mei/hw-me-regs.h
> > > +++ b/drivers/misc/mei/hw-me-regs.h
> > > @@ -59,6 +59,7 @@
> > >
> > >  #define MEI_DEV_ID_SPT        0x9D3A  /* Sunrise Point */
> > >  #define MEI_DEV_ID_SPT_2      0x9D3B  /* Sunrise Point 2 */
> > > +#define MEI_DEV_ID_SPT_4      0x9D3E  /* Sunrise Point 4 (iTouch) */
> > >  #define MEI_DEV_ID_SPT_H      0xA13A  /* Sunrise Point H */
> > >  #define MEI_DEV_ID_SPT_H_2    0xA13B  /* Sunrise Point H 2 */
> > >
> > > @@ -90,6 +91,7 @@
> > >  #define MEI_DEV_ID_CDF        0x18D3  /* Cedar Fork */
> > >
> > >  #define MEI_DEV_ID_ICP_LP     0x34E0  /* Ice Lake Point LP */
> > > +#define MEI_DEV_ID_ICP_LP_4   0x34E4  /* Ice Lake Point LP 4 (iTouch)
> */
> > >
> > >  #define MEI_DEV_ID_JSP_N      0x4DE0  /* Jasper Lake Point N */
> > >
> > > diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
> > > index
> > > a1ed375fed37..5e621e90d8d4 100644
> > > --- a/drivers/misc/mei/pci-me.c
> > > +++ b/drivers/misc/mei/pci-me.c
> > > @@ -68,6 +68,7 @@ static const struct pci_device_id mei_me_pci_tbl[]
> > > = {
> > >
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
> > > +	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_4, MEI_ME_PCH8_CFG)},
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H, MEI_ME_PCH8_SPS_CFG)},
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_H_2, MEI_ME_PCH8_SPS_CFG)},
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_LBG, MEI_ME_PCH12_SPS_CFG)},
> @@ -94,6
> > > +95,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_CMP_H_3, MEI_ME_PCH8_CFG)},
> > >
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP, MEI_ME_PCH12_CFG)},
> > > +	{MEI_PCI_DEVICE(MEI_DEV_ID_ICP_LP_4, MEI_ME_PCH12_CFG)},
> > >
> > >  	{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
> > >
> > > --
> > > 2.26.2
> > >
> >
> >


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

end of thread, other threads:[~2020-06-01 21:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-01 15:59 [PATCH] mei: me: Add itouch device IDs for SPT / ICP Dorian Stoll
2020-06-01 16:32 ` Winkler, Tomas
2020-06-01 17:24   ` Dorian Stoll
2020-06-01 21:25     ` Winkler, Tomas

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.