taglinefilesource code
hwif198drivers/block/ht6560b.cunsigned int hwif, unit;
hwif209drivers/block/ht6560b.chwif = HWIF(drive)->index;
hwif210drivers/block/ht6560b.cht6560b_timings[hwif][unit] = pio_to_timings[pio];
hwif212drivers/block/ht6560b.cht6560b_selects[hwif][unit] |= 0x20;
hwif214drivers/block/ht6560b.cht6560b_selects[hwif][unit] &= ~0x20;
hwif512drivers/block/ide-tape.hif (hwif->tape_drive != NULL) {            \
hwif513drivers/block/ide-tape.hif (hwif->tape_drive->tape.request_status) {      \
hwif514drivers/block/ide-tape.hSELECT_DRIVE(hwif,hwif->tape_drive);      \
hwif515drivers/block/ide-tape.hhwif->tape_drive->tape.last_status=GET_STAT();    \
hwif516drivers/block/ide-tape.hhwif->tape_drive->tape.request_status=0;    \
hwif300drivers/block/ide.cstatic void set_recovery_timer (ide_hwif_t *hwif)
hwif302drivers/block/ide.chwif->last_time = read_timer();
hwif320drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[index];
hwif323drivers/block/ide.cp = ((byte *) hwif) + sizeof(ide_hwif_t);
hwif326drivers/block/ide.c} while (p > (byte *) hwif);
hwif329drivers/block/ide.chwif->index     = index;
hwif330drivers/block/ide.chwif->noprobe  = (index > 1);
hwif331drivers/block/ide.chwif->io_base  = default_io_base[index];
hwif332drivers/block/ide.chwif->ctl_port  = hwif->io_base ? hwif->io_base+0x206 : 0x000;
hwif334drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif335drivers/block/ide.chwif->noprobe = 1; /* may be overridden by ide_setup() */
hwif337drivers/block/ide.chwif->major  = ide_hwif_to_major[index];
hwif338drivers/block/ide.chwif->name[0]  = 'i';
hwif339drivers/block/ide.chwif->name[1]  = 'd';
hwif340drivers/block/ide.chwif->name[2]  = 'e';
hwif341drivers/block/ide.chwif->name[3]  = '0' + index;
hwif343drivers/block/ide.chwif->tape_drive = NULL;
hwif346drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif349drivers/block/ide.cdrive->hwif      = hwif;
hwif530drivers/block/ide.cide_hwif_t *hwif = gd->real_devices;
hwif533drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif555drivers/block/ide.cstatic void init_gendisk (ide_hwif_t *hwif)
hwif563drivers/block/ide.cif (hwif->drives[units-1].present)
hwif573drivers/block/ide.cblksize_size[hwif->major] = bs;
hwif578drivers/block/ide.chwif->drives[unit].part = &gd->part[unit << PARTN_BITS];
hwif580drivers/block/ide.cgd->major  = hwif->major;    /* our major device number */
hwif587drivers/block/ide.cgd->real_devices= hwif;      /* ptr to internal data */
hwif591drivers/block/ide.chwif->gd = *gdp = gd;      /* link onto tail of list */
hwif635drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif643drivers/block/ide.cprintk("%s: reset timed-out, status=0x%02x\n", hwif->name, tmp);
hwif645drivers/block/ide.cprintk("%s: reset: ", hwif->name);
hwif694drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif722drivers/block/ide.cide_drive_t *rdrive = &hwif->drives[unit];
hwif1249drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif1250drivers/block/ide.cunsigned short io_base = hwif->io_base;
hwif1259drivers/block/ide.cif (hwif->is_promise2 || rq->cmd == READ) {
hwif1365drivers/block/ide.cstatic inline void do_request (ide_hwif_t *hwif, struct request *rq)
hwif1373drivers/block/ide.cprintk("%s: do_request: current=0x%08lx\n", hwif->name, (unsigned long) rq);
hwif1377drivers/block/ide.cif (MAJOR(rq->rq_dev) != hwif->major || unit >= MAX_DRIVES) {
hwif1379drivers/block/ide.chwif->name, kdevname(rq->rq_dev));
hwif1382drivers/block/ide.cdrive = &hwif->drives[unit];
hwif1401drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwif1403drivers/block/ide.cwhile ((read_timer() - hwif->last_time) < DISK_RECOVERY_TIME);
hwif1410drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1450drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwif1472drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwif1476drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1484drivers/block/ide.chwif = hwgroup->next_hwif;
hwif1486drivers/block/ide.crq = blk_dev[hwif->major].current_request;
hwif1489drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->next_hwif);
hwif1493drivers/block/ide.cdo_request(hwgroup->hwif = hwgroup->next_hwif = hwif, hwgroup->rq = rq);
hwif1512drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwif1513drivers/block/ide.cide_hwif_t *hwif = hgif;
hwif1515drivers/block/ide.cdisable_irq(hwif->irq);
hwif1516drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1519drivers/block/ide.cenable_irq(hwif->irq);
hwif1520drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1568drivers/block/ide.cif (hwgroup->hwif->dmaproc)
hwif1569drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwif1604drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1610drivers/block/ide.cif (hwif->irq == irq) {
hwif1612drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif1615drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1622drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwif1623drivers/block/ide.cSELECT_DRIVE(hwif,hwgroup->drive); /* Ugh.. probably interrupts current I/O */
hwif1634drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwif1662drivers/block/ide.cide_hwif_t  *hwif = &ide_hwifs[h];
hwif1663drivers/block/ide.cif (hwif->present && major == hwif->major) {
hwif1666drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2433drivers/block/ide.cide_hwif_t *hwif;
hwif2445drivers/block/ide.chwif = HWIF(drive);
hwif2446drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif2529drivers/block/ide.cstatic void probe_cmos_for_drives (ide_hwif_t *hwif)
hwif2537drivers/block/ide.cif (hwif->is_promise2)
hwif2544drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2561drivers/block/ide.cstatic void probe_hwif (ide_hwif_t *hwif)
hwif2565drivers/block/ide.cif (hwif->noprobe)
hwif2567drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif2568drivers/block/ide.cprobe_cmos_for_drives (hwif);
hwif2570drivers/block/ide.cif (!hwif->is_promise2 &&
hwif2571drivers/block/ide.c(check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1))) {
hwif2573drivers/block/ide.cif (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1)) {
hwif2577drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2585drivers/block/ide.cprintk("%s: ports already in use, skipping probe\n", hwif->name);
hwif2596drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2605drivers/block/ide.cif (drive->present && !hwif->present) {
hwif2606drivers/block/ide.chwif->present = 1;
hwif2607drivers/block/ide.crequest_region(hwif->io_base,  8, hwif->name);
hwif2608drivers/block/ide.crequest_region(hwif->ctl_port, 1, hwif->name);
hwif2727drivers/block/ide.cide_hwif_t *hwif;
hwif2745drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2746drivers/block/ide.cdrive = &hwif->drives[unit];
hwif2753drivers/block/ide.chwif->noprobe = 0;
hwif2758drivers/block/ide.chwif->noprobe = 0;
hwif2776drivers/block/ide.chwif->noprobe = 0;
hwif2792drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2799drivers/block/ide.cif (hwif->chipset != ide_unknown)
hwif2814drivers/block/ide.csetup_dc4030(hwif);
hwif2867drivers/block/ide.chwif->drives[0].autotune = 2;
hwif2868drivers/block/ide.chwif->drives[1].autotune = 2;
hwif2871drivers/block/ide.chwif->drives[0].autotune = 1;
hwif2872drivers/block/ide.chwif->drives[1].autotune = 1;
hwif2881drivers/block/ide.chwif->noprobe = 1;
hwif2889drivers/block/ide.chwif->io_base  = vals[0];
hwif2890drivers/block/ide.chwif->ctl_port = vals[1];
hwif2891drivers/block/ide.chwif->irq      = vals[2];
hwif2892drivers/block/ide.chwif->noprobe  = 0;
hwif2893drivers/block/ide.chwif->chipset  = ide_generic;
hwif2992drivers/block/ide.cstatic int init_irq (ide_hwif_t *hwif)
hwif2995drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwif2997drivers/block/ide.cunsigned int index, mate_irq = hwif->irq;
hwif3005drivers/block/ide.cmate_hwif = &ide_hwifs[hwif->index ^ 1];
hwif3006drivers/block/ide.cif (hwif->serialized && mate_hwif->present)
hwif3013drivers/block/ide.cif (index != hwif->index) {
hwif3015drivers/block/ide.cif (g->irq == hwif->irq || g->irq == mate_irq) {
hwif3029drivers/block/ide.chwgroup->hwif    = hwgroup->next_hwif = hwif->next = hwif;
hwif3032drivers/block/ide.cif (hwif->drives[0].present)
hwif3033drivers/block/ide.chwgroup->drive   = &hwif->drives[0];
hwif3035drivers/block/ide.chwgroup->drive   = &hwif->drives[1];
hwif3045drivers/block/ide.cif (!hwif->got_irq) {
hwif3046drivers/block/ide.cif (request_irq(hwif->irq, ide_intr, SA_INTERRUPT|SA_SAMPLE_RANDOM, hwif->name, hwgroup)) {
hwif3052drivers/block/ide.cif (g->irq == hwif->irq)
hwif3060drivers/block/ide.chwif->hwgroup = hwgroup;
hwif3061drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwif3062drivers/block/ide.chwgroup->hwif->next = hwif;
hwif3066drivers/block/ide.cprintk("%s at 0x%03x-0x%03x,0x%03x on irq %d", hwif->name,
hwif3067drivers/block/ide.chwif->io_base, hwif->io_base+7, hwif->ctl_port, hwif->irq);
hwif3068drivers/block/ide.cif (hwgroup->hwif != hwif)
hwif3069drivers/block/ide.cprintk(" (serialized with %s)", hwgroup->hwif->name);
hwif3158drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[h];
hwif3161drivers/block/ide.cif (!hwif->present)
hwif3163drivers/block/ide.cif (!hwif->irq) {
hwif3164drivers/block/ide.cif (!(hwif->irq = default_irqs[h])) {
hwif3165drivers/block/ide.cprintk("%s: DISABLED, NO IRQ\n", hwif->name);
hwif3166drivers/block/ide.creturn (hwif->present = 0);
hwif3170drivers/block/ide.cif (hwif->irq == HD_IRQ && hwif->io_base != HD_DATA) {
hwif3171drivers/block/ide.cprintk("%s: CANNOT SHARE IRQ WITH OLD HARDDISK DRIVER (hd.c)\n", hwif->name);
hwif3172drivers/block/ide.creturn (hwif->present = 0);
hwif3176drivers/block/ide.chwif->present = 0; /* we set it back to 1 if all is ok below */
hwif3177drivers/block/ide.cswitch (hwif->major) {
hwif3189drivers/block/ide.cprintk("%s: request_fn NOT DEFINED\n", hwif->name);
hwif3190drivers/block/ide.creturn (hwif->present = 0);
hwif3192drivers/block/ide.cif (register_blkdev (hwif->major, hwif->name, &ide_fops)) {
hwif3193drivers/block/ide.cprintk("%s: UNABLE TO GET MAJOR NUMBER %d\n", hwif->name, hwif->major);
hwif3194drivers/block/ide.c} else if (init_irq (hwif)) {
hwif3195drivers/block/ide.cprintk("%s: UNABLE TO GET IRQ %d\n", hwif->name, hwif->irq);
hwif3196drivers/block/ide.c(void) unregister_blkdev (hwif->major, hwif->name);
hwif3198drivers/block/ide.cinit_gendisk(hwif);
hwif3199drivers/block/ide.cblk_dev[hwif->major].request_fn = rfn;
hwif3200drivers/block/ide.cread_ahead[hwif->major] = 8;  /* (4kB) */
hwif3201drivers/block/ide.chwif->present = 1;  /* success */
hwif3203drivers/block/ide.creturn hwif->present;
hwif3238drivers/block/ide.cide_hwif_t *hwif;
hwif3244drivers/block/ide.chwif = &ide_hwifs[index];
hwif3245drivers/block/ide.cif (hwif->present) {
hwif3246drivers/block/ide.cif (hwif->io_base == io_base || hwif->ctl_port == ctl_port)
hwif3249drivers/block/ide.chwif->io_base = io_base;
hwif3250drivers/block/ide.chwif->ctl_port = ctl_port;
hwif3251drivers/block/ide.chwif->irq = irq;
hwif3252drivers/block/ide.chwif->noprobe = 0;
hwif3253drivers/block/ide.cprobe_hwif(hwif);
hwif3256drivers/block/ide.cfor (i = 0; i < hwif->gd->nr_real; i++)
hwif3257drivers/block/ide.crevalidate_disk(MKDEV(hwif->major, i<<PARTN_BITS));
hwif3269drivers/block/ide.cide_hwif_t *hwif, *g;
hwif3278drivers/block/ide.chwif = &ide_hwifs[index];
hwif3279drivers/block/ide.cif (!hwif->present || hwif->drives[0].busy || hwif->drives[1].busy) {
hwif3283drivers/block/ide.chwif->present = 0;
hwif3284drivers/block/ide.chwgroup = hwif->hwgroup;
hwif3289drivers/block/ide.cg = hwgroup->hwif;
hwif3291drivers/block/ide.cif (g->irq == hwif->irq)
hwif3294drivers/block/ide.c} while (g != hwgroup->hwif);
hwif3296drivers/block/ide.cfree_irq(hwif->irq, hwgroup);
hwif3303drivers/block/ide.crelease_region(hwif->io_base, 8);
hwif3304drivers/block/ide.crelease_region(hwif->ctl_port, 1);
hwif3310drivers/block/ide.cwhile (hwgroup->hwif->next != hwif)
hwif3311drivers/block/ide.chwgroup->hwif = hwgroup->hwif->next;
hwif3312drivers/block/ide.chwgroup->hwif->next = hwif->next;
hwif3313drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3314drivers/block/ide.chwgroup->hwif = hwif->next;
hwif3315drivers/block/ide.cif (hwgroup->next_hwif == hwif)
hwif3316drivers/block/ide.chwgroup->next_hwif = hwif->next;
hwif3317drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3323drivers/block/ide.cunregister_blkdev(hwif->major, hwif->name);
hwif3324drivers/block/ide.ckfree(blksize_size[hwif->major]);
hwif3325drivers/block/ide.cblk_dev[hwif->major].request_fn = NULL;
hwif3326drivers/block/ide.cblksize_size[hwif->major] = NULL;
hwif3328drivers/block/ide.cif (*gdp == hwif->gd)
hwif77drivers/block/ide.h#define HWIF(drive)    ((ide_hwif_t *)((drive)->hwif))
hwif144drivers/block/ide.h#define SELECT_DRIVE(hwif,drive)        \
hwif146drivers/block/ide.hif (hwif->selectproc)          \
hwif147drivers/block/ide.hhwif->selectproc(drive);      \
hwif149drivers/block/ide.hOUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); \
hwif152drivers/block/ide.h#define SELECT_DRIVE(hwif,drive)  OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET);
hwif337drivers/block/ide.hvoid      *hwif;  /* actually (ide_hwif_t *) */
hwif445drivers/block/ide.hide_hwif_t    *hwif;  /* ptr to current hwif in linked-list */
hwif114drivers/block/promise.cvoid setup_dc4030 (ide_hwif_t *hwif)
hwif116drivers/block/promise.chwif_required = hwif;
hwif126drivers/block/promise.cide_hwif_t *hwif = hwif_required;
hwif132drivers/block/promise.cif (!hwif) return 0;
hwif134drivers/block/promise.cdrive = &hwif->drives[0];
hwif135drivers/block/promise.csecond_hwif = &ide_hwifs[hwif->index+1];
hwif136drivers/block/promise.cif(hwif->is_promise2) /* we've already been found ! */
hwif148drivers/block/promise.cprintk("%s: Failed Promise read config!\n",hwif->name);
hwif155drivers/block/promise.cprintk("%s: Promise caching controller, ",hwif->name);
hwif166drivers/block/promise.ccase 0x00: hwif->irq = 14; break;
hwif167drivers/block/promise.ccase 0x01: hwif->irq = 12; break;
hwif168drivers/block/promise.cdefault:   hwif->irq = 15; break;
hwif170drivers/block/promise.cprintk("on IRQ %d\n",hwif->irq);
hwif171drivers/block/promise.chwif->chipset    = second_hwif->chipset    = ide_promise;
hwif172drivers/block/promise.chwif->selectproc = second_hwif->selectproc = &promise_selectproc;
hwif174drivers/block/promise.cfor (i=MAX_HWIFS-1 ; i > hwif->index+1 ; i--) {
hwif181drivers/block/promise.csecond_hwif->io_base = hwif->io_base;
hwif182drivers/block/promise.csecond_hwif->ctl_port = hwif->ctl_port;  
hwif183drivers/block/promise.csecond_hwif->irq = hwif->irq;
hwif185drivers/block/promise.chwif->drives[i].io_32bit = 3;
hwif345drivers/block/triton.cstatic void init_triton_dma (ide_hwif_t *hwif, unsigned short base)
hwif349drivers/block/triton.cprintk("    %s: BM-DMA at 0x%04x-0x%04x", hwif->name, base, base+7);
hwif354drivers/block/triton.chwif->dma_base = base;
hwif364drivers/block/triton.chwif->dmatable = (unsigned long *) dmatable;
hwif366drivers/block/triton.coutl(virt_to_bus(hwif->dmatable), base + 4);
hwif367drivers/block/triton.chwif->dmaproc  = &triton_dmaproc;
hwif438drivers/block/triton.cide_hwif_t *hwif = &ide_hwifs[h];
hwif440drivers/block/triton.cif (hwif->io_base == 0x1f0) {
hwif444drivers/block/triton.chwif->chipset = ide_triton;
hwif446drivers/block/triton.cinit_triton_dma(hwif, bmiba);
hwif447drivers/block/triton.c} else if (hwif->io_base == 0x170) {
hwif451drivers/block/triton.chwif->chipset = ide_triton;
hwif453drivers/block/triton.cinit_triton_dma(hwif, bmiba + 8);
hwif459drivers/block/triton.chwif->name, time, s_clks, r_clks);
hwif65include/asm-m68k/ide.h#define SELECT_DRIVE(hwif,drive)  OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET);