diff options
Diffstat (limited to 'drivers/ieee1394/ohci1394.c')
-rw-r--r-- | drivers/ieee1394/ohci1394.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c index 628130a58af3..5729e412cc4a 100644 --- a/drivers/ieee1394/ohci1394.c +++ b/drivers/ieee1394/ohci1394.c | |||
@@ -3281,14 +3281,11 @@ static int __devinit ohci1394_pci_probe(struct pci_dev *dev, | |||
3281 | PRINT(KERN_WARNING, "PCI resource length of 0x%llx too small!", | 3281 | PRINT(KERN_WARNING, "PCI resource length of 0x%llx too small!", |
3282 | (unsigned long long)pci_resource_len(dev, 0)); | 3282 | (unsigned long long)pci_resource_len(dev, 0)); |
3283 | 3283 | ||
3284 | /* Seems PCMCIA handles this internally. Not sure why. Seems | 3284 | if (!request_mem_region(ohci_base, OHCI1394_REGISTER_SIZE, |
3285 | * pretty bogus to force a driver to special case this. */ | 3285 | OHCI1394_DRIVER_NAME)) |
3286 | #ifndef PCMCIA | ||
3287 | if (!request_mem_region (ohci_base, OHCI1394_REGISTER_SIZE, OHCI1394_DRIVER_NAME)) | ||
3288 | FAIL(-ENOMEM, "MMIO resource (0x%llx - 0x%llx) unavailable", | 3286 | FAIL(-ENOMEM, "MMIO resource (0x%llx - 0x%llx) unavailable", |
3289 | (unsigned long long)ohci_base, | 3287 | (unsigned long long)ohci_base, |
3290 | (unsigned long long)ohci_base + OHCI1394_REGISTER_SIZE); | 3288 | (unsigned long long)ohci_base + OHCI1394_REGISTER_SIZE); |
3291 | #endif | ||
3292 | ohci->init_state = OHCI_INIT_HAVE_MEM_REGION; | 3289 | ohci->init_state = OHCI_INIT_HAVE_MEM_REGION; |
3293 | 3290 | ||
3294 | ohci->registers = ioremap(ohci_base, OHCI1394_REGISTER_SIZE); | 3291 | ohci->registers = ioremap(ohci_base, OHCI1394_REGISTER_SIZE); |
@@ -3509,10 +3506,8 @@ static void ohci1394_pci_remove(struct pci_dev *pdev) | |||
3509 | iounmap(ohci->registers); | 3506 | iounmap(ohci->registers); |
3510 | 3507 | ||
3511 | case OHCI_INIT_HAVE_MEM_REGION: | 3508 | case OHCI_INIT_HAVE_MEM_REGION: |
3512 | #ifndef PCMCIA | ||
3513 | release_mem_region(pci_resource_start(ohci->dev, 0), | 3509 | release_mem_region(pci_resource_start(ohci->dev, 0), |
3514 | OHCI1394_REGISTER_SIZE); | 3510 | OHCI1394_REGISTER_SIZE); |
3515 | #endif | ||
3516 | 3511 | ||
3517 | #ifdef CONFIG_PPC_PMAC | 3512 | #ifdef CONFIG_PPC_PMAC |
3518 | /* On UniNorth, power down the cable and turn off the chip clock | 3513 | /* On UniNorth, power down the cable and turn off the chip clock |
@@ -3541,9 +3536,6 @@ static int ohci1394_pci_suspend(struct pci_dev *pdev, pm_message_t state) | |||
3541 | int err; | 3536 | int err; |
3542 | struct ti_ohci *ohci = pci_get_drvdata(pdev); | 3537 | struct ti_ohci *ohci = pci_get_drvdata(pdev); |
3543 | 3538 | ||
3544 | printk(KERN_INFO "%s does not fully support suspend and resume yet\n", | ||
3545 | OHCI1394_DRIVER_NAME); | ||
3546 | |||
3547 | if (!ohci) { | 3539 | if (!ohci) { |
3548 | printk(KERN_ERR "%s: tried to suspend nonexisting host\n", | 3540 | printk(KERN_ERR "%s: tried to suspend nonexisting host\n", |
3549 | OHCI1394_DRIVER_NAME); | 3541 | OHCI1394_DRIVER_NAME); |
@@ -3630,15 +3622,14 @@ static int ohci1394_pci_resume(struct pci_dev *pdev) | |||
3630 | mdelay(50); | 3622 | mdelay(50); |
3631 | ohci_initialize(ohci); | 3623 | ohci_initialize(ohci); |
3632 | 3624 | ||
3625 | hpsb_resume_host(ohci->host); | ||
3633 | return 0; | 3626 | return 0; |
3634 | } | 3627 | } |
3635 | #endif /* CONFIG_PM */ | 3628 | #endif /* CONFIG_PM */ |
3636 | 3629 | ||
3637 | #define PCI_CLASS_FIREWIRE_OHCI ((PCI_CLASS_SERIAL_FIREWIRE << 8) | 0x10) | ||
3638 | |||
3639 | static struct pci_device_id ohci1394_pci_tbl[] = { | 3630 | static struct pci_device_id ohci1394_pci_tbl[] = { |
3640 | { | 3631 | { |
3641 | .class = PCI_CLASS_FIREWIRE_OHCI, | 3632 | .class = PCI_CLASS_SERIAL_FIREWIRE_OHCI, |
3642 | .class_mask = PCI_ANY_ID, | 3633 | .class_mask = PCI_ANY_ID, |
3643 | .vendor = PCI_ANY_ID, | 3634 | .vendor = PCI_ANY_ID, |
3644 | .device = PCI_ANY_ID, | 3635 | .device = PCI_ANY_ID, |