Commit 1de520f4767cb836828d074db533f93d0ca85998

Authored by Rafał Miłecki
Committed by John W. Linville
1 parent 33e6ef4e82

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 +}