Lines Matching +full:device +full:- +full:id +full:- +full:base
4 * Copyright (c) 2000-2001 Adaptec Inc.
18 * 3. Neither the names of the above-listed copyright holders nor the names
39 * $Id: //depot/aic7xxx/linux/drivers/scsi/aic7xxx/aic79xx_osm_pci.c#25 $
48 #define ID(x) \ macro
54 ID(ID_AHA_29320A),
55 ID(ID_AHA_29320ALP),
56 ID(ID_AHA_29320LPE),
58 ID(ID_AHA_29320),
59 ID(ID_AHA_29320B),
60 ID(ID_AHA_29320LP),
61 ID(ID_AHA_39320),
62 ID(ID_AHA_39320_B),
63 ID(ID_AHA_39320A),
64 ID(ID_AHA_39320D),
65 ID(ID_AHA_39320D_HP),
66 ID(ID_AHA_39320D_B),
67 ID(ID_AHA_39320D_B_HP),
70 ID(ID_AIC7901A & ID_DEV_VENDOR_MASK),
78 ahd_linux_pci_dev_suspend(struct device *dev) in ahd_linux_pci_dev_suspend()
92 ahd_linux_pci_dev_resume(struct device *dev) in ahd_linux_pci_dev_resume()
109 if (ahd->platform_data && ahd->platform_data->host) in ahd_linux_pci_dev_remove()
110 scsi_remove_host(ahd->platform_data->host); in ahd_linux_pci_dev_remove()
121 struct pci_dev *pdev = ahd->dev_softc, *master_pdev; in ahd_linux_pci_inherit_flags()
122 unsigned int master_devfn = PCI_DEVFN(PCI_SLOT(pdev->devfn), 0); in ahd_linux_pci_inherit_flags()
124 master_pdev = pci_get_slot(pdev->bus, master_devfn); in ahd_linux_pci_inherit_flags()
128 ahd->flags &= ~AHD_BIOS_ENABLED; in ahd_linux_pci_inherit_flags()
129 ahd->flags |= master->flags & AHD_BIOS_ENABLED; in ahd_linux_pci_inherit_flags()
145 struct device *dev = &pdev->dev; in ahd_linux_pci_dev_probe()
150 return (-ENODEV); in ahd_linux_pci_dev_probe()
163 return (-ENOMEM); in ahd_linux_pci_dev_probe()
166 return (-ENOMEM); in ahd_linux_pci_dev_probe()
169 return (-ENODEV); in ahd_linux_pci_dev_probe()
178 ahd->flags |= AHD_64BIT_ADDRESSING; in ahd_linux_pci_dev_probe()
181 ahd->flags |= AHD_39BIT_ADDRESSING; in ahd_linux_pci_dev_probe()
187 ahd->dev_softc = pci; in ahd_linux_pci_dev_probe()
191 return (-error); in ahd_linux_pci_dev_probe()
198 if ((ahd->features & AHD_MULTI_FUNC) && PCI_FUNC(pdev->devfn) != 0) in ahd_linux_pci_dev_probe()
232 ahd_linux_pci_reserve_io_regions(struct ahd_softc *ahd, resource_size_t *base, in ahd_linux_pci_reserve_io_regions() argument
235 *base = pci_resource_start(ahd->dev_softc, 0); in ahd_linux_pci_reserve_io_regions()
241 *base2 = pci_resource_start(ahd->dev_softc, 3); in ahd_linux_pci_reserve_io_regions()
242 if (*base == 0 || *base2 == 0) in ahd_linux_pci_reserve_io_regions()
244 if (!request_region(*base, 256, "aic79xx")) in ahd_linux_pci_reserve_io_regions()
247 release_region(*base, 256); in ahd_linux_pci_reserve_io_regions()
266 if ((ahd->bugs & AHD_PCIX_MMAPIO_BUG) != 0) in ahd_linux_pci_reserve_mem_region()
269 start = pci_resource_start(ahd->dev_softc, 1); in ahd_linux_pci_reserve_mem_region()
271 base_offset = start - base_page; in ahd_linux_pci_reserve_mem_region()
293 resource_size_t base; in ahd_pci_map_registers() local
300 command = ahd_pci_read_config(ahd->dev_softc, PCIR_COMMAND, 4); in ahd_pci_map_registers()
302 base = 0; in ahd_pci_map_registers()
304 error = ahd_linux_pci_reserve_mem_region(ahd, &base, &maddr); in ahd_pci_map_registers()
306 ahd->platform_data->mem_busaddr = base; in ahd_pci_map_registers()
307 ahd->tags[0] = BUS_SPACE_MEMIO; in ahd_pci_map_registers()
308 ahd->bshs[0].maddr = maddr; in ahd_pci_map_registers()
309 ahd->tags[1] = BUS_SPACE_MEMIO; in ahd_pci_map_registers()
310 ahd->bshs[1].maddr = maddr + 0x100; in ahd_pci_map_registers()
311 ahd_pci_write_config(ahd->dev_softc, PCIR_COMMAND, in ahd_pci_map_registers()
316 printk("aic79xx: PCI Device %d:%d:%d " in ahd_pci_map_registers()
318 ahd_get_pci_bus(ahd->dev_softc), in ahd_pci_map_registers()
319 ahd_get_pci_slot(ahd->dev_softc), in ahd_pci_map_registers()
320 ahd_get_pci_function(ahd->dev_softc)); in ahd_pci_map_registers()
322 release_mem_region(ahd->platform_data->mem_busaddr, in ahd_pci_map_registers()
324 ahd->bshs[0].maddr = NULL; in ahd_pci_map_registers()
330 "unavailable. Cannot memory map device.\n", in ahd_pci_map_registers()
331 ahd_get_pci_bus(ahd->dev_softc), in ahd_pci_map_registers()
332 ahd_get_pci_slot(ahd->dev_softc), in ahd_pci_map_registers()
333 ahd_get_pci_function(ahd->dev_softc), in ahd_pci_map_registers()
334 (unsigned long long)base); in ahd_pci_map_registers()
340 error = ahd_linux_pci_reserve_io_regions(ahd, &base, &base2); in ahd_pci_map_registers()
342 ahd->tags[0] = BUS_SPACE_PIO; in ahd_pci_map_registers()
343 ahd->tags[1] = BUS_SPACE_PIO; in ahd_pci_map_registers()
344 ahd->bshs[0].ioport = (u_long)base; in ahd_pci_map_registers()
345 ahd->bshs[1].ioport = (u_long)base2; in ahd_pci_map_registers()
349 "0x%llx unavailable. Cannot map device.\n", in ahd_pci_map_registers()
350 ahd_get_pci_bus(ahd->dev_softc), in ahd_pci_map_registers()
351 ahd_get_pci_slot(ahd->dev_softc), in ahd_pci_map_registers()
352 ahd_get_pci_function(ahd->dev_softc), in ahd_pci_map_registers()
353 (unsigned long long)base, in ahd_pci_map_registers()
357 ahd_pci_write_config(ahd->dev_softc, PCIR_COMMAND, command, 4); in ahd_pci_map_registers()
366 error = request_irq(ahd->dev_softc->irq, ahd_linux_isr, in ahd_pci_map_int()
369 ahd->platform_data->irq = ahd->dev_softc->irq; in ahd_pci_map_int()
371 return (-error); in ahd_pci_map_int()
377 pci_set_power_state(ahd->dev_softc, new_state); in ahd_power_state_change()