sfc: Make efx_mcdi_init() call efx_mcdi_handle_assertion()
authorBen Hutchings <bhutchings@solarflare.com>
Tue, 18 Sep 2012 01:33:55 +0000 (02:33 +0100)
committerBen Hutchings <bhutchings@solarflare.com>
Wed, 21 Aug 2013 18:43:09 +0000 (19:43 +0100)
This should probably be done during MCDI initialisation for any NIC.
Change efx_mcdi_init() to return an error code.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/ethernet/sfc/mcdi.c
drivers/net/ethernet/sfc/mcdi.h
drivers/net/ethernet/sfc/siena.c

index 5132abaad649fc2f1ec1cae91a4dcddf4af79263..2b9ef282ae8c5d6db5e6a6c114af5f5bff6a89ed 100644 (file)
@@ -50,13 +50,10 @@ static inline struct efx_mcdi_iface *efx_mcdi(struct efx_nic *efx)
        return &nic_data->mcdi;
 }
 
-void efx_mcdi_init(struct efx_nic *efx)
+int efx_mcdi_init(struct efx_nic *efx)
 {
        struct efx_mcdi_iface *mcdi;
 
-       if (efx_nic_rev(efx) < EFX_REV_SIENA_A0)
-               return;
-
        mcdi = efx_mcdi(efx);
        init_waitqueue_head(&mcdi->wq);
        spin_lock_init(&mcdi->iface_lock);
@@ -64,6 +61,9 @@ void efx_mcdi_init(struct efx_nic *efx)
        mcdi->mode = MCDI_MODE_POLL;
 
        (void) efx_mcdi_poll_reboot(efx);
+
+       /* Recover from a failed assertion before probing */
+       return efx_mcdi_handle_assertion(efx);
 }
 
 static void efx_mcdi_copyin(struct efx_nic *efx, unsigned cmd,
index c8f2cd57041c57824a385647840bf725f9ed8a3e..6c58dbd7f581c094e086d566ca684666172c38c3 100644 (file)
@@ -65,7 +65,7 @@ struct efx_mcdi_mon {
        unsigned int n_attrs;
 };
 
-extern void efx_mcdi_init(struct efx_nic *efx);
+extern int efx_mcdi_init(struct efx_nic *efx);
 
 extern int efx_mcdi_rpc(struct efx_nic *efx, unsigned cmd,
                        const efx_dword_t *inbuf, size_t inlen,
index b5d5568485d0605882f1bc8dfd28dc5a5d2fa802..3dca771938f0c4786a9fc15b761838af773a6953 100644 (file)
@@ -210,10 +210,7 @@ static int siena_probe_nic(struct efx_nic *efx)
        efx_reado(efx, &reg, FR_AZ_CS_DEBUG);
        efx->port_num = EFX_OWORD_FIELD(reg, FRF_CZ_CS_PORT_NUM) - 1;
 
-       efx_mcdi_init(efx);
-
-       /* Recover from a failed assertion before probing */
-       rc = efx_mcdi_handle_assertion(efx);
+       rc = efx_mcdi_init(efx);
        if (rc)
                goto fail1;