Commit 1de520f4767cb836828d074db533f93d0ca85998
Committed by
John W. Linville
1 parent
33e6ef4e82
Exists in
master
and in
4 other branches
bcma: pci: implement interrupts control
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Showing 1 changed file with 23 additions and 0 deletions Side-by-side Diff
drivers/bcma/driver_pci.c
... | ... | @@ -161,4 +161,27 @@ |
161 | 161 | { |
162 | 162 | bcma_pcicore_serdes_workaround(pc); |
163 | 163 | } |
164 | + | |
165 | +int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc, struct bcma_device *core, | |
166 | + bool enable) | |
167 | +{ | |
168 | + struct pci_dev *pdev = pc->core->bus->host_pci; | |
169 | + u32 coremask, tmp; | |
170 | + int err; | |
171 | + | |
172 | + err = pci_read_config_dword(pdev, BCMA_PCI_IRQMASK, &tmp); | |
173 | + if (err) | |
174 | + goto out; | |
175 | + | |
176 | + coremask = BIT(core->core_index) << 8; | |
177 | + if (enable) | |
178 | + tmp |= coremask; | |
179 | + else | |
180 | + tmp &= ~coremask; | |
181 | + | |
182 | + err = pci_write_config_dword(pdev, BCMA_PCI_IRQMASK, tmp); | |
183 | + | |
184 | +out: | |
185 | + return err; | |
186 | +} |