From 8ebc8d008879281728497348def7b2d443da955d Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Tue, 1 Jun 2010 11:32:43 +0000 Subject: [PATCH] --- yaml --- r: 202623 b: refs/heads/master c: dd8f61d7ff92eb8a4626565ca37b209b3a8a9ce2 h: refs/heads/master i: 202621: 0e8f633983822f1e9c1868ddf01a7b9879f94947 202619: 225afa8bea9c29fc59294be1989bf36b14a721f6 202615: 138107c37fa6ccc25319b69acc8fd230156ba6f2 202607: 262ae43588ae1c4af45b150aaead3b3f921b8711 202591: 23f090d6e78c7dd467a6893c71d49fb3137b5cb7 202559: 717de541e41556de9681f06ec7fa3b272020be09 202495: f7e0dc1fbb3886ae6c56738a3673f6c28ccc41bb v: v3 --- [refs] | 2 +- trunk/drivers/net/sfc/net_driver.h | 4 +++- trunk/drivers/net/sfc/siena.c | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 70f601ceff4e..09ca5abe16cb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d188ceeb3dcc6766db34021b36371a14c21ebd74 +refs/heads/master: dd8f61d7ff92eb8a4626565ca37b209b3a8a9ce2 diff --git a/trunk/drivers/net/sfc/net_driver.h b/trunk/drivers/net/sfc/net_driver.h index 40c0d931b182..6b2e4402ec57 100644 --- a/trunk/drivers/net/sfc/net_driver.h +++ b/trunk/drivers/net/sfc/net_driver.h @@ -649,6 +649,7 @@ union efx_multicast_hash { * struct efx_nic - an Efx NIC * @name: Device name (net device name or bus id before net device registered) * @pci_dev: The PCI device + * @port_num: Index of this host port within the controller * @type: Controller type attributes * @legacy_irq: IRQ number * @workqueue: Workqueue for port reconfigures and the HW monitor. @@ -732,6 +733,7 @@ union efx_multicast_hash { struct efx_nic { char name[IFNAMSIZ]; struct pci_dev *pci_dev; + unsigned port_num; const struct efx_nic_type *type; int legacy_irq; struct workqueue_struct *workqueue; @@ -834,7 +836,7 @@ static inline const char *efx_dev_name(struct efx_nic *efx) static inline unsigned int efx_port_num(struct efx_nic *efx) { - return PCI_FUNC(efx->pci_dev->devfn); + return efx->port_num; } /** diff --git a/trunk/drivers/net/sfc/siena.c b/trunk/drivers/net/sfc/siena.c index 727b4228e081..7ecd255a7cc0 100644 --- a/trunk/drivers/net/sfc/siena.c +++ b/trunk/drivers/net/sfc/siena.c @@ -206,6 +206,7 @@ static int siena_probe_nic(struct efx_nic *efx) { struct siena_nic_data *nic_data; bool already_attached = 0; + efx_oword_t reg; int rc; /* Allocate storage for hardware specific data */ @@ -220,6 +221,9 @@ static int siena_probe_nic(struct efx_nic *efx) goto fail1; } + efx_reado(efx, ®, 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 */