diff options
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r-- | drivers/pci/msi.c | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 066c2fb9763a..d9a92cf6a6d6 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -164,7 +164,7 @@ static inline __attribute_const__ u32 msi_mask(unsigned x) | |||
164 | * reliably as devices without an INTx disable bit will then generate a | 164 | * reliably as devices without an INTx disable bit will then generate a |
165 | * level IRQ which will never be cleared. | 165 | * level IRQ which will never be cleared. |
166 | */ | 166 | */ |
167 | u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) | 167 | u32 __msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) |
168 | { | 168 | { |
169 | u32 mask_bits = desc->masked; | 169 | u32 mask_bits = desc->masked; |
170 | 170 | ||
@@ -178,14 +178,9 @@ u32 default_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) | |||
178 | return mask_bits; | 178 | return mask_bits; |
179 | } | 179 | } |
180 | 180 | ||
181 | __weak u32 arch_msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) | ||
182 | { | ||
183 | return default_msi_mask_irq(desc, mask, flag); | ||
184 | } | ||
185 | |||
186 | static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) | 181 | static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) |
187 | { | 182 | { |
188 | desc->masked = arch_msi_mask_irq(desc, mask, flag); | 183 | desc->masked = __msi_mask_irq(desc, mask, flag); |
189 | } | 184 | } |
190 | 185 | ||
191 | /* | 186 | /* |
@@ -195,7 +190,7 @@ static void msi_mask_irq(struct msi_desc *desc, u32 mask, u32 flag) | |||
195 | * file. This saves a few milliseconds when initialising devices with lots | 190 | * file. This saves a few milliseconds when initialising devices with lots |
196 | * of MSI-X interrupts. | 191 | * of MSI-X interrupts. |
197 | */ | 192 | */ |
198 | u32 default_msix_mask_irq(struct msi_desc *desc, u32 flag) | 193 | u32 __msix_mask_irq(struct msi_desc *desc, u32 flag) |
199 | { | 194 | { |
200 | u32 mask_bits = desc->masked; | 195 | u32 mask_bits = desc->masked; |
201 | unsigned offset = desc->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE + | 196 | unsigned offset = desc->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE + |
@@ -212,14 +207,9 @@ u32 default_msix_mask_irq(struct msi_desc *desc, u32 flag) | |||
212 | return mask_bits; | 207 | return mask_bits; |
213 | } | 208 | } |
214 | 209 | ||
215 | __weak u32 arch_msix_mask_irq(struct msi_desc *desc, u32 flag) | ||
216 | { | ||
217 | return default_msix_mask_irq(desc, flag); | ||
218 | } | ||
219 | |||
220 | static void msix_mask_irq(struct msi_desc *desc, u32 flag) | 210 | static void msix_mask_irq(struct msi_desc *desc, u32 flag) |
221 | { | 211 | { |
222 | desc->masked = arch_msix_mask_irq(desc, flag); | 212 | desc->masked = __msix_mask_irq(desc, flag); |
223 | } | 213 | } |
224 | 214 | ||
225 | static void msi_set_mask_bit(struct irq_data *data, u32 flag) | 215 | static void msi_set_mask_bit(struct irq_data *data, u32 flag) |
@@ -874,7 +864,7 @@ void pci_msi_shutdown(struct pci_dev *dev) | |||
874 | /* Return the device with MSI unmasked as initial states */ | 864 | /* Return the device with MSI unmasked as initial states */ |
875 | mask = msi_mask(desc->msi_attrib.multi_cap); | 865 | mask = msi_mask(desc->msi_attrib.multi_cap); |
876 | /* Keep cached state to be restored */ | 866 | /* Keep cached state to be restored */ |
877 | arch_msi_mask_irq(desc, mask, ~mask); | 867 | __msi_mask_irq(desc, mask, ~mask); |
878 | 868 | ||
879 | /* Restore dev->irq to its default pin-assertion irq */ | 869 | /* Restore dev->irq to its default pin-assertion irq */ |
880 | dev->irq = desc->msi_attrib.default_irq; | 870 | dev->irq = desc->msi_attrib.default_irq; |
@@ -972,7 +962,7 @@ void pci_msix_shutdown(struct pci_dev *dev) | |||
972 | /* Return the device with MSI-X masked as initial states */ | 962 | /* Return the device with MSI-X masked as initial states */ |
973 | list_for_each_entry(entry, &dev->msi_list, list) { | 963 | list_for_each_entry(entry, &dev->msi_list, list) { |
974 | /* Keep cached states to be restored */ | 964 | /* Keep cached states to be restored */ |
975 | arch_msix_mask_irq(entry, 1); | 965 | __msix_mask_irq(entry, 1); |
976 | } | 966 | } |
977 | 967 | ||
978 | msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0); | 968 | msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_ENABLE, 0); |