aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wan/farsync.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wan/farsync.c')
-rw-r--r--drivers/net/wan/farsync.c111
1 files changed, 53 insertions, 58 deletions
diff --git a/drivers/net/wan/farsync.c b/drivers/net/wan/farsync.c
index 43b77271532b..ad7719fe6d0a 100644
--- a/drivers/net/wan/farsync.c
+++ b/drivers/net/wan/farsync.c
@@ -15,6 +15,8 @@
15 * Maintainer: Kevin Curtis <kevin.curtis@farsite.co.uk> 15 * Maintainer: Kevin Curtis <kevin.curtis@farsite.co.uk>
16 */ 16 */
17 17
18#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
19
18#include <linux/module.h> 20#include <linux/module.h>
19#include <linux/kernel.h> 21#include <linux/kernel.h>
20#include <linux/version.h> 22#include <linux/version.h>
@@ -511,21 +513,19 @@ static int fst_debug_mask = { FST_DEBUG };
511 * support variable numbers of macro parameters. The inverted if prevents us 513 * support variable numbers of macro parameters. The inverted if prevents us
512 * eating someone else's else clause. 514 * eating someone else's else clause.
513 */ 515 */
514#define dbg(F,fmt,A...) if ( ! ( fst_debug_mask & (F))) \ 516#define dbg(F, fmt, args...) \
515 ; \ 517do { \
516 else \ 518 if (fst_debug_mask & (F)) \
517 printk ( KERN_DEBUG FST_NAME ": " fmt, ## A ) 519 printk(KERN_DEBUG pr_fmt(fmt), ##args); \
518 520} while (0)
519#else 521#else
520#define dbg(X...) /* NOP */ 522#define dbg(F, fmt, args...) \
523do { \
524 if (0) \
525 printk(KERN_DEBUG pr_fmt(fmt), ##args); \
526} while (0)
521#endif 527#endif
522 528
523/* Printing short cuts
524 */
525#define printk_err(fmt,A...) printk ( KERN_ERR FST_NAME ": " fmt, ## A )
526#define printk_warn(fmt,A...) printk ( KERN_WARNING FST_NAME ": " fmt, ## A )
527#define printk_info(fmt,A...) printk ( KERN_INFO FST_NAME ": " fmt, ## A )
528
529/* 529/*
530 * PCI ID lookup table 530 * PCI ID lookup table
531 */ 531 */
@@ -961,7 +961,7 @@ fst_issue_cmd(struct fst_port_info *port, unsigned short cmd)
961 spin_lock_irqsave(&card->card_lock, flags); 961 spin_lock_irqsave(&card->card_lock, flags);
962 962
963 if (++safety > 2000) { 963 if (++safety > 2000) {
964 printk_err("Mailbox safety timeout\n"); 964 pr_err("Mailbox safety timeout\n");
965 break; 965 break;
966 } 966 }
967 967
@@ -1241,8 +1241,8 @@ fst_intr_rx(struct fst_card_info *card, struct fst_port_info *port)
1241 * This seems to happen on the TE1 interface sometimes 1241 * This seems to happen on the TE1 interface sometimes
1242 * so throw the frame away and log the event. 1242 * so throw the frame away and log the event.
1243 */ 1243 */
1244 printk_err("Frame received with 0 length. Card %d Port %d\n", 1244 pr_err("Frame received with 0 length. Card %d Port %d\n",
1245 card->card_no, port->index); 1245 card->card_no, port->index);
1246 /* Return descriptor to card */ 1246 /* Return descriptor to card */
1247 FST_WRB(card, rxDescrRing[pi][rxp].bits, DMA_OWN); 1247 FST_WRB(card, rxDescrRing[pi][rxp].bits, DMA_OWN);
1248 1248
@@ -1486,9 +1486,8 @@ fst_intr(int dummy, void *dev_id)
1486 */ 1486 */
1487 dbg(DBG_INTR, "intr: %d %p\n", card->irq, card); 1487 dbg(DBG_INTR, "intr: %d %p\n", card->irq, card);
1488 if (card->state != FST_RUNNING) { 1488 if (card->state != FST_RUNNING) {
1489 printk_err 1489 pr_err("Interrupt received for card %d in a non running state (%d)\n",
1490 ("Interrupt received for card %d in a non running state (%d)\n", 1490 card->card_no, card->state);
1491 card->card_no, card->state);
1492 1491
1493 /* 1492 /*
1494 * It is possible to really be running, i.e. we have re-loaded 1493 * It is possible to really be running, i.e. we have re-loaded
@@ -1614,8 +1613,7 @@ fst_intr(int dummy, void *dev_id)
1614 break; 1613 break;
1615 1614
1616 default: 1615 default:
1617 printk_err("intr: unknown card event %d. ignored\n", 1616 pr_err("intr: unknown card event %d. ignored\n", event);
1618 event);
1619 break; 1617 break;
1620 } 1618 }
1621 1619
@@ -1637,13 +1635,13 @@ check_started_ok(struct fst_card_info *card)
1637 1635
1638 /* Check structure version and end marker */ 1636 /* Check structure version and end marker */
1639 if (FST_RDW(card, smcVersion) != SMC_VERSION) { 1637 if (FST_RDW(card, smcVersion) != SMC_VERSION) {
1640 printk_err("Bad shared memory version %d expected %d\n", 1638 pr_err("Bad shared memory version %d expected %d\n",
1641 FST_RDW(card, smcVersion), SMC_VERSION); 1639 FST_RDW(card, smcVersion), SMC_VERSION);
1642 card->state = FST_BADVERSION; 1640 card->state = FST_BADVERSION;
1643 return; 1641 return;
1644 } 1642 }
1645 if (FST_RDL(card, endOfSmcSignature) != END_SIG) { 1643 if (FST_RDL(card, endOfSmcSignature) != END_SIG) {
1646 printk_err("Missing shared memory signature\n"); 1644 pr_err("Missing shared memory signature\n");
1647 card->state = FST_BADVERSION; 1645 card->state = FST_BADVERSION;
1648 return; 1646 return;
1649 } 1647 }
@@ -1651,11 +1649,11 @@ check_started_ok(struct fst_card_info *card)
1651 if ((i = FST_RDB(card, taskStatus)) == 0x01) { 1649 if ((i = FST_RDB(card, taskStatus)) == 0x01) {
1652 card->state = FST_RUNNING; 1650 card->state = FST_RUNNING;
1653 } else if (i == 0xFF) { 1651 } else if (i == 0xFF) {
1654 printk_err("Firmware initialisation failed. Card halted\n"); 1652 pr_err("Firmware initialisation failed. Card halted\n");
1655 card->state = FST_HALTED; 1653 card->state = FST_HALTED;
1656 return; 1654 return;
1657 } else if (i != 0x00) { 1655 } else if (i != 0x00) {
1658 printk_err("Unknown firmware status 0x%x\n", i); 1656 pr_err("Unknown firmware status 0x%x\n", i);
1659 card->state = FST_HALTED; 1657 card->state = FST_HALTED;
1660 return; 1658 return;
1661 } 1659 }
@@ -1665,9 +1663,10 @@ check_started_ok(struct fst_card_info *card)
1665 * existing firmware etc so we just report it for the moment. 1663 * existing firmware etc so we just report it for the moment.
1666 */ 1664 */
1667 if (FST_RDL(card, numberOfPorts) != card->nports) { 1665 if (FST_RDL(card, numberOfPorts) != card->nports) {
1668 printk_warn("Port count mismatch on card %d." 1666 pr_warning("Port count mismatch on card %d. "
1669 " Firmware thinks %d we say %d\n", card->card_no, 1667 "Firmware thinks %d we say %d\n",
1670 FST_RDL(card, numberOfPorts), card->nports); 1668 card->card_no,
1669 FST_RDL(card, numberOfPorts), card->nports);
1671 } 1670 }
1672} 1671}
1673 1672
@@ -2090,9 +2089,8 @@ fst_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
2090 */ 2089 */
2091 2090
2092 if (card->state != FST_RUNNING) { 2091 if (card->state != FST_RUNNING) {
2093 printk_err 2092 pr_err("Attempt to configure card %d in non-running state (%d)\n",
2094 ("Attempt to configure card %d in non-running state (%d)\n", 2093 card->card_no, card->state);
2095 card->card_no, card->state);
2096 return -EIO; 2094 return -EIO;
2097 } 2095 }
2098 if (copy_from_user(&info, ifr->ifr_data, sizeof (info))) { 2096 if (copy_from_user(&info, ifr->ifr_data, sizeof (info))) {
@@ -2384,8 +2382,8 @@ fst_init_card(struct fst_card_info *card)
2384 err = register_hdlc_device(card->ports[i].dev); 2382 err = register_hdlc_device(card->ports[i].dev);
2385 if (err < 0) { 2383 if (err < 0) {
2386 int j; 2384 int j;
2387 printk_err ("Cannot register HDLC device for port %d" 2385 pr_err("Cannot register HDLC device for port %d (errno %d)\n",
2388 " (errno %d)\n", i, -err ); 2386 i, -err);
2389 for (j = i; j < card->nports; j++) { 2387 for (j = i; j < card->nports; j++) {
2390 free_netdev(card->ports[j].dev); 2388 free_netdev(card->ports[j].dev);
2391 card->ports[j].dev = NULL; 2389 card->ports[j].dev = NULL;
@@ -2395,10 +2393,10 @@ fst_init_card(struct fst_card_info *card)
2395 } 2393 }
2396 } 2394 }
2397 2395
2398 printk_info("%s-%s: %s IRQ%d, %d ports\n", 2396 pr_info("%s-%s: %s IRQ%d, %d ports\n",
2399 port_to_dev(&card->ports[0])->name, 2397 port_to_dev(&card->ports[0])->name,
2400 port_to_dev(&card->ports[card->nports - 1])->name, 2398 port_to_dev(&card->ports[card->nports - 1])->name,
2401 type_strings[card->type], card->irq, card->nports); 2399 type_strings[card->type], card->irq, card->nports);
2402} 2400}
2403 2401
2404static const struct net_device_ops fst_ops = { 2402static const struct net_device_ops fst_ops = {
@@ -2417,19 +2415,17 @@ static const struct net_device_ops fst_ops = {
2417static int __devinit 2415static int __devinit
2418fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent) 2416fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2419{ 2417{
2420 static int firsttime_done = 0;
2421 static int no_of_cards_added = 0; 2418 static int no_of_cards_added = 0;
2422 struct fst_card_info *card; 2419 struct fst_card_info *card;
2423 int err = 0; 2420 int err = 0;
2424 int i; 2421 int i;
2425 2422
2426 if (!firsttime_done) { 2423 printk_once(KERN_INFO
2427 printk_info("FarSync WAN driver " FST_USER_VERSION 2424 pr_fmt("FarSync WAN driver " FST_USER_VERSION
2428 " (c) 2001-2004 FarSite Communications Ltd.\n"); 2425 " (c) 2001-2004 FarSite Communications Ltd.\n"));
2429 firsttime_done = 1; 2426#if FST_DEBUG
2430 dbg(DBG_ASS, "The value of debug mask is %x\n", fst_debug_mask); 2427 dbg(DBG_ASS, "The value of debug mask is %x\n", fst_debug_mask);
2431 } 2428#endif
2432
2433 /* 2429 /*
2434 * We are going to be clever and allow certain cards not to be 2430 * We are going to be clever and allow certain cards not to be
2435 * configured. An exclude list can be provided in /etc/modules.conf 2431 * configured. An exclude list can be provided in /etc/modules.conf
@@ -2441,8 +2437,8 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2441 */ 2437 */
2442 for (i = 0; i < fst_excluded_cards; i++) { 2438 for (i = 0; i < fst_excluded_cards; i++) {
2443 if ((pdev->devfn) >> 3 == fst_excluded_list[i]) { 2439 if ((pdev->devfn) >> 3 == fst_excluded_list[i]) {
2444 printk_info("FarSync PCI device %d not assigned\n", 2440 pr_info("FarSync PCI device %d not assigned\n",
2445 (pdev->devfn) >> 3); 2441 (pdev->devfn) >> 3);
2446 return -EBUSY; 2442 return -EBUSY;
2447 } 2443 }
2448 } 2444 }
@@ -2451,20 +2447,19 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2451 /* Allocate driver private data */ 2447 /* Allocate driver private data */
2452 card = kzalloc(sizeof (struct fst_card_info), GFP_KERNEL); 2448 card = kzalloc(sizeof (struct fst_card_info), GFP_KERNEL);
2453 if (card == NULL) { 2449 if (card == NULL) {
2454 printk_err("FarSync card found but insufficient memory for" 2450 pr_err("FarSync card found but insufficient memory for driver storage\n");
2455 " driver storage\n");
2456 return -ENOMEM; 2451 return -ENOMEM;
2457 } 2452 }
2458 2453
2459 /* Try to enable the device */ 2454 /* Try to enable the device */
2460 if ((err = pci_enable_device(pdev)) != 0) { 2455 if ((err = pci_enable_device(pdev)) != 0) {
2461 printk_err("Failed to enable card. Err %d\n", -err); 2456 pr_err("Failed to enable card. Err %d\n", -err);
2462 kfree(card); 2457 kfree(card);
2463 return err; 2458 return err;
2464 } 2459 }
2465 2460
2466 if ((err = pci_request_regions(pdev, "FarSync")) !=0) { 2461 if ((err = pci_request_regions(pdev, "FarSync")) !=0) {
2467 printk_err("Failed to allocate regions. Err %d\n", -err); 2462 pr_err("Failed to allocate regions. Err %d\n", -err);
2468 pci_disable_device(pdev); 2463 pci_disable_device(pdev);
2469 kfree(card); 2464 kfree(card);
2470 return err; 2465 return err;
@@ -2475,14 +2470,14 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2475 card->phys_mem = pci_resource_start(pdev, 2); 2470 card->phys_mem = pci_resource_start(pdev, 2);
2476 card->phys_ctlmem = pci_resource_start(pdev, 3); 2471 card->phys_ctlmem = pci_resource_start(pdev, 3);
2477 if ((card->mem = ioremap(card->phys_mem, FST_MEMSIZE)) == NULL) { 2472 if ((card->mem = ioremap(card->phys_mem, FST_MEMSIZE)) == NULL) {
2478 printk_err("Physical memory remap failed\n"); 2473 pr_err("Physical memory remap failed\n");
2479 pci_release_regions(pdev); 2474 pci_release_regions(pdev);
2480 pci_disable_device(pdev); 2475 pci_disable_device(pdev);
2481 kfree(card); 2476 kfree(card);
2482 return -ENODEV; 2477 return -ENODEV;
2483 } 2478 }
2484 if ((card->ctlmem = ioremap(card->phys_ctlmem, 0x10)) == NULL) { 2479 if ((card->ctlmem = ioremap(card->phys_ctlmem, 0x10)) == NULL) {
2485 printk_err("Control memory remap failed\n"); 2480 pr_err("Control memory remap failed\n");
2486 pci_release_regions(pdev); 2481 pci_release_regions(pdev);
2487 pci_disable_device(pdev); 2482 pci_disable_device(pdev);
2488 kfree(card); 2483 kfree(card);
@@ -2492,7 +2487,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2492 2487
2493 /* Register the interrupt handler */ 2488 /* Register the interrupt handler */
2494 if (request_irq(pdev->irq, fst_intr, IRQF_SHARED, FST_DEV_NAME, card)) { 2489 if (request_irq(pdev->irq, fst_intr, IRQF_SHARED, FST_DEV_NAME, card)) {
2495 printk_err("Unable to register interrupt %d\n", card->irq); 2490 pr_err("Unable to register interrupt %d\n", card->irq);
2496 pci_release_regions(pdev); 2491 pci_release_regions(pdev);
2497 pci_disable_device(pdev); 2492 pci_disable_device(pdev);
2498 iounmap(card->ctlmem); 2493 iounmap(card->ctlmem);
@@ -2523,7 +2518,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2523 if (!dev) { 2518 if (!dev) {
2524 while (i--) 2519 while (i--)
2525 free_netdev(card->ports[i].dev); 2520 free_netdev(card->ports[i].dev);
2526 printk_err ("FarSync: out of memory\n"); 2521 pr_err("FarSync: out of memory\n");
2527 free_irq(card->irq, card); 2522 free_irq(card->irq, card);
2528 pci_release_regions(pdev); 2523 pci_release_regions(pdev);
2529 pci_disable_device(pdev); 2524 pci_disable_device(pdev);
@@ -2587,7 +2582,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2587 pci_alloc_consistent(card->device, FST_MAX_MTU, 2582 pci_alloc_consistent(card->device, FST_MAX_MTU,
2588 &card->rx_dma_handle_card); 2583 &card->rx_dma_handle_card);
2589 if (card->rx_dma_handle_host == NULL) { 2584 if (card->rx_dma_handle_host == NULL) {
2590 printk_err("Could not allocate rx dma buffer\n"); 2585 pr_err("Could not allocate rx dma buffer\n");
2591 fst_disable_intr(card); 2586 fst_disable_intr(card);
2592 pci_release_regions(pdev); 2587 pci_release_regions(pdev);
2593 pci_disable_device(pdev); 2588 pci_disable_device(pdev);
@@ -2600,7 +2595,7 @@ fst_add_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2600 pci_alloc_consistent(card->device, FST_MAX_MTU, 2595 pci_alloc_consistent(card->device, FST_MAX_MTU,
2601 &card->tx_dma_handle_card); 2596 &card->tx_dma_handle_card);
2602 if (card->tx_dma_handle_host == NULL) { 2597 if (card->tx_dma_handle_host == NULL) {
2603 printk_err("Could not allocate tx dma buffer\n"); 2598 pr_err("Could not allocate tx dma buffer\n");
2604 fst_disable_intr(card); 2599 fst_disable_intr(card);
2605 pci_release_regions(pdev); 2600 pci_release_regions(pdev);
2606 pci_disable_device(pdev); 2601 pci_disable_device(pdev);
@@ -2672,7 +2667,7 @@ fst_init(void)
2672static void __exit 2667static void __exit
2673fst_cleanup_module(void) 2668fst_cleanup_module(void)
2674{ 2669{
2675 printk_info("FarSync WAN driver unloading\n"); 2670 pr_info("FarSync WAN driver unloading\n");
2676 pci_unregister_driver(&fst_driver); 2671 pci_unregister_driver(&fst_driver);
2677} 2672}
2678 2673