diff options
Diffstat (limited to 'drivers/net/skge.c')
-rw-r--r-- | drivers/net/skge.c | 69 |
1 files changed, 31 insertions, 38 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index ce25b6f505c4..9135602e157d 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -2395,7 +2395,7 @@ static int skge_up(struct net_device *dev) | |||
2395 | BUG_ON(skge->dma & 7); | 2395 | BUG_ON(skge->dma & 7); |
2396 | 2396 | ||
2397 | if ((u64)skge->dma >> 32 != ((u64) skge->dma + skge->mem_size) >> 32) { | 2397 | if ((u64)skge->dma >> 32 != ((u64) skge->dma + skge->mem_size) >> 32) { |
2398 | printk(KERN_ERR PFX "pci_alloc_consistent region crosses 4G boundary\n"); | 2398 | dev_err(&hw->pdev->dev, "pci_alloc_consistent region crosses 4G boundary\n"); |
2399 | err = -EINVAL; | 2399 | err = -EINVAL; |
2400 | goto free_pci_mem; | 2400 | goto free_pci_mem; |
2401 | } | 2401 | } |
@@ -3004,6 +3004,7 @@ static void skge_mac_intr(struct skge_hw *hw, int port) | |||
3004 | /* Handle device specific framing and timeout interrupts */ | 3004 | /* Handle device specific framing and timeout interrupts */ |
3005 | static void skge_error_irq(struct skge_hw *hw) | 3005 | static void skge_error_irq(struct skge_hw *hw) |
3006 | { | 3006 | { |
3007 | struct pci_dev *pdev = hw->pdev; | ||
3007 | u32 hwstatus = skge_read32(hw, B0_HWE_ISRC); | 3008 | u32 hwstatus = skge_read32(hw, B0_HWE_ISRC); |
3008 | 3009 | ||
3009 | if (hw->chip_id == CHIP_ID_GENESIS) { | 3010 | if (hw->chip_id == CHIP_ID_GENESIS) { |
@@ -3019,12 +3020,12 @@ static void skge_error_irq(struct skge_hw *hw) | |||
3019 | } | 3020 | } |
3020 | 3021 | ||
3021 | if (hwstatus & IS_RAM_RD_PAR) { | 3022 | if (hwstatus & IS_RAM_RD_PAR) { |
3022 | printk(KERN_ERR PFX "Ram read data parity error\n"); | 3023 | dev_err(&pdev->dev, "Ram read data parity error\n"); |
3023 | skge_write16(hw, B3_RI_CTRL, RI_CLR_RD_PERR); | 3024 | skge_write16(hw, B3_RI_CTRL, RI_CLR_RD_PERR); |
3024 | } | 3025 | } |
3025 | 3026 | ||
3026 | if (hwstatus & IS_RAM_WR_PAR) { | 3027 | if (hwstatus & IS_RAM_WR_PAR) { |
3027 | printk(KERN_ERR PFX "Ram write data parity error\n"); | 3028 | dev_err(&pdev->dev, "Ram write data parity error\n"); |
3028 | skge_write16(hw, B3_RI_CTRL, RI_CLR_WR_PERR); | 3029 | skge_write16(hw, B3_RI_CTRL, RI_CLR_WR_PERR); |
3029 | } | 3030 | } |
3030 | 3031 | ||
@@ -3035,38 +3036,38 @@ static void skge_error_irq(struct skge_hw *hw) | |||
3035 | skge_mac_parity(hw, 1); | 3036 | skge_mac_parity(hw, 1); |
3036 | 3037 | ||
3037 | if (hwstatus & IS_R1_PAR_ERR) { | 3038 | if (hwstatus & IS_R1_PAR_ERR) { |
3038 | printk(KERN_ERR PFX "%s: receive queue parity error\n", | 3039 | dev_err(&pdev->dev, "%s: receive queue parity error\n", |
3039 | hw->dev[0]->name); | 3040 | hw->dev[0]->name); |
3040 | skge_write32(hw, B0_R1_CSR, CSR_IRQ_CL_P); | 3041 | skge_write32(hw, B0_R1_CSR, CSR_IRQ_CL_P); |
3041 | } | 3042 | } |
3042 | 3043 | ||
3043 | if (hwstatus & IS_R2_PAR_ERR) { | 3044 | if (hwstatus & IS_R2_PAR_ERR) { |
3044 | printk(KERN_ERR PFX "%s: receive queue parity error\n", | 3045 | dev_err(&pdev->dev, "%s: receive queue parity error\n", |
3045 | hw->dev[1]->name); | 3046 | hw->dev[1]->name); |
3046 | skge_write32(hw, B0_R2_CSR, CSR_IRQ_CL_P); | 3047 | skge_write32(hw, B0_R2_CSR, CSR_IRQ_CL_P); |
3047 | } | 3048 | } |
3048 | 3049 | ||
3049 | if (hwstatus & (IS_IRQ_MST_ERR|IS_IRQ_STAT)) { | 3050 | if (hwstatus & (IS_IRQ_MST_ERR|IS_IRQ_STAT)) { |
3050 | u16 pci_status, pci_cmd; | 3051 | u16 pci_status, pci_cmd; |
3051 | 3052 | ||
3052 | pci_read_config_word(hw->pdev, PCI_COMMAND, &pci_cmd); | 3053 | pci_read_config_word(pdev, PCI_COMMAND, &pci_cmd); |
3053 | pci_read_config_word(hw->pdev, PCI_STATUS, &pci_status); | 3054 | pci_read_config_word(pdev, PCI_STATUS, &pci_status); |
3054 | 3055 | ||
3055 | printk(KERN_ERR PFX "%s: PCI error cmd=%#x status=%#x\n", | 3056 | dev_err(&pdev->dev, "PCI error cmd=%#x status=%#x\n", |
3056 | pci_name(hw->pdev), pci_cmd, pci_status); | 3057 | pci_cmd, pci_status); |
3057 | 3058 | ||
3058 | /* Write the error bits back to clear them. */ | 3059 | /* Write the error bits back to clear them. */ |
3059 | pci_status &= PCI_STATUS_ERROR_BITS; | 3060 | pci_status &= PCI_STATUS_ERROR_BITS; |
3060 | skge_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON); | 3061 | skge_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON); |
3061 | pci_write_config_word(hw->pdev, PCI_COMMAND, | 3062 | pci_write_config_word(pdev, PCI_COMMAND, |
3062 | pci_cmd | PCI_COMMAND_SERR | PCI_COMMAND_PARITY); | 3063 | pci_cmd | PCI_COMMAND_SERR | PCI_COMMAND_PARITY); |
3063 | pci_write_config_word(hw->pdev, PCI_STATUS, pci_status); | 3064 | pci_write_config_word(pdev, PCI_STATUS, pci_status); |
3064 | skge_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF); | 3065 | skge_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF); |
3065 | 3066 | ||
3066 | /* if error still set then just ignore it */ | 3067 | /* if error still set then just ignore it */ |
3067 | hwstatus = skge_read32(hw, B0_HWE_ISRC); | 3068 | hwstatus = skge_read32(hw, B0_HWE_ISRC); |
3068 | if (hwstatus & IS_IRQ_STAT) { | 3069 | if (hwstatus & IS_IRQ_STAT) { |
3069 | printk(KERN_INFO PFX "unable to clear error (so ignoring them)\n"); | 3070 | dev_warn(&hw->pdev->dev, "unable to clear error (so ignoring them)\n"); |
3070 | hw->intr_mask &= ~IS_HW_ERR; | 3071 | hw->intr_mask &= ~IS_HW_ERR; |
3071 | } | 3072 | } |
3072 | } | 3073 | } |
@@ -3280,8 +3281,8 @@ static int skge_reset(struct skge_hw *hw) | |||
3280 | hw->phy_addr = PHY_ADDR_BCOM; | 3281 | hw->phy_addr = PHY_ADDR_BCOM; |
3281 | break; | 3282 | break; |
3282 | default: | 3283 | default: |
3283 | printk(KERN_ERR PFX "%s: unsupported phy type 0x%x\n", | 3284 | dev_err(&hw->pdev->dev, "unsupported phy type 0x%x\n", |
3284 | pci_name(hw->pdev), hw->phy_type); | 3285 | hw->phy_type); |
3285 | return -EOPNOTSUPP; | 3286 | return -EOPNOTSUPP; |
3286 | } | 3287 | } |
3287 | break; | 3288 | break; |
@@ -3296,8 +3297,8 @@ static int skge_reset(struct skge_hw *hw) | |||
3296 | break; | 3297 | break; |
3297 | 3298 | ||
3298 | default: | 3299 | default: |
3299 | printk(KERN_ERR PFX "%s: unsupported chip type 0x%x\n", | 3300 | dev_err(&hw->pdev->dev, "unsupported chip type 0x%x\n", |
3300 | pci_name(hw->pdev), hw->chip_id); | 3301 | hw->chip_id); |
3301 | return -EOPNOTSUPP; | 3302 | return -EOPNOTSUPP; |
3302 | } | 3303 | } |
3303 | 3304 | ||
@@ -3337,7 +3338,7 @@ static int skge_reset(struct skge_hw *hw) | |||
3337 | /* avoid boards with stuck Hardware error bits */ | 3338 | /* avoid boards with stuck Hardware error bits */ |
3338 | if ((skge_read32(hw, B0_ISRC) & IS_HW_ERR) && | 3339 | if ((skge_read32(hw, B0_ISRC) & IS_HW_ERR) && |
3339 | (skge_read32(hw, B0_HWE_ISRC) & IS_IRQ_SENSOR)) { | 3340 | (skge_read32(hw, B0_HWE_ISRC) & IS_IRQ_SENSOR)) { |
3340 | printk(KERN_WARNING PFX "stuck hardware sensor bit\n"); | 3341 | dev_warn(&hw->pdev->dev, "stuck hardware sensor bit\n"); |
3341 | hw->intr_mask &= ~IS_HW_ERR; | 3342 | hw->intr_mask &= ~IS_HW_ERR; |
3342 | } | 3343 | } |
3343 | 3344 | ||
@@ -3411,7 +3412,7 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port, | |||
3411 | struct net_device *dev = alloc_etherdev(sizeof(*skge)); | 3412 | struct net_device *dev = alloc_etherdev(sizeof(*skge)); |
3412 | 3413 | ||
3413 | if (!dev) { | 3414 | if (!dev) { |
3414 | printk(KERN_ERR "skge etherdev alloc failed"); | 3415 | dev_err(&hw->pdev->dev, "etherdev alloc failed\n"); |
3415 | return NULL; | 3416 | return NULL; |
3416 | } | 3417 | } |
3417 | 3418 | ||
@@ -3499,15 +3500,13 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3499 | 3500 | ||
3500 | err = pci_enable_device(pdev); | 3501 | err = pci_enable_device(pdev); |
3501 | if (err) { | 3502 | if (err) { |
3502 | printk(KERN_ERR PFX "%s cannot enable PCI device\n", | 3503 | dev_err(&pdev->dev, "cannot enable PCI device\n"); |
3503 | pci_name(pdev)); | ||
3504 | goto err_out; | 3504 | goto err_out; |
3505 | } | 3505 | } |
3506 | 3506 | ||
3507 | err = pci_request_regions(pdev, DRV_NAME); | 3507 | err = pci_request_regions(pdev, DRV_NAME); |
3508 | if (err) { | 3508 | if (err) { |
3509 | printk(KERN_ERR PFX "%s cannot obtain PCI resources\n", | 3509 | dev_err(&pdev->dev, "cannot obtain PCI resources\n"); |
3510 | pci_name(pdev)); | ||
3511 | goto err_out_disable_pdev; | 3510 | goto err_out_disable_pdev; |
3512 | } | 3511 | } |
3513 | 3512 | ||
@@ -3522,8 +3521,7 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3522 | } | 3521 | } |
3523 | 3522 | ||
3524 | if (err) { | 3523 | if (err) { |
3525 | printk(KERN_ERR PFX "%s no usable DMA configuration\n", | 3524 | dev_err(&pdev->dev, "no usable DMA configuration\n"); |
3526 | pci_name(pdev)); | ||
3527 | goto err_out_free_regions; | 3525 | goto err_out_free_regions; |
3528 | } | 3526 | } |
3529 | 3527 | ||
@@ -3541,8 +3539,7 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3541 | err = -ENOMEM; | 3539 | err = -ENOMEM; |
3542 | hw = kzalloc(sizeof(*hw), GFP_KERNEL); | 3540 | hw = kzalloc(sizeof(*hw), GFP_KERNEL); |
3543 | if (!hw) { | 3541 | if (!hw) { |
3544 | printk(KERN_ERR PFX "%s: cannot allocate hardware struct\n", | 3542 | dev_err(&pdev->dev, "cannot allocate hardware struct\n"); |
3545 | pci_name(pdev)); | ||
3546 | goto err_out_free_regions; | 3543 | goto err_out_free_regions; |
3547 | } | 3544 | } |
3548 | 3545 | ||
@@ -3553,8 +3550,7 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3553 | 3550 | ||
3554 | hw->regs = ioremap_nocache(pci_resource_start(pdev, 0), 0x4000); | 3551 | hw->regs = ioremap_nocache(pci_resource_start(pdev, 0), 0x4000); |
3555 | if (!hw->regs) { | 3552 | if (!hw->regs) { |
3556 | printk(KERN_ERR PFX "%s: cannot map device registers\n", | 3553 | dev_err(&pdev->dev, "cannot map device registers\n"); |
3557 | pci_name(pdev)); | ||
3558 | goto err_out_free_hw; | 3554 | goto err_out_free_hw; |
3559 | } | 3555 | } |
3560 | 3556 | ||
@@ -3571,21 +3567,18 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3571 | goto err_out_led_off; | 3567 | goto err_out_led_off; |
3572 | 3568 | ||
3573 | /* Some motherboards are broken and has zero in ROM. */ | 3569 | /* Some motherboards are broken and has zero in ROM. */ |
3574 | if (!is_valid_ether_addr(dev->dev_addr)) { | 3570 | if (!is_valid_ether_addr(dev->dev_addr)) |
3575 | printk(KERN_WARNING PFX "%s: bad (zero?) ethernet address in rom\n", | 3571 | dev_warn(&pdev->dev, "bad (zero?) ethernet address in rom\n"); |
3576 | pci_name(pdev)); | ||
3577 | } | ||
3578 | 3572 | ||
3579 | err = register_netdev(dev); | 3573 | err = register_netdev(dev); |
3580 | if (err) { | 3574 | if (err) { |
3581 | printk(KERN_ERR PFX "%s: cannot register net device\n", | 3575 | dev_err(&pdev->dev, "cannot register net device\n"); |
3582 | pci_name(pdev)); | ||
3583 | goto err_out_free_netdev; | 3576 | goto err_out_free_netdev; |
3584 | } | 3577 | } |
3585 | 3578 | ||
3586 | err = request_irq(pdev->irq, skge_intr, IRQF_SHARED, dev->name, hw); | 3579 | err = request_irq(pdev->irq, skge_intr, IRQF_SHARED, dev->name, hw); |
3587 | if (err) { | 3580 | if (err) { |
3588 | printk(KERN_ERR PFX "%s: cannot assign irq %d\n", | 3581 | dev_err(&pdev->dev, "%s: cannot assign irq %d\n", |
3589 | dev->name, pdev->irq); | 3582 | dev->name, pdev->irq); |
3590 | goto err_out_unregister; | 3583 | goto err_out_unregister; |
3591 | } | 3584 | } |
@@ -3596,7 +3589,7 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3596 | skge_show_addr(dev1); | 3589 | skge_show_addr(dev1); |
3597 | else { | 3590 | else { |
3598 | /* Failure to register second port need not be fatal */ | 3591 | /* Failure to register second port need not be fatal */ |
3599 | printk(KERN_WARNING PFX "register of second port failed\n"); | 3592 | dev_warn(&pdev->dev, "register of second port failed\n"); |
3600 | hw->dev[1] = NULL; | 3593 | hw->dev[1] = NULL; |
3601 | free_netdev(dev1); | 3594 | free_netdev(dev1); |
3602 | } | 3595 | } |