linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] add support for ASIX AX99100
@ 2023-07-18 17:41 Jiaqing Zhao
  2023-07-18 17:41 ` [PATCH 1/4] can: ems_pci: remove PCI_SUBVENDOR_ID_ASIX definition Jiaqing Zhao
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Jiaqing Zhao @ 2023-07-18 17:41 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman
  Cc: Andy Shevchenko, linux-serial, linux-pci, linux-can, linux-kernel,
	Jiaqing Zhao

This patch adds kernel inbox driver support for the serial port and
parallel port mode controller of ASIX AX99100 PCIe to Multi I/O
Controller. This device has 4 separate PCI functions and each functions
can be configured to operate in different modes.

This patchset is tested with ASIX AX99100 in following modes:
* 4 x Serial Port
* 2 x Serial Port
* 2 x Serial Port + 1 x Parallel Port
* 1 x Parallel Port

Jiaqing Zhao (4):
  can: ems_pci: remove PCI_SUBVENDOR_ID_ASIX definition
  can: ems_pci: move ASIX AX99100 ids to pci_ids.h
  serial: 8250_pci: add support for ASIX AX99100
  parport_pc: add support for ASIX AX99100

 drivers/net/can/sja1000/ems_pci.c  |  7 +------
 drivers/parport/parport_pc.c       |  5 +++++
 drivers/tty/serial/8250/8250_pci.c | 10 ++++++++++
 include/linux/pci_ids.h            |  4 ++++
 4 files changed, 20 insertions(+), 6 deletions(-)

-- 
2.39.2


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

* [PATCH 1/4] can: ems_pci: remove PCI_SUBVENDOR_ID_ASIX definition
  2023-07-18 17:41 [PATCH 0/4] add support for ASIX AX99100 Jiaqing Zhao
@ 2023-07-18 17:41 ` Jiaqing Zhao
  2023-07-18 17:41 ` [PATCH 2/4] can: ems_pci: move ASIX AX99100 ids to pci_ids.h Jiaqing Zhao
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Jiaqing Zhao @ 2023-07-18 17:41 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman
  Cc: Andy Shevchenko, linux-serial, linux-pci, linux-can, linux-kernel,
	Jiaqing Zhao

PCI_SUBVENDOR_ID_ASIX is defined as 0xa000, which is not the vendor id
assigned to ASIX by PCI-SIG. Remove it to avoid possible confusion and
conflict.

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/net/can/sja1000/ems_pci.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
index c56e27223e5f..3e18c63a982c 100644
--- a/drivers/net/can/sja1000/ems_pci.c
+++ b/drivers/net/can/sja1000/ems_pci.c
@@ -111,7 +111,6 @@ struct ems_pci_card {
 #ifndef PCI_VENDOR_ID_ASIX
 #define PCI_VENDOR_ID_ASIX 0x125b
 #define PCI_DEVICE_ID_ASIX_9110 0x9110
-#define PCI_SUBVENDOR_ID_ASIX 0xa000
 #endif
 #define PCI_SUBDEVICE_ID_EMS 0x4010
 
@@ -123,7 +122,7 @@ static const struct pci_device_id ems_pci_tbl[] = {
 	/* CPC-104P v2 */
 	{PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, PCI_VENDOR_ID_PLX, 0x4002},
 	/* CPC-PCIe v3 */
-	{PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_9110, PCI_SUBVENDOR_ID_ASIX, PCI_SUBDEVICE_ID_EMS},
+	{PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_9110, 0xa000, PCI_SUBDEVICE_ID_EMS},
 	{0,}
 };
 MODULE_DEVICE_TABLE(pci, ems_pci_tbl);
-- 
2.39.2


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

* [PATCH 2/4] can: ems_pci: move ASIX AX99100 ids to pci_ids.h
  2023-07-18 17:41 [PATCH 0/4] add support for ASIX AX99100 Jiaqing Zhao
  2023-07-18 17:41 ` [PATCH 1/4] can: ems_pci: remove PCI_SUBVENDOR_ID_ASIX definition Jiaqing Zhao
@ 2023-07-18 17:41 ` Jiaqing Zhao
  2023-07-18 18:48   ` Bjorn Helgaas
  2023-07-18 17:41 ` [PATCH 3/4] serial: 8250_pci: add support for ASIX AX99100 Jiaqing Zhao
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Jiaqing Zhao @ 2023-07-18 17:41 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman
  Cc: Andy Shevchenko, linux-serial, linux-pci, linux-can, linux-kernel,
	Jiaqing Zhao

Move PCI Vendor and Device ID of ASIX AX99100 PCIe to Multi I/O
Controller to pci_ids.h for its serial and parallel port driver
support in subsequent patches.

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/net/can/sja1000/ems_pci.c | 6 +-----
 include/linux/pci_ids.h           | 4 ++++
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
index 3e18c63a982c..1aaedaf866f1 100644
--- a/drivers/net/can/sja1000/ems_pci.c
+++ b/drivers/net/can/sja1000/ems_pci.c
@@ -108,10 +108,6 @@ struct ems_pci_card {
 
 #define EMS_PCI_BASE_SIZE  4096 /* size of controller area */
 
-#ifndef PCI_VENDOR_ID_ASIX
-#define PCI_VENDOR_ID_ASIX 0x125b
-#define PCI_DEVICE_ID_ASIX_9110 0x9110
-#endif
 #define PCI_SUBDEVICE_ID_EMS 0x4010
 
 static const struct pci_device_id ems_pci_tbl[] = {
@@ -122,7 +118,7 @@ static const struct pci_device_id ems_pci_tbl[] = {
 	/* CPC-104P v2 */
 	{PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, PCI_VENDOR_ID_PLX, 0x4002},
 	/* CPC-PCIe v3 */
-	{PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_9110, 0xa000, PCI_SUBDEVICE_ID_EMS},
+	{PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100_LB, 0xa000, PCI_SUBDEVICE_ID_EMS},
 	{0,}
 };
 MODULE_DEVICE_TABLE(pci, ems_pci_tbl);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 2dc75df1437f..16608ce4fd0f 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1760,6 +1760,10 @@
 #define PCI_SUBDEVICE_ID_AT_2700FX	0x2701
 #define PCI_SUBDEVICE_ID_AT_2701FX	0x2703
 
+#define PCI_VENDOR_ID_ASIX		0x125b
+#define PCI_DEVICE_ID_ASIX_AX99100	0x9100
+#define PCI_DEVICE_ID_ASIX_AX99100_LB	0x9110
+
 #define PCI_VENDOR_ID_ESS		0x125d
 #define PCI_DEVICE_ID_ESS_ESS1968	0x1968
 #define PCI_DEVICE_ID_ESS_ESS1978	0x1978
-- 
2.39.2


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

* [PATCH 3/4] serial: 8250_pci: add support for ASIX AX99100
  2023-07-18 17:41 [PATCH 0/4] add support for ASIX AX99100 Jiaqing Zhao
  2023-07-18 17:41 ` [PATCH 1/4] can: ems_pci: remove PCI_SUBVENDOR_ID_ASIX definition Jiaqing Zhao
  2023-07-18 17:41 ` [PATCH 2/4] can: ems_pci: move ASIX AX99100 ids to pci_ids.h Jiaqing Zhao
@ 2023-07-18 17:41 ` Jiaqing Zhao
  2023-07-18 18:50   ` Bjorn Helgaas
  2023-07-18 17:42 ` [PATCH 4/4] parport_pc: " Jiaqing Zhao
  2023-07-20  9:26 ` [PATCH 0/4] " Marc Kleine-Budde
  4 siblings, 1 reply; 8+ messages in thread
From: Jiaqing Zhao @ 2023-07-18 17:41 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman
  Cc: Andy Shevchenko, linux-serial, linux-pci, linux-can, linux-kernel,
	Jiaqing Zhao

All 4 PCI functions on ASIX AX99100 PCIe to Multi I/O Controller can be
configured as a single-port serial port controller. The subvendor id is
0x1000 when configured as serial port and MSI interrupts are supported.

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/tty/serial/8250/8250_pci.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index d2d547b5da95..62a9bd30b4db 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -67,6 +67,8 @@ static const struct pci_device_id pci_use_msi[] = {
 			 0xA000, 0x1000) },
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9922,
 			 0xA000, 0x1000) },
+	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100,
+			 0xA000, 0x1000) },
 	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_HP_3PAR, PCI_DEVICE_ID_HPE_PCI_SERIAL,
 			 PCI_ANY_ID, PCI_ANY_ID) },
 	{ }
@@ -5557,6 +5559,14 @@ static const struct pci_device_id serial_pci_tbl[] = {
 	{	PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
 		0xA000, 0x3004,
 		0, 0, pbn_b0_bt_4_115200 },
+
+	/*
+	 * ASIX AX99100 PCIe to Multi I/O Controller
+	 */
+	{	PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100,
+		0xA000, 0x1000,
+		0, 0, pbn_b0_1_115200 },
+
 	/* Intel CE4100 */
 	{	PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CE4100_UART,
 		PCI_ANY_ID,  PCI_ANY_ID, 0, 0,
-- 
2.39.2


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

* [PATCH 4/4] parport_pc: add support for ASIX AX99100
  2023-07-18 17:41 [PATCH 0/4] add support for ASIX AX99100 Jiaqing Zhao
                   ` (2 preceding siblings ...)
  2023-07-18 17:41 ` [PATCH 3/4] serial: 8250_pci: add support for ASIX AX99100 Jiaqing Zhao
@ 2023-07-18 17:42 ` Jiaqing Zhao
  2023-07-20  9:26 ` [PATCH 0/4] " Marc Kleine-Budde
  4 siblings, 0 replies; 8+ messages in thread
From: Jiaqing Zhao @ 2023-07-18 17:42 UTC (permalink / raw)
  To: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman
  Cc: Andy Shevchenko, linux-serial, linux-pci, linux-can, linux-kernel,
	Jiaqing Zhao

The PCI function 2 on ASIX AX99100 PCIe to Multi I/O Controller can be
configured as a single-port parallel port controller. The subvendor id
is 0x2000 when configured as parallel port. It supports IEEE-1284 EPP /
ECP with its ECR on BAR1.

Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/parport/parport_pc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index 3bacbaf16f42..1f236aaf7867 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -2655,6 +2655,7 @@ enum parport_pc_pci_cards {
 	netmos_9815,
 	netmos_9901,
 	netmos_9865,
+	asix_ax99100,
 	quatech_sppxp100,
 	wch_ch382l,
 };
@@ -2733,6 +2734,7 @@ static struct parport_pc_pci {
 	/* netmos_9815 */		{ 2, { { 0, 1 }, { 2, 3 }, } },
 	/* netmos_9901 */               { 1, { { 0, -1 }, } },
 	/* netmos_9865 */               { 1, { { 0, -1 }, } },
+	/* asix_ax99100 */		{ 1, { { 0, 1 }, } },
 	/* quatech_sppxp100 */		{ 1, { { 0, 1 }, } },
 	/* wch_ch382l */		{ 1, { { 2, -1 }, } },
 };
@@ -2823,6 +2825,9 @@ static const struct pci_device_id parport_pc_pci_tbl[] = {
 	  0xA000, 0x1000, 0, 0, netmos_9865 },
 	{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
 	  0xA000, 0x2000, 0, 0, netmos_9865 },
+	/* ASIX AX99100 PCIe to Multi I/O Controller */
+	{ PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100,
+	  0xA000, 0x2000, 0, 0, asix_ax99100 },
 	/* Quatech SPPXP-100 Parallel port PCI ExpressCard */
 	{ PCI_VENDOR_ID_QUATECH, PCI_DEVICE_ID_QUATECH_SPPXP_100,
 	  PCI_ANY_ID, PCI_ANY_ID, 0, 0, quatech_sppxp100 },
-- 
2.39.2


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

* Re: [PATCH 2/4] can: ems_pci: move ASIX AX99100 ids to pci_ids.h
  2023-07-18 17:41 ` [PATCH 2/4] can: ems_pci: move ASIX AX99100 ids to pci_ids.h Jiaqing Zhao
@ 2023-07-18 18:48   ` Bjorn Helgaas
  0 siblings, 0 replies; 8+ messages in thread
From: Bjorn Helgaas @ 2023-07-18 18:48 UTC (permalink / raw)
  To: Jiaqing Zhao
  Cc: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman, Andy Shevchenko, linux-serial, linux-pci,
	linux-can, linux-kernel

On Tue, Jul 18, 2023 at 05:41:58PM +0000, Jiaqing Zhao wrote:
> Move PCI Vendor and Device ID of ASIX AX99100 PCIe to Multi I/O
> Controller to pci_ids.h for its serial and parallel port driver
> support in subsequent patches.
> 
> Signed-off-by: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

> ---
>  drivers/net/can/sja1000/ems_pci.c | 6 +-----
>  include/linux/pci_ids.h           | 4 ++++
>  2 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/can/sja1000/ems_pci.c b/drivers/net/can/sja1000/ems_pci.c
> index 3e18c63a982c..1aaedaf866f1 100644
> --- a/drivers/net/can/sja1000/ems_pci.c
> +++ b/drivers/net/can/sja1000/ems_pci.c
> @@ -108,10 +108,6 @@ struct ems_pci_card {
>  
>  #define EMS_PCI_BASE_SIZE  4096 /* size of controller area */
>  
> -#ifndef PCI_VENDOR_ID_ASIX
> -#define PCI_VENDOR_ID_ASIX 0x125b
> -#define PCI_DEVICE_ID_ASIX_9110 0x9110
> -#endif
>  #define PCI_SUBDEVICE_ID_EMS 0x4010
>  
>  static const struct pci_device_id ems_pci_tbl[] = {
> @@ -122,7 +118,7 @@ static const struct pci_device_id ems_pci_tbl[] = {
>  	/* CPC-104P v2 */
>  	{PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, PCI_VENDOR_ID_PLX, 0x4002},
>  	/* CPC-PCIe v3 */
> -	{PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_9110, 0xa000, PCI_SUBDEVICE_ID_EMS},
> +	{PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100_LB, 0xa000, PCI_SUBDEVICE_ID_EMS},
>  	{0,}
>  };
>  MODULE_DEVICE_TABLE(pci, ems_pci_tbl);
> diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
> index 2dc75df1437f..16608ce4fd0f 100644
> --- a/include/linux/pci_ids.h
> +++ b/include/linux/pci_ids.h
> @@ -1760,6 +1760,10 @@
>  #define PCI_SUBDEVICE_ID_AT_2700FX	0x2701
>  #define PCI_SUBDEVICE_ID_AT_2701FX	0x2703
>  
> +#define PCI_VENDOR_ID_ASIX		0x125b
> +#define PCI_DEVICE_ID_ASIX_AX99100	0x9100
> +#define PCI_DEVICE_ID_ASIX_AX99100_LB	0x9110
> +
>  #define PCI_VENDOR_ID_ESS		0x125d
>  #define PCI_DEVICE_ID_ESS_ESS1968	0x1968
>  #define PCI_DEVICE_ID_ESS_ESS1978	0x1978
> -- 
> 2.39.2
> 

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

* Re: [PATCH 3/4] serial: 8250_pci: add support for ASIX AX99100
  2023-07-18 17:41 ` [PATCH 3/4] serial: 8250_pci: add support for ASIX AX99100 Jiaqing Zhao
@ 2023-07-18 18:50   ` Bjorn Helgaas
  0 siblings, 0 replies; 8+ messages in thread
From: Bjorn Helgaas @ 2023-07-18 18:50 UTC (permalink / raw)
  To: Jiaqing Zhao
  Cc: Wolfgang Grandegger, Marc Kleine-Budde, Sudip Mukherjee,
	Greg Kroah-Hartman, Andy Shevchenko, linux-serial, linux-pci,
	linux-can, linux-kernel

On Tue, Jul 18, 2023 at 05:41:59PM +0000, Jiaqing Zhao wrote:
> All 4 PCI functions on ASIX AX99100 PCIe to Multi I/O Controller can be

Maybe clearer to say "Each of the four PCI functions ... can be
configured as a serial port controller"?

> configured as a single-port serial port controller. The subvendor id is
> 0x1000 when configured as serial port and MSI interrupts are supported.

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

* Re: [PATCH 0/4] add support for ASIX AX99100
  2023-07-18 17:41 [PATCH 0/4] add support for ASIX AX99100 Jiaqing Zhao
                   ` (3 preceding siblings ...)
  2023-07-18 17:42 ` [PATCH 4/4] parport_pc: " Jiaqing Zhao
@ 2023-07-20  9:26 ` Marc Kleine-Budde
  4 siblings, 0 replies; 8+ messages in thread
From: Marc Kleine-Budde @ 2023-07-20  9:26 UTC (permalink / raw)
  To: Jiaqing Zhao
  Cc: Wolfgang Grandegger, Sudip Mukherjee, Greg Kroah-Hartman,
	Andy Shevchenko, linux-serial, linux-pci, linux-can, linux-kernel

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

On 18.07.2023 17:41:56, Jiaqing Zhao wrote:
> This patch adds kernel inbox driver support for the serial port and
> parallel port mode controller of ASIX AX99100 PCIe to Multi I/O
> Controller. This device has 4 separate PCI functions and each functions
> can be configured to operate in different modes.
> 
> This patchset is tested with ASIX AX99100 in following modes:
> * 4 x Serial Port
> * 2 x Serial Port
> * 2 x Serial Port + 1 x Parallel Port
> * 1 x Parallel Port

I think it's better to split the series into subsystems. For CAN that
would be patches 1 and 2. Please add support@ems-wuensche.com and
uttenthaler@ems-wuensche.com on Cc.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde          |
Embedded Linux                   | https://www.pengutronix.de |
Vertretung Nürnberg              | Phone: +49-5121-206917-129 |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-9   |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

end of thread, other threads:[~2023-07-20  9:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-18 17:41 [PATCH 0/4] add support for ASIX AX99100 Jiaqing Zhao
2023-07-18 17:41 ` [PATCH 1/4] can: ems_pci: remove PCI_SUBVENDOR_ID_ASIX definition Jiaqing Zhao
2023-07-18 17:41 ` [PATCH 2/4] can: ems_pci: move ASIX AX99100 ids to pci_ids.h Jiaqing Zhao
2023-07-18 18:48   ` Bjorn Helgaas
2023-07-18 17:41 ` [PATCH 3/4] serial: 8250_pci: add support for ASIX AX99100 Jiaqing Zhao
2023-07-18 18:50   ` Bjorn Helgaas
2023-07-18 17:42 ` [PATCH 4/4] parport_pc: " Jiaqing Zhao
2023-07-20  9:26 ` [PATCH 0/4] " Marc Kleine-Budde

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