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;    \
hwif297drivers/block/ide.cstatic void set_recovery_timer (ide_hwif_t *hwif)
hwif299drivers/block/ide.chwif->last_time = read_timer();
hwif317drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[index];
hwif320drivers/block/ide.cp = ((byte *) hwif) + sizeof(ide_hwif_t);
hwif323drivers/block/ide.c} while (p > (byte *) hwif);
hwif326drivers/block/ide.chwif->index     = index;
hwif327drivers/block/ide.chwif->noprobe  = (index > 1);
hwif328drivers/block/ide.chwif->io_base  = default_io_base[index];
hwif329drivers/block/ide.chwif->ctl_port  = hwif->io_base ? hwif->io_base+0x206 : 0x000;
hwif331drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif332drivers/block/ide.chwif->noprobe = 1; /* may be overriden by ide_setup() */
hwif334drivers/block/ide.chwif->major  = ide_hwif_to_major[index];
hwif335drivers/block/ide.chwif->name[0]  = 'i';
hwif336drivers/block/ide.chwif->name[1]  = 'd';
hwif337drivers/block/ide.chwif->name[2]  = 'e';
hwif338drivers/block/ide.chwif->name[3]  = '0' + index;
hwif340drivers/block/ide.chwif->tape_drive = NULL;
hwif343drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif346drivers/block/ide.cdrive->hwif      = hwif;
hwif529drivers/block/ide.cide_hwif_t *hwif = gd->real_devices;
hwif532drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif554drivers/block/ide.cstatic void init_gendisk (ide_hwif_t *hwif)
hwif562drivers/block/ide.cif (hwif->drives[units-1].present)
hwif572drivers/block/ide.cblksize_size[hwif->major] = bs;
hwif577drivers/block/ide.chwif->drives[unit].part = &gd->part[unit << PARTN_BITS];
hwif579drivers/block/ide.cgd->major  = hwif->major;    /* our major device number */
hwif586drivers/block/ide.cgd->real_devices= hwif;      /* ptr to internal data */
hwif590drivers/block/ide.chwif->gd = *gdp = gd;      /* link onto tail of list */
hwif634drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif642drivers/block/ide.cprintk("%s: reset timed-out, status=0x%02x\n", hwif->name, tmp);
hwif644drivers/block/ide.cprintk("%s: reset: ", hwif->name);
hwif693drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif721drivers/block/ide.cide_drive_t *rdrive = &hwif->drives[unit];
hwif1248drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif1249drivers/block/ide.cunsigned short io_base = hwif->io_base;
hwif1281drivers/block/ide.cif (hwif->is_promise2 || rq->cmd == READ) {
hwif1354drivers/block/ide.cstatic inline void do_request (ide_hwif_t *hwif, struct request *rq)
hwif1362drivers/block/ide.cprintk("%s: do_request: current=0x%08lx\n", hwif->name, (unsigned long) rq);
hwif1366drivers/block/ide.cif (MAJOR(rq->rq_dev) != hwif->major || unit >= MAX_DRIVES) {
hwif1368drivers/block/ide.chwif->name, kdevname(rq->rq_dev));
hwif1371drivers/block/ide.cdrive = &hwif->drives[unit];
hwif1390drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwif1392drivers/block/ide.cwhile ((read_timer() - hwif->last_time) < DISK_RECOVERY_TIME);
hwif1399drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1439drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwif1461drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwif1465drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1473drivers/block/ide.chwif = hwgroup->next_hwif;
hwif1475drivers/block/ide.crq = blk_dev[hwif->major].current_request;
hwif1478drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->next_hwif);
hwif1482drivers/block/ide.cdo_request(hwgroup->hwif = hwgroup->next_hwif = hwif, hwgroup->rq = rq);
hwif1501drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwif1502drivers/block/ide.cide_hwif_t *hwif = hgif;
hwif1504drivers/block/ide.cdisable_irq(hwif->irq);
hwif1505drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1508drivers/block/ide.cenable_irq(hwif->irq);
hwif1509drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1557drivers/block/ide.cif (hwgroup->hwif->dmaproc)
hwif1558drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwif1593drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1599drivers/block/ide.cif (hwif->irq == irq) {
hwif1601drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif1604drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1611drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwif1612drivers/block/ide.cSELECT_DRIVE(hwif,hwgroup->drive); /* Ugh.. probably interrupts current I/O */
hwif1623drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwif1651drivers/block/ide.cide_hwif_t  *hwif = &ide_hwifs[h];
hwif1652drivers/block/ide.cif (hwif->present && major == hwif->major) {
hwif1655drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2422drivers/block/ide.cide_hwif_t *hwif;
hwif2434drivers/block/ide.chwif = HWIF(drive);
hwif2435drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif2500drivers/block/ide.cstatic void probe_hwif (ide_hwif_t *hwif)
hwif2505drivers/block/ide.cif (!hwif->is_promise2 &&
hwif2506drivers/block/ide.c(check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1))) {
hwif2508drivers/block/ide.cif (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1)) {
hwif2512drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2520drivers/block/ide.cprintk("%s: ports already in use, skipping probe\n", hwif->name);
hwif2531drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2542drivers/block/ide.cif (drive->present && !hwif->present) {
hwif2543drivers/block/ide.chwif->present = 1;
hwif2544drivers/block/ide.crequest_region(hwif->io_base,  8, hwif->name);
hwif2545drivers/block/ide.crequest_region(hwif->ctl_port, 1, hwif->name);
hwif2664drivers/block/ide.cide_hwif_t *hwif;
hwif2682drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2683drivers/block/ide.cdrive = &hwif->drives[unit];
hwif2690drivers/block/ide.chwif->noprobe = 0;
hwif2695drivers/block/ide.chwif->noprobe = 0;
hwif2713drivers/block/ide.chwif->noprobe = 0;
hwif2729drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2736drivers/block/ide.cif (hwif->chipset != ide_unknown)
hwif2751drivers/block/ide.csetup_dc4030(hwif);
hwif2804drivers/block/ide.chwif->drives[0].autotune = 2;
hwif2805drivers/block/ide.chwif->drives[1].autotune = 2;
hwif2808drivers/block/ide.chwif->drives[0].autotune = 1;
hwif2809drivers/block/ide.chwif->drives[1].autotune = 1;
hwif2818drivers/block/ide.chwif->noprobe = 1;
hwif2826drivers/block/ide.chwif->io_base  = vals[0];
hwif2827drivers/block/ide.chwif->ctl_port = vals[1];
hwif2828drivers/block/ide.chwif->irq      = vals[2];
hwif2829drivers/block/ide.chwif->noprobe  = 0;
hwif2830drivers/block/ide.chwif->chipset  = ide_generic;
hwif2942drivers/block/ide.cstatic void probe_cmos_for_drives (ide_hwif_t *hwif)
hwif2950drivers/block/ide.cif (hwif->is_promise2)
hwif2957drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2979drivers/block/ide.cstatic int init_irq (ide_hwif_t *hwif)
hwif2982drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwif2984drivers/block/ide.cunsigned int index, mate_irq = hwif->irq;
hwif2992drivers/block/ide.cmate_hwif = &ide_hwifs[hwif->index ^ 1];
hwif2993drivers/block/ide.cif (hwif->serialized && mate_hwif->present)
hwif3000drivers/block/ide.cif (index != hwif->index) {
hwif3002drivers/block/ide.cif (g->irq == hwif->irq || g->irq == mate_irq) {
hwif3016drivers/block/ide.chwgroup->hwif    = hwgroup->next_hwif = hwif->next = hwif;
hwif3019drivers/block/ide.cif (hwif->drives[0].present)
hwif3020drivers/block/ide.chwgroup->drive   = &hwif->drives[0];
hwif3022drivers/block/ide.chwgroup->drive   = &hwif->drives[1];
hwif3032drivers/block/ide.cif (!hwif->got_irq) {
hwif3033drivers/block/ide.cif (request_irq(hwif->irq, ide_intr, SA_INTERRUPT|SA_SAMPLE_RANDOM, hwif->name, hwgroup)) {
hwif3039drivers/block/ide.cif (g->irq == hwif->irq)
hwif3047drivers/block/ide.chwif->hwgroup = hwgroup;
hwif3048drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwif3049drivers/block/ide.chwgroup->hwif->next = hwif;
hwif3053drivers/block/ide.cprintk("%s at 0x%03x-0x%03x,0x%03x on irq %d", hwif->name,
hwif3054drivers/block/ide.chwif->io_base, hwif->io_base+7, hwif->ctl_port, hwif->irq);
hwif3055drivers/block/ide.cif (hwgroup->hwif != hwif)
hwif3056drivers/block/ide.cprintk(" (serialized with %s)", hwgroup->hwif->name);
hwif3145drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[h];
hwif3148drivers/block/ide.cif (hwif->noprobe)
hwif3151drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif3152drivers/block/ide.cprobe_cmos_for_drives (hwif);
hwif3153drivers/block/ide.cprobe_hwif (hwif);
hwif3154drivers/block/ide.cif (!hwif->present)
hwif3157drivers/block/ide.cif (!hwif->irq) {
hwif3158drivers/block/ide.cif (!(hwif->irq = default_irqs[h])) {
hwif3159drivers/block/ide.cprintk("%s: DISABLED, NO IRQ\n", hwif->name);
hwif3160drivers/block/ide.creturn (hwif->present = 0);
hwif3164drivers/block/ide.cif (hwif->irq == HD_IRQ && hwif->io_base != HD_DATA) {
hwif3165drivers/block/ide.cprintk("%s: CANNOT SHARE IRQ WITH OLD HARDDISK DRIVER (hd.c)\n", hwif->name);
hwif3166drivers/block/ide.creturn (hwif->present = 0);
hwif3170drivers/block/ide.chwif->present = 0; /* we set it back to 1 if all is ok below */
hwif3171drivers/block/ide.cswitch (hwif->major) {
hwif3183drivers/block/ide.cprintk("%s: request_fn NOT DEFINED\n", hwif->name);
hwif3184drivers/block/ide.creturn (hwif->present = 0);
hwif3186drivers/block/ide.cif (register_blkdev (hwif->major, hwif->name, &ide_fops)) {
hwif3187drivers/block/ide.cprintk("%s: UNABLE TO GET MAJOR NUMBER %d\n", hwif->name, hwif->major);
hwif3188drivers/block/ide.c} else if (init_irq (hwif)) {
hwif3189drivers/block/ide.cprintk("%s: UNABLE TO GET IRQ %d\n", hwif->name, hwif->irq);
hwif3190drivers/block/ide.c(void) unregister_blkdev (hwif->major, hwif->name);
hwif3192drivers/block/ide.cinit_gendisk(hwif);
hwif3193drivers/block/ide.cblk_dev[hwif->major].request_fn = rfn;
hwif3194drivers/block/ide.cread_ahead[hwif->major] = 8;  /* (4kB) */
hwif3195drivers/block/ide.chwif->present = 1;  /* success */
hwif3197drivers/block/ide.creturn hwif->present;
hwif3230drivers/block/ide.cide_hwif_t *hwif;
hwif3236drivers/block/ide.chwif = &ide_hwifs[index];
hwif3237drivers/block/ide.cif (hwif->present) {
hwif3238drivers/block/ide.cif (hwif->io_base == io_base || hwif->ctl_port == ctl_port)
hwif3241drivers/block/ide.chwif->io_base = io_base;
hwif3242drivers/block/ide.chwif->ctl_port = ctl_port;
hwif3243drivers/block/ide.chwif->irq = irq;
hwif3244drivers/block/ide.chwif->noprobe = 0;
hwif3247drivers/block/ide.cfor (i = 0; i < hwif->gd->nr_real; i++)
hwif3248drivers/block/ide.crevalidate_disk(MKDEV(hwif->major, i<<PARTN_BITS));
hwif3260drivers/block/ide.cide_hwif_t *hwif, *g;
hwif3269drivers/block/ide.chwif = &ide_hwifs[index];
hwif3270drivers/block/ide.cif (!hwif->present || hwif->drives[0].busy || hwif->drives[1].busy) {
hwif3274drivers/block/ide.chwif->present = 0;
hwif3275drivers/block/ide.chwgroup = hwif->hwgroup;
hwif3280drivers/block/ide.cg = hwgroup->hwif;
hwif3282drivers/block/ide.cif (g->irq == hwif->irq)
hwif3285drivers/block/ide.c} while (g != hwgroup->hwif);
hwif3287drivers/block/ide.cfree_irq(hwif->irq, hwgroup);
hwif3294drivers/block/ide.crelease_region(hwif->io_base, 8);
hwif3295drivers/block/ide.crelease_region(hwif->ctl_port, 1);
hwif3301drivers/block/ide.cwhile (hwgroup->hwif->next != hwif)
hwif3302drivers/block/ide.chwgroup->hwif = hwgroup->hwif->next;
hwif3303drivers/block/ide.chwgroup->hwif->next = hwif->next;
hwif3304drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3305drivers/block/ide.chwgroup->hwif = hwif->next;
hwif3306drivers/block/ide.cif (hwgroup->next_hwif == hwif)
hwif3307drivers/block/ide.chwgroup->next_hwif = hwif->next;
hwif3308drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3314drivers/block/ide.cunregister_blkdev(hwif->major, hwif->name);
hwif3315drivers/block/ide.ckfree(blksize_size[hwif->major]);
hwif3316drivers/block/ide.cblk_dev[hwif->major].request_fn = NULL;
hwif3317drivers/block/ide.cblksize_size[hwif->major] = NULL;
hwif3319drivers/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 */
hwif119drivers/block/promise.cvoid setup_dc4030 (ide_hwif_t *hwif)
hwif121drivers/block/promise.chwif_required = hwif;
hwif131drivers/block/promise.cide_hwif_t *hwif = hwif_required;
hwif137drivers/block/promise.cif (!hwif) return 0;
hwif139drivers/block/promise.cdrive = &hwif->drives[0];
hwif140drivers/block/promise.csecond_hwif = &ide_hwifs[hwif->index+1];
hwif141drivers/block/promise.cif(hwif->is_promise2) /* we've already been found ! */
hwif153drivers/block/promise.cprintk("%s: Failed Promise read config!\n",hwif->name);
hwif160drivers/block/promise.cprintk("%s: Promise caching controller, ",hwif->name);
hwif169drivers/block/promise.ccase 0x00: hwif->irq = 14; break;
hwif170drivers/block/promise.ccase 0x01: hwif->irq = 12; break;
hwif171drivers/block/promise.cdefault:   hwif->irq = 15; break;
hwif173drivers/block/promise.cprintk("on IRQ %d\n",hwif->irq);
hwif174drivers/block/promise.chwif->chipset    = second_hwif->chipset    = ide_promise;
hwif175drivers/block/promise.chwif->selectproc = second_hwif->selectproc = &promise_selectproc;
hwif177drivers/block/promise.csecond_hwif->io_base = hwif->io_base;
hwif178drivers/block/promise.csecond_hwif->ctl_port = hwif->ctl_port;  
hwif179drivers/block/promise.csecond_hwif->irq = hwif->irq;
hwif181drivers/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;
hwif434drivers/block/triton.cide_hwif_t *hwif = &ide_hwifs[h];
hwif436drivers/block/triton.cif (hwif->io_base == 0x1f0) {
hwif440drivers/block/triton.chwif->chipset = ide_triton;
hwif442drivers/block/triton.cinit_triton_dma(hwif, bmiba);
hwif443drivers/block/triton.c} else if (hwif->io_base == 0x170) {
hwif447drivers/block/triton.chwif->chipset = ide_triton;
hwif449drivers/block/triton.cinit_triton_dma(hwif, bmiba + 8);
hwif455drivers/block/triton.chwif->name, time, s_clks, r_clks);