Some Hafta's
Prev | Chapter 4. PCI Resource Management | Next

## Some Hafta's

The allocation of PCI resources is done in the `probe()` function, and usually an extra `xxx_create()` function is written for this purpose.

In the case of PCI devices, you first have to call the `pci_enable_device()` function before allocating resources. Also, you need to set the proper PCI DMA mask to limit the accessed I/O range. In some cases, you might need to call `pci_set_master()` function, too.

Suppose the 28bit mask, and the code to be added would be like:

      err = pci_enable_device(pci);
      if (err < 0)
              return err;
      if (pci_set_dma_mask(pci, DMA_BIT_MASK(28)) < 0 ||
          pci_set_consistent_dma_mask(pci, DMA_BIT_MASK(28)) < 0) {
              printk(KERN_ERR "error to set 28bit mask DMA\n");
              pci_disable_device(pci);
              return -ENXIO;
      }

Prev | Up | Next
Chapter 4. PCI Resource Management | Home | Resource Allocation