diff options
| author | David S. Miller <davem@davemloft.net> | 2011-04-19 03:21:33 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-04-19 03:21:33 -0400 |
| commit | e1943424e43974f85b82bb31eaf832823bf49ce7 (patch) | |
| tree | 00a2dda7454ba186c0be4bfb8d08b7f74c3cd98c | |
| parent | 88230fd586b4ccc5ffe6d6c2df8cdc495e89ad83 (diff) | |
| parent | 0553c891fabd287726b41076cfd03fe7e5ab596f (diff) | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/bnx2x/bnx2x_ethtool.c
44 files changed, 197 insertions, 136 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index e1b056333b5..b5266ad5016 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -151,6 +151,7 @@ S: Maintained | |||
| 151 | F: drivers/net/hamradio/6pack.c | 151 | F: drivers/net/hamradio/6pack.c |
| 152 | 152 | ||
| 153 | 8169 10/100/1000 GIGABIT ETHERNET DRIVER | 153 | 8169 10/100/1000 GIGABIT ETHERNET DRIVER |
| 154 | M: Realtek linux nic maintainers <nic_swsd@realtek.com> | ||
| 154 | M: Francois Romieu <romieu@fr.zoreil.com> | 155 | M: Francois Romieu <romieu@fr.zoreil.com> |
| 155 | L: netdev@vger.kernel.org | 156 | L: netdev@vger.kernel.org |
| 156 | S: Maintained | 157 | S: Maintained |
diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c index d77005849af..219d88a0eea 100644 --- a/drivers/connector/connector.c +++ b/drivers/connector/connector.c | |||
| @@ -142,6 +142,7 @@ static int cn_call_callback(struct sk_buff *skb) | |||
| 142 | cbq->callback(msg, nsp); | 142 | cbq->callback(msg, nsp); |
| 143 | kfree_skb(skb); | 143 | kfree_skb(skb); |
| 144 | cn_queue_release_callback(cbq); | 144 | cn_queue_release_callback(cbq); |
| 145 | err = 0; | ||
| 145 | } | 146 | } |
| 146 | 147 | ||
| 147 | return err; | 148 | return err; |
diff --git a/drivers/net/bna/bfa_ioc.c b/drivers/net/bna/bfa_ioc.c index c1c9e70eec2..ba2a4e13cf4 100644 --- a/drivers/net/bna/bfa_ioc.c +++ b/drivers/net/bna/bfa_ioc.c | |||
| @@ -38,6 +38,8 @@ | |||
| 38 | #define bfa_ioc_map_port(__ioc) ((__ioc)->ioc_hwif->ioc_map_port(__ioc)) | 38 | #define bfa_ioc_map_port(__ioc) ((__ioc)->ioc_hwif->ioc_map_port(__ioc)) |
| 39 | #define bfa_ioc_notify_fail(__ioc) \ | 39 | #define bfa_ioc_notify_fail(__ioc) \ |
| 40 | ((__ioc)->ioc_hwif->ioc_notify_fail(__ioc)) | 40 | ((__ioc)->ioc_hwif->ioc_notify_fail(__ioc)) |
| 41 | #define bfa_ioc_sync_start(__ioc) \ | ||
| 42 | ((__ioc)->ioc_hwif->ioc_sync_start(__ioc)) | ||
| 41 | #define bfa_ioc_sync_join(__ioc) \ | 43 | #define bfa_ioc_sync_join(__ioc) \ |
| 42 | ((__ioc)->ioc_hwif->ioc_sync_join(__ioc)) | 44 | ((__ioc)->ioc_hwif->ioc_sync_join(__ioc)) |
| 43 | #define bfa_ioc_sync_leave(__ioc) \ | 45 | #define bfa_ioc_sync_leave(__ioc) \ |
| @@ -602,7 +604,7 @@ bfa_iocpf_sm_fwcheck(struct bfa_iocpf *iocpf, enum iocpf_event event) | |||
| 602 | switch (event) { | 604 | switch (event) { |
| 603 | case IOCPF_E_SEMLOCKED: | 605 | case IOCPF_E_SEMLOCKED: |
| 604 | if (bfa_ioc_firmware_lock(ioc)) { | 606 | if (bfa_ioc_firmware_lock(ioc)) { |
| 605 | if (bfa_ioc_sync_complete(ioc)) { | 607 | if (bfa_ioc_sync_start(ioc)) { |
| 606 | iocpf->retry_count = 0; | 608 | iocpf->retry_count = 0; |
| 607 | bfa_ioc_sync_join(ioc); | 609 | bfa_ioc_sync_join(ioc); |
| 608 | bfa_fsm_set_state(iocpf, bfa_iocpf_sm_hwinit); | 610 | bfa_fsm_set_state(iocpf, bfa_iocpf_sm_hwinit); |
| @@ -1313,7 +1315,7 @@ bfa_nw_ioc_fwver_cmp(struct bfa_ioc *ioc, struct bfi_ioc_image_hdr *fwhdr) | |||
| 1313 | * execution context (driver/bios) must match. | 1315 | * execution context (driver/bios) must match. |
| 1314 | */ | 1316 | */ |
| 1315 | static bool | 1317 | static bool |
| 1316 | bfa_ioc_fwver_valid(struct bfa_ioc *ioc) | 1318 | bfa_ioc_fwver_valid(struct bfa_ioc *ioc, u32 boot_env) |
| 1317 | { | 1319 | { |
| 1318 | struct bfi_ioc_image_hdr fwhdr, *drv_fwhdr; | 1320 | struct bfi_ioc_image_hdr fwhdr, *drv_fwhdr; |
| 1319 | 1321 | ||
| @@ -1324,7 +1326,7 @@ bfa_ioc_fwver_valid(struct bfa_ioc *ioc) | |||
| 1324 | if (fwhdr.signature != drv_fwhdr->signature) | 1326 | if (fwhdr.signature != drv_fwhdr->signature) |
| 1325 | return false; | 1327 | return false; |
| 1326 | 1328 | ||
| 1327 | if (fwhdr.exec != drv_fwhdr->exec) | 1329 | if (swab32(fwhdr.param) != boot_env) |
| 1328 | return false; | 1330 | return false; |
| 1329 | 1331 | ||
| 1330 | return bfa_nw_ioc_fwver_cmp(ioc, &fwhdr); | 1332 | return bfa_nw_ioc_fwver_cmp(ioc, &fwhdr); |
| @@ -1351,9 +1353,12 @@ bfa_ioc_hwinit(struct bfa_ioc *ioc, bool force) | |||
| 1351 | { | 1353 | { |
| 1352 | enum bfi_ioc_state ioc_fwstate; | 1354 | enum bfi_ioc_state ioc_fwstate; |
| 1353 | bool fwvalid; | 1355 | bool fwvalid; |
| 1356 | u32 boot_env; | ||
| 1354 | 1357 | ||
| 1355 | ioc_fwstate = readl(ioc->ioc_regs.ioc_fwstate); | 1358 | ioc_fwstate = readl(ioc->ioc_regs.ioc_fwstate); |
| 1356 | 1359 | ||
| 1360 | boot_env = BFI_BOOT_LOADER_OS; | ||
| 1361 | |||
| 1357 | if (force) | 1362 | if (force) |
| 1358 | ioc_fwstate = BFI_IOC_UNINIT; | 1363 | ioc_fwstate = BFI_IOC_UNINIT; |
| 1359 | 1364 | ||
| @@ -1361,10 +1366,10 @@ bfa_ioc_hwinit(struct bfa_ioc *ioc, bool force) | |||
| 1361 | * check if firmware is valid | 1366 | * check if firmware is valid |
| 1362 | */ | 1367 | */ |
| 1363 | fwvalid = (ioc_fwstate == BFI_IOC_UNINIT) ? | 1368 | fwvalid = (ioc_fwstate == BFI_IOC_UNINIT) ? |
| 1364 | false : bfa_ioc_fwver_valid(ioc); | 1369 | false : bfa_ioc_fwver_valid(ioc, boot_env); |
| 1365 | 1370 | ||
| 1366 | if (!fwvalid) { | 1371 | if (!fwvalid) { |
| 1367 | bfa_ioc_boot(ioc, BFI_BOOT_TYPE_NORMAL, ioc->pcidev.device_id); | 1372 | bfa_ioc_boot(ioc, BFI_BOOT_TYPE_NORMAL, boot_env); |
| 1368 | return; | 1373 | return; |
| 1369 | } | 1374 | } |
| 1370 | 1375 | ||
| @@ -1395,7 +1400,7 @@ bfa_ioc_hwinit(struct bfa_ioc *ioc, bool force) | |||
| 1395 | /** | 1400 | /** |
| 1396 | * Initialize the h/w for any other states. | 1401 | * Initialize the h/w for any other states. |
| 1397 | */ | 1402 | */ |
| 1398 | bfa_ioc_boot(ioc, BFI_BOOT_TYPE_NORMAL, ioc->pcidev.device_id); | 1403 | bfa_ioc_boot(ioc, BFI_BOOT_TYPE_NORMAL, boot_env); |
| 1399 | } | 1404 | } |
| 1400 | 1405 | ||
| 1401 | void | 1406 | void |
| @@ -1505,7 +1510,7 @@ bfa_ioc_hb_stop(struct bfa_ioc *ioc) | |||
| 1505 | */ | 1510 | */ |
| 1506 | static void | 1511 | static void |
| 1507 | bfa_ioc_download_fw(struct bfa_ioc *ioc, u32 boot_type, | 1512 | bfa_ioc_download_fw(struct bfa_ioc *ioc, u32 boot_type, |
| 1508 | u32 boot_param) | 1513 | u32 boot_env) |
| 1509 | { | 1514 | { |
| 1510 | u32 *fwimg; | 1515 | u32 *fwimg; |
| 1511 | u32 pgnum; | 1516 | u32 pgnum; |
| @@ -1556,10 +1561,10 @@ bfa_ioc_download_fw(struct bfa_ioc *ioc, u32 boot_type, | |||
| 1556 | /* | 1561 | /* |
| 1557 | * Set boot type and boot param at the end. | 1562 | * Set boot type and boot param at the end. |
| 1558 | */ | 1563 | */ |
| 1559 | writel((swab32(swab32(boot_type))), ((ioc->ioc_regs.smem_page_start) | 1564 | writel(boot_type, ((ioc->ioc_regs.smem_page_start) |
| 1560 | + (BFI_BOOT_TYPE_OFF))); | 1565 | |
