}
/* Map this space */
- mmio = ioremap ( ( hvm->mmio + hvm->mmio_offset ), len );
+ mmio = pci_ioremap ( hvm->pci, ( hvm->mmio + hvm->mmio_offset ), len );
if ( ! mmio ) {
DBGC ( hvm, "HVM could not map MMIO space [%08lx,%08lx)\n",
( hvm->mmio + hvm->mmio_offset ),
xenstore_phys = ( xenstore_pfn * PAGE_SIZE );
/* Map XenStore */
- hvm->xen.store.intf = ioremap ( xenstore_phys, PAGE_SIZE );
+ hvm->xen.store.intf = pci_ioremap ( hvm->pci, xenstore_phys,
+ PAGE_SIZE );
if ( ! hvm->xen.store.intf ) {
DBGC ( hvm, "HVM could not map XenStore at [%08lx,%08lx)\n",
xenstore_phys, ( xenstore_phys + PAGE_SIZE ) );
rc = -ENOMEM;
goto err_alloc;
}
+ hvm->pci = pci;
hvm->mmio = pci_bar_start ( pci, HVM_MMIO_BAR );
hvm->mmio_len = pci_bar_size ( pci, HVM_MMIO_BAR );
DBGC2 ( hvm, "HVM has MMIO space [%08lx,%08lx)\n",
struct hvm_device {
/** Xen hypervisor */
struct xen_hypervisor xen;
+ /** PCI device */
+ struct pci_device *pci;
/** CPUID base */
uint32_t cpuid_base;
/** Length of hypercall table */
msix, pci_msix_name ( cfg ), base, bar, offset );
/* Map BAR portion */
- io = ioremap ( ( start + offset ), PCI_MSIX_LEN );
+ io = pci_ioremap ( pci, ( start + offset ), PCI_MSIX_LEN );
if ( ! io ) {
DBGC ( msix, "MSI-X %p %s could not map %#08lx\n",
msix, pci_msix_name ( cfg ), base );
region->flags = VIRTIO_PCI_REGION_PORT;
} else {
/* Region mapped into memory space */
- region->base = ioremap(base + offset, length);
+ region->base = pci_ioremap(pci, base + offset, length);
region->flags = VIRTIO_PCI_REGION_MEMORY;
}
}
eq_set_ci_base_addr =
( ( (uint64_t) MLX_GET ( &fw, eq_set_ci_base_addr_h ) << 32 ) |
( (uint64_t) MLX_GET ( &fw, eq_set_ci_base_addr_l ) ) );
- arbel->eq_ci_doorbells = ioremap ( eq_set_ci_base_addr, 0x200 );
+ arbel->eq_ci_doorbells = pci_ioremap ( arbel->pci, eq_set_ci_base_addr,
+ 0x200 );
/* Enable locally-attached memory. Ignore failure; there may
* be no attached memory.
static int arbel_probe ( struct pci_device *pci ) {
struct arbel *arbel;
struct ib_device *ibdev;
+ unsigned long config;
+ unsigned long uar;
int i;
int rc;
adjust_pci_device ( pci );
/* Map PCI BARs */
- arbel->config = ioremap ( pci_bar_start ( pci, ARBEL_PCI_CONFIG_BAR ),
- ARBEL_PCI_CONFIG_BAR_SIZE );
- arbel->uar = ioremap ( ( pci_bar_start ( pci, ARBEL_PCI_UAR_BAR ) +
- ARBEL_PCI_UAR_IDX * ARBEL_PCI_UAR_SIZE ),
- ARBEL_PCI_UAR_SIZE );
+ config = pci_bar_start ( pci, ARBEL_PCI_CONFIG_BAR );
+ arbel->config = pci_ioremap ( pci, config, ARBEL_PCI_CONFIG_BAR_SIZE );
+ uar = ( pci_bar_start ( pci, ARBEL_PCI_UAR_BAR ) +
+ ARBEL_PCI_UAR_IDX * ARBEL_PCI_UAR_SIZE );
+ arbel->uar = pci_ioremap ( pci, uar, ARBEL_PCI_UAR_SIZE );
/* Allocate Infiniband devices */
for ( i = 0 ; i < ARBEL_NUM_PORTS ; i++ ) {
return -EINVAL;
}
uar->phys = ( pci_bar_start ( pci, FLEXBOOT_NODNIC_HCA_BAR ) + (mlx_uint32)uar->offset );
- uar->virt = ( void * )( ioremap ( uar->phys, FLEXBOOT_NODNIC_PAGE_SIZE ) );
+ uar->virt = ( void * )( pci_ioremap ( pci, uar->phys, FLEXBOOT_NODNIC_PAGE_SIZE ) );
return status;
}
uar->index = be32_to_cpu(out->uarn) & 0xffffff;
uar->phys = (pci_bar_start(golan->pci, GOLAN_HCA_BAR) + (uar->index << GOLAN_PAGE_SHIFT));
- uar->virt = (void *)(ioremap(uar->phys, GOLAN_PAGE_SIZE));
+ uar->virt = (void *)(pci_ioremap(golan->pci, uar->phys, GOLAN_PAGE_SIZE));
DBGC( golan , "%s: UAR allocated with index 0x%x\n", __FUNCTION__, uar->index);
return 0;
adjust_pci_device ( pci );
/* Get HCA BAR */
- golan->iseg = ioremap ( pci_bar_start ( pci, GOLAN_HCA_BAR),
- GOLAN_PCI_CONFIG_BAR_SIZE );
+ golan->iseg = pci_ioremap ( pci, pci_bar_start ( pci, GOLAN_HCA_BAR),
+ GOLAN_PCI_CONFIG_BAR_SIZE );
}
static inline struct golan *golan_alloc()
struct ib_device *ibdev;
struct net_device *netdev;
struct hermon_port *port;
+ unsigned long config;
+ unsigned long uar;
unsigned int i;
int rc;
adjust_pci_device ( pci );
/* Map PCI BARs */
- hermon->config = ioremap ( pci_bar_start ( pci, HERMON_PCI_CONFIG_BAR ),
- HERMON_PCI_CONFIG_BAR_SIZE );
- hermon->uar = ioremap ( pci_bar_start ( pci, HERMON_PCI_UAR_BAR ),
- HERMON_UAR_NON_EQ_PAGE * HERMON_PAGE_SIZE );
+ config = pci_bar_start ( pci, HERMON_PCI_CONFIG_BAR );
+ hermon->config = pci_ioremap ( pci, config,
+ HERMON_PCI_CONFIG_BAR_SIZE );
+ uar = pci_bar_start ( pci, HERMON_PCI_UAR_BAR );
+ hermon->uar = pci_ioremap ( pci, uar,
+ HERMON_UAR_NON_EQ_PAGE * HERMON_PAGE_SIZE );
/* Reset device */
hermon_reset ( hermon );
*/
static int hermon_bofm_probe ( struct pci_device *pci ) {
struct hermon *hermon;
+ unsigned long config;
int rc;
/* Allocate Hermon device */
adjust_pci_device ( pci );
/* Map PCI BAR */
- hermon->config = ioremap ( pci_bar_start ( pci, HERMON_PCI_CONFIG_BAR ),
- HERMON_PCI_CONFIG_BAR_SIZE );
+ config = pci_bar_start ( pci, HERMON_PCI_CONFIG_BAR );
+ hermon->config = pci_ioremap ( pci, config,
+ HERMON_PCI_CONFIG_BAR_SIZE );
/* Initialise BOFM device */
bofm_init ( &hermon->bofm, pci, &hermon_bofm_operations );
adjust_pci_device ( pci );
/* Map PCI BARs */
- linda->regs = ioremap ( pci->membase, LINDA_BAR0_SIZE );
+ linda->regs = pci_ioremap ( pci, pci->membase, LINDA_BAR0_SIZE );
DBGC2 ( linda, "Linda %p has BAR at %08lx\n", linda, pci->membase );
/* Print some general data */
mlx_status status = MLX_SUCCESS;
adjust_pci_device ( utils->pci );
#ifdef DEVICE_CX3
- utils->config = ioremap ( pci_bar_start ( utils->pci, PCI_BASE_ADDRESS_0),
+ utils->config = pci_ioremap ( utils->pci, pci_bar_start ( utils->pci, PCI_BASE_ADDRESS_0),
0x100000 );
#endif
return status;
adjust_pci_device ( pci );
/* Map PCI BARs */
- qib7322->regs = ioremap ( pci->membase, QIB7322_BAR0_SIZE );
+ qib7322->regs = pci_ioremap ( pci, pci->membase, QIB7322_BAR0_SIZE );
DBGC2 ( qib7322, "QIB7322 %p has BAR at %08lx\n",
qib7322, pci->membase );
memset(lp, 0, sizeof(*lp));
lp->pdev = pdev;
lp->nic = nic;
- lp->mmio = ioremap(mmio_start, mmio_len);
+ lp->mmio = pci_ioremap(pdev, mmio_start, mmio_len);
lp->opened = 1;
adjust_pci_device(pdev);
*/
pci_write_config_byte(pdev, 0x41, 0);
- mem = ioremap(pdev->membase, 0x10000);
+ mem = pci_ioremap(pdev, pdev->membase, 0x10000);
if (!mem) {
DBG("ath5k: cannot remap PCI memory region\n");
ret = -EIO;
if ((val & 0x0000ff00) != 0)
pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
- mem = ioremap(pdev->membase, 0x10000);
+ mem = pci_ioremap(pdev, pdev->membase, 0x10000);
if (!mem) {
DBG("ath9K: PCI memory map error\n") ;
ret = -EIO;
bp->pci = pci;
/* Map device registers */
- bp->regs = ioremap(pci->membase, B44_REGS_SIZE);
+ bp->regs = pci_ioremap(pci, pci->membase, B44_REGS_SIZE);
if (!bp->regs) {
netdev_put(netdev);
return -ENOMEM;
bnx2reg_base = pci_bar_start(pdev, PCI_BASE_ADDRESS_0);
bnx2reg_len = MB_GET_CID_ADDR(17);
- bp->regview = ioremap(bnx2reg_base, bnx2reg_len);
+ bp->regview = pci_ioremap(pdev, bnx2reg_base, bnx2reg_len);
if (!bp->regview) {
printf("Cannot map register space, aborting.\n");
reg_base = pci_bar_start ( pdev, reg );
reg_size = pci_bar_size ( pdev, reg );
- return ioremap ( reg_base, reg_size );
+ return pci_ioremap ( pdev, reg_base, reg_size );
}
static int bnxt_get_pci_info ( struct bnxt *bp )
adjust_pci_device ( pci );
/* Map registers */
- ena->regs = ioremap ( pci->membase, ENA_BAR_SIZE );
+ ena->regs = pci_ioremap ( pci, pci->membase, ENA_BAR_SIZE );
if ( ! ena->regs ) {
rc = -ENODEV;
goto err_ioremap;
/* Get iobase/membase */
mmio_start = pci_bar_start ( pci, PCI_BASE_ADDRESS_2 );
mmio_len = pci_bar_size ( pci, PCI_BASE_ADDRESS_2 );
- efab->membase = ioremap ( mmio_start, mmio_len );
+ efab->membase = pci_ioremap ( pci, mmio_start, mmio_len );
EFAB_TRACE ( "BAR of %lx bytes at phys %lx mapped at %p\n",
mmio_len, mmio_start, efab->membase );
/* Map registers */
regs_bar_start = pci_bar_start ( pci, EXANIC_REGS_BAR );
- exanic->regs = ioremap ( regs_bar_start, EXANIC_REGS_LEN );
+ exanic->regs = pci_ioremap ( pci, regs_bar_start, EXANIC_REGS_LEN );
if ( ! exanic->regs ) {
rc = -ENODEV;
goto err_ioremap_regs;
/* Map transmit region */
tx_bar_start = pci_bar_start ( pci, EXANIC_TX_BAR );
tx_bar_len = pci_bar_size ( pci, EXANIC_TX_BAR );
- exanic->tx = ioremap ( tx_bar_start, tx_bar_len );
+ exanic->tx = pci_ioremap ( pci, tx_bar_start, tx_bar_len );
if ( ! exanic->tx ) {
rc = -ENODEV;
goto err_ioremap_tx;
}
rc = -ENOMEM;
- ioaddr = ioremap ( addr, register_size );
+ ioaddr = pci_ioremap ( priv->pci_dev, addr, register_size );
if ( ! ioaddr ) {
DBG ( "Cannot remap MMIO\n" );
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- icp->regs = ioremap ( pci->membase, ICP_BAR_SIZE );
+ icp->regs = pci_ioremap ( pci, pci->membase, ICP_BAR_SIZE );
if ( ! icp->regs ) {
rc = -ENODEV;
goto err_ioremap;
DBG ( "mmio_start: %#08lx\n", mmio_start );
DBG ( "mmio_len: %#08lx\n", mmio_len );
- adapter->hw.hw_addr = ioremap ( mmio_start, mmio_len );
+ adapter->hw.hw_addr = pci_ioremap ( pdev, mmio_start, mmio_len );
DBG ( "adapter->hw.hw_addr: %p\n", adapter->hw.hw_addr );
if ( ! adapter->hw.hw_addr ) {
adjust_pci_device ( pci );
/* Map registers */
- intel->regs = ioremap ( pci->membase, INTEL_BAR_SIZE );
+ intel->regs = pci_ioremap ( pci, pci->membase, INTEL_BAR_SIZE );
if ( ! intel->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- intel->regs = ioremap ( pci->membase, INTEL_BAR_SIZE );
+ intel->regs = pci_ioremap ( pci, pci->membase, INTEL_BAR_SIZE );
if ( ! intel->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- intelxl->regs = ioremap ( pci->membase, INTELXL_BAR_SIZE );
+ intelxl->regs = pci_ioremap ( pci, pci->membase, INTELXL_BAR_SIZE );
if ( ! intelxl->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- intelxl->regs = ioremap ( pci->membase, INTELXLVF_BAR_SIZE );
+ intelxl->regs = pci_ioremap ( pci, pci->membase, INTELXLVF_BAR_SIZE );
if ( ! intelxl->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- intel->regs = ioremap ( pci->membase, INTELVF_BAR_SIZE );
+ intel->regs = pci_ioremap ( pci, pci->membase, INTELVF_BAR_SIZE );
if ( ! intel->regs ) {
rc = -ENODEV;
goto err_ioremap;
jme = netdev->priv;
pci_set_drvdata(pci, netdev);
netdev->dev = &pci->dev;
- jme->regs = ioremap(pci->membase, JME_REGS_SIZE);
+ jme->regs = pci_ioremap(pci, pci->membase, JME_REGS_SIZE);
if (!(jme->regs)) {
DBG("Mapping PCI resource region error.\n");
rc = -ENOMEM;
adjust_pci_device ( pci );
/* Map registers */
- myson->regs = ioremap ( pci->membase, MYSON_BAR_SIZE );
+ myson->regs = pci_ioremap ( pci, pci->membase, MYSON_BAR_SIZE );
if ( ! myson->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- natsemi->regs = ioremap ( pci->membase, NATSEMI_BAR_SIZE );
+ natsemi->regs = pci_ioremap ( pci, pci->membase, NATSEMI_BAR_SIZE );
if ( ! natsemi->regs ) {
rc = -ENODEV;
goto err_ioremap;
return -EINVAL;
}
- phantom->bar0 = ioremap ( bar0_start, bar0_size );
+ phantom->bar0 = pci_ioremap ( pci, bar0_start, bar0_size );
if ( ! phantom->bar0 ) {
DBGC ( phantom, "Phantom %p could not map BAR0\n", phantom );
return -EIO;
hfa384x_t *hw = &hw_global;
printf ( "Prism2.5 has registers at %#lx\n", pci->membase );
- hw->membase = ioremap ( pci->membase, 0x100 );
+ hw->membase = pci_ioremap ( pci, pci->membase, 0x100 );
nic->ioaddr = pci->membase;
nic->irqno = 0;
adjust_pci_device ( pci );
/* Map registers */
- rtl->regs = ioremap ( pci->membase, RTL_BAR_SIZE );
+ rtl->regs = pci_ioremap ( pci, pci->membase, RTL_BAR_SIZE );
if ( ! rtl->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- rhn->regs = ioremap ( pci->membase, RHINE_BAR_SIZE );
+ rhn->regs = pci_ioremap ( pci, pci->membase, RHINE_BAR_SIZE );
rhn->ioaddr = pci->ioaddr;
DBGC ( rhn, "RHINE %p regs at %08lx, I/O at %04lx\n", rhn,
pci->membase, pci->ioaddr );
efx->mmio_start = pci_bar_start(pci, reg);
efx->mmio_len = pci_bar_size(pci, reg);
- efx->membase = ioremap(efx->mmio_start, efx->mmio_len);
+ efx->membase = pci_ioremap(pci, efx->mmio_start, efx->mmio_len);
DBGCP(efx, "BAR of %lx bytes at phys %lx mapped at %p\n",
efx->mmio_len, efx->mmio_start, efx->membase);
adjust_pci_device(pdev);
- ioaddr = ioremap(pdev->membase, SIS190_REGS_SIZE);
+ ioaddr = pci_ioremap(pdev, pdev->membase, SIS190_REGS_SIZE);
if (!ioaddr) {
DBG("sis190: cannot remap MMIO, aborting\n");
rc = -EIO;
adjust_pci_device ( pci );
/* Map registers */
- skel->regs = ioremap ( pci->membase, SKELETON_BAR_SIZE );
+ skel->regs = pci_ioremap ( pci, pci->membase, SKELETON_BAR_SIZE );
if ( ! skel->regs ) {
rc = -ENODEV;
goto err_ioremap;
hw->pdev = pdev;
- hw->regs = (unsigned long)ioremap(pci_bar_start(pdev, PCI_BASE_ADDRESS_0),
- SKGE_REG_SIZE);
+ hw->regs = (unsigned long)pci_ioremap(pdev,
+ pci_bar_start(pdev, PCI_BASE_ADDRESS_0),
+ SKGE_REG_SIZE);
if (!hw->regs) {
DBG(PFX "cannot map device registers\n");
goto err_out_free_hw;
hw->pdev = pdev;
- hw->regs = (unsigned long)ioremap(pci_bar_start(pdev, PCI_BASE_ADDRESS_0), 0x4000);
+ hw->regs = (unsigned long)pci_ioremap(pdev, pci_bar_start(pdev, PCI_BASE_ADDRESS_0), 0x4000);
if (!hw->regs) {
DBG(PFX "cannot map device registers\n");
goto err_out_free_hw;
reg_base = pci_bar_start(pdev, PCI_BASE_ADDRESS_0);
reg_size = pci_bar_size(pdev, PCI_BASE_ADDRESS_0);
- tp->regs = ioremap(reg_base, reg_size);
+ tp->regs = pci_ioremap(pdev, reg_base, reg_size);
if (!tp->regs) {
DBGC(&pdev->dev, "Failed to remap device registers\n");
errno = -ENOENT;
/**
* Allocate virtual NIC
*
- * @v dev Underlying device
+ * @v pci Underlying PCI device
* @v membase Register base address
* @ret vnic Virtual NIC, or NULL on failure
*/
-static struct txnic * txnic_alloc ( struct device *dev,
+static struct txnic * txnic_alloc ( struct pci_device *pci,
unsigned long membase ) {
struct net_device *netdev;
struct txnic *vnic;
netdev = alloc_etherdev ( sizeof ( *vnic ) );
if ( ! netdev )
goto err_alloc_netdev;
- netdev->dev = dev;
+ netdev->dev = &pci->dev;
vnic = netdev->priv;
vnic->netdev = netdev;
- vnic->name = dev->name;
+ vnic->name = pci->dev.name;
/* Allow caller to reuse netdev->priv. (The generic virtual
* NIC code never assumes that netdev->priv==vnic.)
goto err_alloc_rq;
/* Map registers */
- vnic->regs = ioremap ( membase, TXNIC_VF_BAR_SIZE );
+ vnic->regs = pci_ioremap ( pci, membase, TXNIC_VF_BAR_SIZE );
if ( ! vnic->regs )
goto err_ioremap;
membase = ( pf->vf_membase + ( lmac->idx * pf->vf_stride ) );
/* Allocate and initialise network device */
- vnic = txnic_alloc ( &bgx->pci->dev, membase );
+ vnic = txnic_alloc ( bgx->pci, membase );
if ( ! vnic ) {
rc = -ENOMEM;
goto err_alloc;
adjust_pci_device ( pci );
/* Map registers */
- pf->regs = ioremap ( membase, TXNIC_PF_BAR_SIZE );
+ pf->regs = pci_ioremap ( pci, membase, TXNIC_PF_BAR_SIZE );
if ( ! pf->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- bgx->regs = ioremap ( membase, TXNIC_BGX_BAR_SIZE );
+ bgx->regs = pci_ioremap ( pci, membase, TXNIC_BGX_BAR_SIZE );
if ( ! bgx->regs ) {
rc = -ENODEV;
goto err_ioremap;
adjust_pci_device ( pci );
/* Map registers */
- vlc->regs = ioremap ( pci->membase, VELOCITY_BAR_SIZE );
+ vlc->regs = pci_ioremap ( pci, pci->membase, VELOCITY_BAR_SIZE );
vlc->netdev = netdev;
/* Reset the NIC */
adjust_pci_device ( pci );
/* Map PCI BARs */
- vmxnet->pt = ioremap ( pci_bar_start ( pci, VMXNET3_PT_BAR ),
- VMXNET3_PT_LEN );
+ vmxnet->pt = pci_ioremap ( pci, pci_bar_start ( pci, VMXNET3_PT_BAR ),
+ VMXNET3_PT_LEN );
if ( ! vmxnet->pt ) {
rc = -ENODEV;
goto err_ioremap_pt;
}
- vmxnet->vd = ioremap ( pci_bar_start ( pci, VMXNET3_VD_BAR ),
- VMXNET3_VD_LEN );
+ vmxnet->vd = pci_ioremap ( pci, pci_bar_start ( pci, VMXNET3_VD_BAR ),
+ VMXNET3_VD_LEN );
if ( ! vmxnet->vd ) {
rc = -ENODEV;
goto err_ioremap_vd;
/* sets the bus master */
adjust_pci_device(pdev);
- bar0 = ioremap(mmio_start, mmio_len);
+ bar0 = pci_ioremap(pdev, mmio_start, mmio_len);
if (!bar0) {
vxge_debug(VXGE_ERR,
"%s : cannot remap io memory bar0\n", __func__);
/* Map registers */
bar_start = pci_bar_start ( pci, EHCI_BAR );
bar_size = pci_bar_size ( pci, EHCI_BAR );
- ehci->regs = ioremap ( bar_start, bar_size );
+ ehci->regs = pci_ioremap ( pci, bar_start, bar_size );
if ( ! ehci->regs ) {
rc = -ENODEV;
goto err_ioremap;
/* Map registers */
bar_start = pci_bar_start ( pci, XHCI_BAR );
bar_size = pci_bar_size ( pci, XHCI_BAR );
- xhci->regs = ioremap ( bar_start, bar_size );
+ xhci->regs = pci_ioremap ( pci, bar_start, bar_size );
if ( ! xhci->regs ) {
rc = -ENODEV;
goto err_ioremap;