diff options
| author | Moore, Eric <Eric.Moore@lsil.com> | 2006-01-13 18:25:29 -0500 |
|---|---|---|
| committer | James Bottomley <jejb@mulgrave.(none)> | 2006-01-14 11:55:10 -0500 |
| commit | 569b11dcfa9d764e775f9e964a680c32265ab7f2 (patch) | |
| tree | d35e71f3819a1b188176afd054f7f6d0df522224 /drivers/message/fusion/mptbase.c | |
| parent | e6bc863cf25f30ed8e2a4d41b76d5688f8efaee9 (diff) | |
[SCSI] fusion - fix pci express bug
The fix is to write 'MPI_HIM_DIM' to the Host Interrupt Mask
register, when enabling interrupts. Instead of the
tilde of MPI_HIM_RIM.
Apparently writing '1's to some of the reserved bits was causing
all the bits to go to `1`, which effectly disabled all interrupts.
Signed-off-by: Eric Moore <Eric.Moore@lsil.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/mptbase.c')
| -rw-r--r-- | drivers/message/fusion/mptbase.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 33213370027e..d890b2b8a93e 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
| @@ -1630,7 +1630,7 @@ mpt_resume(struct pci_dev *pdev) | |||
| 1630 | pci_enable_device(pdev); | 1630 | pci_enable_device(pdev); |
| 1631 | 1631 | ||
| 1632 | /* enable interrupts */ | 1632 | /* enable interrupts */ |
| 1633 | CHIPREG_WRITE32(&ioc->chip->IntMask, ~(MPI_HIM_RIM)); | 1633 | CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM); |
| 1634 | ioc->active = 1; | 1634 | ioc->active = 1; |
| 1635 | 1635 | ||
| 1636 | /* F/W not running */ | 1636 | /* F/W not running */ |
| @@ -1723,7 +1723,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) | |||
| 1723 | /* (re)Enable alt-IOC! (reply interrupt, FreeQ) */ | 1723 | /* (re)Enable alt-IOC! (reply interrupt, FreeQ) */ |
| 1724 | dprintk((KERN_INFO MYNAM ": alt-%s reply irq re-enabled\n", | 1724 | dprintk((KERN_INFO MYNAM ": alt-%s reply irq re-enabled\n", |
| 1725 | ioc->alt_ioc->name)); | 1725 | ioc->alt_ioc->name)); |
| 1726 | CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, ~(MPI_HIM_RIM)); | 1726 | CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, MPI_HIM_DIM); |
| 1727 | ioc->alt_ioc->active = 1; | 1727 | ioc->alt_ioc->active = 1; |
| 1728 | } | 1728 | } |
| 1729 | 1729 | ||
| @@ -1839,7 +1839,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) | |||
| 1839 | 1839 | ||
| 1840 | if (ret == 0) { | 1840 | if (ret == 0) { |
| 1841 | /* Enable! (reply interrupt) */ | 1841 | /* Enable! (reply interrupt) */ |
| 1842 | CHIPREG_WRITE32(&ioc->chip->IntMask, ~(MPI_HIM_RIM)); | 1842 | CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM); |
| 1843 | ioc->active = 1; | 1843 | ioc->active = 1; |
| 1844 | } | 1844 | } |
| 1845 | 1845 | ||
| @@ -1847,7 +1847,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) | |||
| 1847 | /* (re)Enable alt-IOC! (reply interrupt) */ | 1847 | /* (re)Enable alt-IOC! (reply interrupt) */ |
| 1848 | dinitprintk((KERN_INFO MYNAM ": alt-%s reply irq re-enabled\n", | 1848 | dinitprintk((KERN_INFO MYNAM ": alt-%s reply irq re-enabled\n", |
| 1849 | ioc->alt_ioc->name)); | 1849 | ioc->alt_ioc->name)); |
| 1850 | CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, ~(MPI_HIM_RIM)); | 1850 | CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, MPI_HIM_DIM); |
| 1851 | ioc->alt_ioc->active = 1; | 1851 | ioc->alt_ioc->active = 1; |
| 1852 | } | 1852 | } |
| 1853 | 1853 | ||
