]> git.baikalelectronics.ru Git - kernel.git/commitdiff
sfc/siena: Make MCDI logging support specific for Siena
authorMartin Habets <habetsm.xilinx@gmail.com>
Wed, 11 May 2022 16:20:01 +0000 (17:20 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 12 May 2022 23:49:30 +0000 (16:49 -0700)
Add a Siena Kconfig option and use it in stead of the sfc one.
Rename the internal variable for the 'mcdi_logging_default' module
parameter to avoid a naming conflict with the one in sfc.ko.

Signed-off-by: Martin Habets <habetsm.xilinx@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/sfc/Kconfig
drivers/net/ethernet/sfc/siena/Kconfig
drivers/net/ethernet/sfc/siena/efx_common.c
drivers/net/ethernet/sfc/siena/efx_common.h
drivers/net/ethernet/sfc/siena/mcdi.c
drivers/net/ethernet/sfc/siena/mcdi.h

index dac2f09702aa86eee461f7e89ad66109162899eb..0950e6b0508f798d8e3a2fae52333c578195bade 100644 (file)
@@ -55,7 +55,7 @@ config SFC_SRIOV
          features, allowing accelerated network performance in
          virtualized environments.
 config SFC_MCDI_LOGGING
-       bool "Solarflare SFC9000/SFC9100-family MCDI logging support"
+       bool "Solarflare SFC9100-family MCDI logging support"
        depends on SFC
        default y
        help
index 4eb6801ff3c01df95d6d8ccfab6e1d75d7ac4969..cb3c5cb42a53eb678d9d106a0cae6d92b93e068b 100644 (file)
@@ -33,3 +33,13 @@ config SFC_SIENA_SRIOV
          This enables support for the Single Root I/O Virtualization
          features, allowing accelerated network performance in
          virtualized environments.
+config SFC_SIENA_MCDI_LOGGING
+       bool "Solarflare SFC9000-family MCDI logging support"
+       depends on SFC_SIENA
+       default y
+       help
+         This enables support for tracing of MCDI (Management-Controller-to-
+         Driver-Interface) commands and responses, allowing debugging of
+         driver/firmware interaction.  The tracing is actually enabled by
+         a sysfs file 'mcdi_logging' under the PCI device, or via module
+         parameter mcdi_logging_default.
index 3aef8d216f95286b69465a38044d938853b4ecf7..a615bffcbad4ed61164247c71adcf4d731d5c194 100644 (file)
@@ -1170,7 +1170,7 @@ void efx_siena_fini_io(struct efx_nic *efx)
                pci_disable_device(efx->pci_dev);
 }
 
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
 static ssize_t mcdi_logging_show(struct device *dev,
                                 struct device_attribute *attr,
                                 char *buf)
index 470033611436de795a31ae7bcba28ec4a21f0752..aeb92f4e34b71d7b2049a2ded7e4beb48fffd0ff 100644 (file)
@@ -88,7 +88,7 @@ static inline void efx_schedule_channel_irq(struct efx_channel *channel)
        efx_schedule_channel(channel);
 }
 
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
 void efx_siena_init_mcdi_logging(struct efx_nic *efx);
 void efx_siena_fini_mcdi_logging(struct efx_nic *efx);
 #else
index b767e29cfe92fbc9b767857b7f527eda0c369f08..3df0f0eca3b7ea3ca048ad5c6b51fed5a7f97dbd 100644 (file)
@@ -51,9 +51,10 @@ static int efx_mcdi_drv_attach(struct efx_nic *efx, bool driver_operating,
 static bool efx_mcdi_poll_once(struct efx_nic *efx);
 static void efx_mcdi_abandon(struct efx_nic *efx);
 
-#ifdef CONFIG_SFC_MCDI_LOGGING
-static bool mcdi_logging_default;
-module_param(mcdi_logging_default, bool, 0644);
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
+static bool efx_siena_mcdi_logging_default;
+module_param_named(mcdi_logging_default, efx_siena_mcdi_logging_default,
+                  bool, 0644);
 MODULE_PARM_DESC(mcdi_logging_default,
                 "Enable MCDI logging on newly-probed functions");
 #endif
@@ -70,12 +71,12 @@ int efx_siena_mcdi_init(struct efx_nic *efx)
 
        mcdi = efx_mcdi(efx);
        mcdi->efx = efx;
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        /* consuming code assumes buffer is page-sized */
        mcdi->logging_buffer = (char *)__get_free_page(GFP_KERNEL);
        if (!mcdi->logging_buffer)
                goto fail1;
-       mcdi->logging_enabled = mcdi_logging_default;
+       mcdi->logging_enabled = efx_siena_mcdi_logging_default;
 #endif
        init_waitqueue_head(&mcdi->wq);
        init_waitqueue_head(&mcdi->proxy_rx_wq);
@@ -114,7 +115,7 @@ int efx_siena_mcdi_init(struct efx_nic *efx)
 
        return 0;
 fail2:
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        free_page((unsigned long)mcdi->logging_buffer);
 fail1:
 #endif
@@ -140,7 +141,7 @@ void efx_siena_mcdi_fini(struct efx_nic *efx)
        if (!efx->mcdi)
                return;
 
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        free_page((unsigned long)efx->mcdi->iface.logging_buffer);
 #endif
 
@@ -151,7 +152,7 @@ static void efx_mcdi_send_request(struct efx_nic *efx, unsigned cmd,
                                  const efx_dword_t *inbuf, size_t inlen)
 {
        struct efx_mcdi_iface *mcdi = efx_mcdi(efx);
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        char *buf = mcdi->logging_buffer; /* page-sized */
 #endif
        efx_dword_t hdr[2];
@@ -198,7 +199,7 @@ static void efx_mcdi_send_request(struct efx_nic *efx, unsigned cmd,
                hdr_len = 8;
        }
 
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        if (mcdi->logging_enabled && !WARN_ON_ONCE(!buf)) {
                int bytes = 0;
                int i;
@@ -266,7 +267,7 @@ static void efx_mcdi_read_response_header(struct efx_nic *efx)
 {
        struct efx_mcdi_iface *mcdi = efx_mcdi(efx);
        unsigned int respseq, respcmd, error;
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        char *buf = mcdi->logging_buffer; /* page-sized */
 #endif
        efx_dword_t hdr;
@@ -286,7 +287,7 @@ static void efx_mcdi_read_response_header(struct efx_nic *efx)
                        EFX_DWORD_FIELD(hdr, MC_CMD_V2_EXTN_IN_ACTUAL_LEN);
        }
 
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        if (mcdi->logging_enabled && !WARN_ON_ONCE(!buf)) {
                size_t hdr_len, data_len;
                int bytes = 0;
index 03810c570a33573bc5ec5519ecafb81f8be865f9..06f38e5e68329bb01b6db7c05bc7810c60b35c67 100644 (file)
@@ -80,7 +80,7 @@ struct efx_mcdi_iface {
        spinlock_t async_lock;
        struct list_head async_list;
        struct timer_list async_timer;
-#ifdef CONFIG_SFC_MCDI_LOGGING
+#ifdef CONFIG_SFC_SIENA_MCDI_LOGGING
        char *logging_buffer;
        bool logging_enabled;
 #endif