switchtec: Add Global Fabric Manager Server (GFMS) event
authorLogan Gunthorpe <logang@deltatee.com>
Wed, 29 Nov 2017 17:28:43 +0000 (10:28 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 19 Dec 2017 05:08:11 +0000 (23:08 -0600)
Add a new event type that is newly exposed by recent firmware. The event
will never occur if the firmware is too old. If user space tries to use
this event in an older kernel, it will just get an EINVAL which is
perfectly acceptable in the existing user space code.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/switch/switchtec.c
include/linux/switchtec.h
include/uapi/linux/switchtec_ioctl.h

index 730cc897b94da0251dac161192fd1bf1fc47b324..7668d270725d0ce51278bc5f292101a8064b6d35 100644 (file)
@@ -707,6 +707,7 @@ static const struct event_reg {
        EV_GLB(SWITCHTEC_IOCTL_EVENT_CLI_MRPC_COMP_ASYNC,
               cli_mrpc_comp_async_hdr),
        EV_GLB(SWITCHTEC_IOCTL_EVENT_GPIO_INT, gpio_interrupt_hdr),
+       EV_GLB(SWITCHTEC_IOCTL_EVENT_GFMS, gfms_event_hdr),
        EV_PAR(SWITCHTEC_IOCTL_EVENT_PART_RESET, part_reset_hdr),
        EV_PAR(SWITCHTEC_IOCTL_EVENT_MRPC_COMP, mrpc_comp_hdr),
        EV_PAR(SWITCHTEC_IOCTL_EVENT_MRPC_COMP_ASYNC, mrpc_comp_async_hdr),
index 09d73d0d1aa8d41c4f889d73500ec4a029c2b06b..42d121174fe2d08119cf2ac38a6dae2c545868a5 100644 (file)
@@ -100,6 +100,9 @@ struct sw_event_regs {
        u32 gpio_interrupt_hdr;
        u32 gpio_interrupt_data;
        u32 reserved16[4];
+       u32 gfms_event_hdr;
+       u32 gfms_event_data;
+       u32 reserved17[4];
 } __packed;
 
 enum {
index 75df44373034a39dc065f7559f5e63b86a8248cc..4f4daf8db954330605a4788a4cd3bb161e194389 100644 (file)
@@ -88,7 +88,8 @@ struct switchtec_ioctl_event_summary {
 #define SWITCHTEC_IOCTL_EVENT_FORCE_SPEED              26
 #define SWITCHTEC_IOCTL_EVENT_CREDIT_TIMEOUT           27
 #define SWITCHTEC_IOCTL_EVENT_LINK_STATE               28
-#define SWITCHTEC_IOCTL_MAX_EVENTS                     29
+#define SWITCHTEC_IOCTL_EVENT_GFMS                     29
+#define SWITCHTEC_IOCTL_MAX_EVENTS                     30
 
 #define SWITCHTEC_IOCTL_EVENT_LOCAL_PART_IDX -1
 #define SWITCHTEC_IOCTL_EVENT_IDX_ALL -2