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;    \
hwif296drivers/block/ide.cstatic void set_recovery_timer (ide_hwif_t *hwif)
hwif298drivers/block/ide.chwif->last_time = read_timer();
hwif316drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[index];
hwif319drivers/block/ide.cp = ((byte *) hwif) + sizeof(ide_hwif_t);
hwif322drivers/block/ide.c} while (p > (byte *) hwif);
hwif325drivers/block/ide.chwif->index     = index;
hwif326drivers/block/ide.chwif->noprobe  = (index > 1);
hwif327drivers/block/ide.chwif->io_base  = default_io_base[index];
hwif328drivers/block/ide.chwif->ctl_port  = hwif->io_base ? hwif->io_base+0x206 : 0x000;
hwif330drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif331drivers/block/ide.chwif->noprobe = 1; /* may be overriden by ide_setup() */
hwif333drivers/block/ide.chwif->major  = ide_hwif_to_major[index];
hwif334drivers/block/ide.chwif->name[0]  = 'i';
hwif335drivers/block/ide.chwif->name[1]  = 'd';
hwif336drivers/block/ide.chwif->name[2]  = 'e';
hwif337drivers/block/ide.chwif->name[3]  = '0' + index;
hwif339drivers/block/ide.chwif->tape_drive = NULL;
hwif342drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif345drivers/block/ide.cdrive->hwif      = hwif;
hwif528drivers/block/ide.cide_hwif_t *hwif = gd->real_devices;
hwif531drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif553drivers/block/ide.cstatic void init_gendisk (ide_hwif_t *hwif)
hwif561drivers/block/ide.cif (hwif->drives[units-1].present)
hwif571drivers/block/ide.cblksize_size[hwif->major] = bs;
hwif576drivers/block/ide.chwif->drives[unit].part = &gd->part[unit << PARTN_BITS];
hwif578drivers/block/ide.cgd->major  = hwif->major;    /* our major device number */
hwif585drivers/block/ide.cgd->real_devices= hwif;      /* ptr to internal data */
hwif589drivers/block/ide.chwif->gd = *gdp = gd;      /* link onto tail of list */
hwif633drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif641drivers/block/ide.cprintk("%s: reset timed-out, status=0x%02x\n", hwif->name, tmp);
hwif643drivers/block/ide.cprintk("%s: reset: ", hwif->name);
hwif692drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif720drivers/block/ide.cide_drive_t *rdrive = &hwif->drives[unit];
hwif1247drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif1248drivers/block/ide.cunsigned short io_base = hwif->io_base;
hwif1280drivers/block/ide.cif (hwif->is_promise2 || rq->cmd == READ) {
hwif1353drivers/block/ide.cstatic inline void do_request (ide_hwif_t *hwif, struct request *rq)
hwif1361drivers/block/ide.cprintk("%s: do_request: current=0x%08lx\n", hwif->name, (unsigned long) rq);
hwif1365drivers/block/ide.cif (MAJOR(rq->rq_dev) != hwif->major || unit >= MAX_DRIVES) {
hwif1367drivers/block/ide.chwif->name, kdevname(rq->rq_dev));
hwif1370drivers/block/ide.cdrive = &hwif->drives[unit];
hwif1389drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwif1391drivers/block/ide.cwhile ((read_timer() - hwif->last_time) < DISK_RECOVERY_TIME);
hwif1398drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1438drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwif1460drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwif1464drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1472drivers/block/ide.chwif = hwgroup->next_hwif;
hwif1474drivers/block/ide.crq = blk_dev[hwif->major].current_request;
hwif1477drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->next_hwif);
hwif1481drivers/block/ide.cdo_request(hwgroup->hwif = hwgroup->next_hwif = hwif, hwgroup->rq = rq);
hwif1500drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwif1501drivers/block/ide.cide_hwif_t *hwif = hgif;
hwif1503drivers/block/ide.cdisable_irq(hwif->irq);
hwif1504drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1507drivers/block/ide.cenable_irq(hwif->irq);
hwif1508drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1556drivers/block/ide.cif (hwgroup->hwif->dmaproc)
hwif1557drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwif1592drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1598drivers/block/ide.cif (hwif->irq == irq) {
hwif1600drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif1603drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1610drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwif1611drivers/block/ide.cSELECT_DRIVE(hwif,hwgroup->drive); /* Ugh.. probably interrupts current I/O */
hwif1622drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwif1650drivers/block/ide.cide_hwif_t  *hwif = &ide_hwifs[h];
hwif1651drivers/block/ide.cif (hwif->present && major == hwif->major) {
hwif1654drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2419drivers/block/ide.cide_hwif_t *hwif;
hwif2431drivers/block/ide.chwif = HWIF(drive);
hwif2432drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif2497drivers/block/ide.cstatic void probe_hwif (ide_hwif_t *hwif)
hwif2502drivers/block/ide.cif (!hwif->is_promise2 &&
hwif2503drivers/block/ide.c(check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1))) {
hwif2505drivers/block/ide.cif (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1)) {
hwif2509drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2517drivers/block/ide.cprintk("%s: ports already in use, skipping probe\n", hwif->name);
hwif2528drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2539drivers/block/ide.cif (drive->present && !hwif->present) {
hwif2540drivers/block/ide.chwif->present = 1;
hwif2541drivers/block/ide.crequest_region(hwif->io_base,  8, hwif->name);
hwif2542drivers/block/ide.crequest_region(hwif->ctl_port, 1, hwif->name);
hwif2661drivers/block/ide.cide_hwif_t *hwif;
hwif2679drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2680drivers/block/ide.cdrive = &hwif->drives[unit];
hwif2687drivers/block/ide.chwif->noprobe = 0;
hwif2692drivers/block/ide.chwif->noprobe = 0;
hwif2710drivers/block/ide.chwif->noprobe = 0;
hwif2726drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2733drivers/block/ide.cif (hwif->chipset != ide_unknown)
hwif2748drivers/block/ide.csetup_dc4030(hwif);
hwif2801drivers/block/ide.chwif->drives[0].autotune = 2;
hwif2802drivers/block/ide.chwif->drives[1].autotune = 2;
hwif2805drivers/block/ide.chwif->drives[0].autotune = 1;
hwif2806drivers/block/ide.chwif->drives[1].autotune = 1;
hwif2815drivers/block/ide.chwif->noprobe = 1;
hwif2823drivers/block/ide.chwif->io_base  = vals[0];
hwif2824drivers/block/ide.chwif->ctl_port = vals[1];
hwif2825drivers/block/ide.chwif->irq      = vals[2];
hwif2826drivers/block/ide.chwif->noprobe  = 0;
hwif2827drivers/block/ide.chwif->chipset  = ide_generic;
hwif2939drivers/block/ide.cstatic void probe_cmos_for_drives (ide_hwif_t *hwif)
hwif2947drivers/block/ide.cif (hwif->is_promise2)
hwif2954drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2976drivers/block/ide.cstatic int init_irq (ide_hwif_t *hwif)
hwif2979drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwif2981drivers/block/ide.cunsigned int index, mate_irq = hwif->irq;
hwif2989drivers/block/ide.cmate_hwif = &ide_hwifs[hwif->index ^ 1];
hwif2990drivers/block/ide.cif (hwif->serialized && mate_hwif->present)
hwif2997drivers/block/ide.cif (index != hwif->index) {
hwif2999drivers/block/ide.cif (g->irq == hwif->irq || g->irq == mate_irq) {
hwif3013drivers/block/ide.chwgroup->hwif    = hwgroup->next_hwif = hwif->next = hwif;
hwif3016drivers/block/ide.cif (hwif->drives[0].present)
hwif3017drivers/block/ide.chwgroup->drive   = &hwif->drives[0];
hwif3019drivers/block/ide.chwgroup->drive   = &hwif->drives[1];
hwif3029drivers/block/ide.cif (!hwif->got_irq) {
hwif3030drivers/block/ide.cif (request_irq(hwif->irq, ide_intr, SA_INTERRUPT|SA_SAMPLE_RANDOM, hwif->name, hwgroup)) {
hwif3036drivers/block/ide.cif (g->irq == hwif->irq)
hwif3044drivers/block/ide.chwif->hwgroup = hwgroup;
hwif3045drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwif3046drivers/block/ide.chwgroup->hwif->next = hwif;
hwif3050drivers/block/ide.cprintk("%s at 0x%03x-0x%03x,0x%03x on irq %d", hwif->name,
hwif3051drivers/block/ide.chwif->io_base, hwif->io_base+7, hwif->ctl_port, hwif->irq);
hwif3052drivers/block/ide.cif (hwgroup->hwif != hwif)
hwif3053drivers/block/ide.cprintk(" (serialized with %s)", hwgroup->hwif->name);
hwif3142drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[h];
hwif3145drivers/block/ide.cif (hwif->noprobe)
hwif3148drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif3149drivers/block/ide.cprobe_cmos_for_drives (hwif);
hwif3150drivers/block/ide.cprobe_hwif (hwif);
hwif3151drivers/block/ide.cif (!hwif->present)
hwif3154drivers/block/ide.cif (!hwif->irq) {
hwif3155drivers/block/ide.cif (!(hwif->irq = default_irqs[h])) {
hwif3156drivers/block/ide.cprintk("%s: DISABLED, NO IRQ\n", hwif->name);
hwif3157drivers/block/ide.creturn (hwif->present = 0);
hwif3161drivers/block/ide.cif (hwif->irq == HD_IRQ && hwif->io_base != HD_DATA) {
hwif3162drivers/block/ide.cprintk("%s: CANNOT SHARE IRQ WITH OLD HARDDISK DRIVER (hd.c)\n", hwif->name);
hwif3163drivers/block/ide.creturn (hwif->present = 0);
hwif3167drivers/block/ide.chwif->present = 0; /* we set it back to 1 if all is ok below */
hwif3168drivers/block/ide.cswitch (hwif->major) {
hwif3180drivers/block/ide.cprintk("%s: request_fn NOT DEFINED\n", hwif->name);
hwif3181drivers/block/ide.creturn (hwif->present = 0);
hwif3183drivers/block/ide.cif (register_blkdev (hwif->major, hwif->name, &ide_fops)) {
hwif3184drivers/block/ide.cprintk("%s: UNABLE TO GET MAJOR NUMBER %d\n", hwif->name, hwif->major);
hwif3185drivers/block/ide.c} else if (init_irq (hwif)) {
hwif3186drivers/block/ide.cprintk("%s: UNABLE TO GET IRQ %d\n", hwif->name, hwif->irq);
hwif3187drivers/block/ide.c(void) unregister_blkdev (hwif->major, hwif->name);
hwif3189drivers/block/ide.cinit_gendisk(hwif);
hwif3190drivers/block/ide.cblk_dev[hwif->major].request_fn = rfn;
hwif3191drivers/block/ide.cread_ahead[hwif->major] = 8;  /* (4kB) */
hwif3192drivers/block/ide.chwif->present = 1;  /* success */
hwif3194drivers/block/ide.creturn hwif->present;
hwif3227drivers/block/ide.cide_hwif_t *hwif;
hwif3233drivers/block/ide.chwif = &ide_hwifs[index];
hwif3234drivers/block/ide.cif (hwif->present) {
hwif3235drivers/block/ide.cif (hwif->io_base == io_base || hwif->ctl_port == ctl_port)
hwif3238drivers/block/ide.chwif->io_base = io_base;
hwif3239drivers/block/ide.chwif->ctl_port = ctl_port;
hwif3240drivers/block/ide.chwif->irq = irq;
hwif3241drivers/block/ide.chwif->noprobe = 0;
hwif3244drivers/block/ide.chwif->gd->real_devices = hwif->drives[0].name;
hwif3245drivers/block/ide.cfor (i = 0; i < hwif->gd->nr_real; i++)
hwif3246drivers/block/ide.crevalidate_disk(MKDEV(hwif->major, i<<PARTN_BITS));
hwif3257drivers/block/ide.cide_hwif_t *hwif, *g;
hwif3266drivers/block/ide.chwif = &ide_hwifs[index];
hwif3267drivers/block/ide.cif (!hwif->present || hwif->drives[0].busy || hwif->drives[1].busy) {
hwif3271drivers/block/ide.chwif->present = 0;
hwif3272drivers/block/ide.chwgroup = hwif->hwgroup;
hwif3277drivers/block/ide.cg = hwgroup->hwif;
hwif3279drivers/block/ide.cif (g->irq == hwif->irq)
hwif3282drivers/block/ide.c} while (g != hwgroup->hwif);
hwif3284drivers/block/ide.cfree_irq(hwif->irq, hwgroup);
hwif3290drivers/block/ide.cwhile (hwgroup->hwif->next != hwif)
hwif3291drivers/block/ide.chwgroup->hwif = hwgroup->hwif->next;
hwif3292drivers/block/ide.chwgroup->hwif->next = hwif->next;
hwif3293drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3294drivers/block/ide.chwgroup->hwif = hwif->next;
hwif3295drivers/block/ide.cif (hwgroup->next_hwif == hwif)
hwif3296drivers/block/ide.chwgroup->next_hwif = hwif->next;
hwif3297drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3303drivers/block/ide.cunregister_blkdev(hwif->major, hwif->name);
hwif3304drivers/block/ide.ckfree(blksize_size[hwif->major]);
hwif3305drivers/block/ide.cblk_dev[hwif->major].request_fn = NULL;
hwif3306drivers/block/ide.cblksize_size[hwif->major] = NULL;
hwif3308drivers/block/ide.cwhile (gd && (gd != hwif->gd)) {
hwif3312drivers/block/ide.cif (gd != 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);
hwif344drivers/block/ide.hvoid      *hwif;  /* actually (ide_hwif_t *) */
hwif452drivers/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);