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;    \
hwif304drivers/block/ide.cstatic void set_recovery_timer (ide_hwif_t *hwif)
hwif306drivers/block/ide.chwif->last_time = read_timer();
hwif324drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[index];
hwif327drivers/block/ide.cp = ((byte *) hwif) + sizeof(ide_hwif_t);
hwif330drivers/block/ide.c} while (p > (byte *) hwif);
hwif333drivers/block/ide.chwif->index     = index;
hwif334drivers/block/ide.chwif->noprobe  = (index > 1);
hwif335drivers/block/ide.chwif->io_base  = default_io_base[index];
hwif336drivers/block/ide.chwif->ctl_port  = hwif->io_base ? hwif->io_base+0x206 : 0x000;
hwif338drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif339drivers/block/ide.chwif->noprobe = 1; /* may be overridden by ide_setup() */
hwif341drivers/block/ide.chwif->major  = ide_hwif_to_major[index];
hwif342drivers/block/ide.chwif->name[0]  = 'i';
hwif343drivers/block/ide.chwif->name[1]  = 'd';
hwif344drivers/block/ide.chwif->name[2]  = 'e';
hwif345drivers/block/ide.chwif->name[3]  = '0' + index;
hwif347drivers/block/ide.chwif->tape_drive = NULL;
hwif350drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif353drivers/block/ide.cdrive->hwif      = hwif;
hwif534drivers/block/ide.cide_hwif_t *hwif = gd->real_devices;
hwif537drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif559drivers/block/ide.cstatic void init_gendisk (ide_hwif_t *hwif)
hwif567drivers/block/ide.cif (hwif->drives[units-1].present)
hwif577drivers/block/ide.cblksize_size[hwif->major] = bs;
hwif582drivers/block/ide.chwif->drives[unit].part = &gd->part[unit << PARTN_BITS];
hwif584drivers/block/ide.cgd->major  = hwif->major;    /* our major device number */
hwif591drivers/block/ide.cgd->real_devices= hwif;      /* ptr to internal data */
hwif595drivers/block/ide.chwif->gd = *gdp = gd;      /* link onto tail of list */
hwif639drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif647drivers/block/ide.cprintk("%s: reset timed-out, status=0x%02x\n", hwif->name, tmp);
hwif649drivers/block/ide.cprintk("%s: reset: ", hwif->name);
hwif698drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif726drivers/block/ide.cide_drive_t *rdrive = &hwif->drives[unit];
hwif1254drivers/block/ide.cide_hwif_t *hwif = HWIF(drive);
hwif1255drivers/block/ide.cunsigned short io_base = hwif->io_base;
hwif1264drivers/block/ide.cif (hwif->is_promise2 || rq->cmd == READ) {
hwif1370drivers/block/ide.cstatic inline void do_request (ide_hwif_t *hwif, struct request *rq)
hwif1378drivers/block/ide.cprintk("%s: do_request: current=0x%08lx\n", hwif->name, (unsigned long) rq);
hwif1382drivers/block/ide.cif (MAJOR(rq->rq_dev) != hwif->major || unit >= MAX_DRIVES) {
hwif1384drivers/block/ide.chwif->name, kdevname(rq->rq_dev));
hwif1387drivers/block/ide.cdrive = &hwif->drives[unit];
hwif1406drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwif1408drivers/block/ide.cwhile ((read_timer() - hwif->last_time) < DISK_RECOVERY_TIME);
hwif1415drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1455drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwif1477drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwif1481drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1484drivers/block/ide.cif (hwif->sharing_irq && hwgroup->drive) /* set nIEN */
hwif1485drivers/block/ide.cOUT_BYTE(hwgroup->drive->ctl|2,hwif->ctl_port);
hwif1491drivers/block/ide.chwif = hwgroup->next_hwif;
hwif1493drivers/block/ide.crq = blk_dev[hwif->major].current_request;
hwif1496drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->next_hwif);
hwif1500drivers/block/ide.cdo_request(hwgroup->hwif = hwgroup->next_hwif = hwif, hwgroup->rq = rq);
hwif1519drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwif1520drivers/block/ide.cide_hwif_t *hwif = hgif;
hwif1522drivers/block/ide.cdisable_irq(hwif->irq);
hwif1523drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1526drivers/block/ide.cenable_irq(hwif->irq);
hwif1527drivers/block/ide.c} while ((hwif = hwif->next) != hgif);
hwif1575drivers/block/ide.cif (hwgroup->hwif->dmaproc)
hwif1576drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwif1611drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwif1617drivers/block/ide.cif (hwif->irq == irq) {
hwif1619drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif1622drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif1629drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwif1630drivers/block/ide.cSELECT_DRIVE(hwif,hwgroup->drive); /* Ugh.. probably interrupts current I/O */
hwif1641drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwif1669drivers/block/ide.cide_hwif_t  *hwif = &ide_hwifs[h];
hwif1670drivers/block/ide.cif (hwif->present && major == hwif->major) {
hwif1673drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2449drivers/block/ide.cide_hwif_t *hwif;
hwif2461drivers/block/ide.chwif = HWIF(drive);
hwif2462drivers/block/ide.cSELECT_DRIVE(hwif,drive);
hwif2545drivers/block/ide.cstatic void probe_cmos_for_drives (ide_hwif_t *hwif)
hwif2553drivers/block/ide.cif (hwif->is_promise2)
hwif2560drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2577drivers/block/ide.cstatic void probe_hwif (ide_hwif_t *hwif)
hwif2581drivers/block/ide.cif (hwif->noprobe)
hwif2583drivers/block/ide.cif (hwif->io_base == HD_DATA)
hwif2584drivers/block/ide.cprobe_cmos_for_drives (hwif);
hwif2586drivers/block/ide.cif (!hwif->is_promise2 &&
hwif2587drivers/block/ide.c(check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1))) {
hwif2589drivers/block/ide.cif (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1)) {
hwif2593drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2601drivers/block/ide.cprintk("%s: ports already in use, skipping probe\n", hwif->name);
hwif2612drivers/block/ide.cide_drive_t *drive = &hwif->drives[unit];
hwif2621drivers/block/ide.cif (drive->present && !hwif->present) {
hwif2622drivers/block/ide.chwif->present = 1;
hwif2623drivers/block/ide.crequest_region(hwif->io_base,  8, hwif->name);
hwif2624drivers/block/ide.crequest_region(hwif->ctl_port, 1, hwif->name);
hwif2744drivers/block/ide.cide_hwif_t *hwif;
hwif2762drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2763drivers/block/ide.cdrive = &hwif->drives[unit];
hwif2772drivers/block/ide.chwif->noprobe = 0;
hwif2777drivers/block/ide.chwif->noprobe = 0;
hwif2795drivers/block/ide.chwif->noprobe = 0;
hwif2811drivers/block/ide.chwif = &ide_hwifs[hw];
hwif2818drivers/block/ide.cif (hwif->chipset != ide_unknown)
hwif2833drivers/block/ide.csetup_dc4030(hwif);
hwif2886drivers/block/ide.chwif->drives[0].autotune = 2;
hwif2887drivers/block/ide.chwif->drives[1].autotune = 2;
hwif2890drivers/block/ide.chwif->drives[0].autotune = 1;
hwif2891drivers/block/ide.chwif->drives[1].autotune = 1;
hwif2900drivers/block/ide.chwif->noprobe = 1;
hwif2908drivers/block/ide.chwif->io_base  = vals[0];
hwif2909drivers/block/ide.chwif->ctl_port = vals[1];
hwif2910drivers/block/ide.chwif->irq      = vals[2];
hwif2911drivers/block/ide.chwif->noprobe  = 0;
hwif2912drivers/block/ide.chwif->chipset  = ide_generic;
hwif3011drivers/block/ide.cstatic int init_irq (ide_hwif_t *hwif)
hwif3014drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwif3016drivers/block/ide.cunsigned int index, mate_irq = hwif->irq;
hwif3024drivers/block/ide.cmate_hwif = &ide_hwifs[hwif->index ^ 1];
hwif3025drivers/block/ide.cif (hwif->serialized && mate_hwif->present)
hwif3032drivers/block/ide.cif (index != hwif->index) {
hwif3034drivers/block/ide.cif (h->irq == hwif->irq || h->irq == mate_irq) {
hwif3035drivers/block/ide.chwif->sharing_irq = h->sharing_irq = 1;
hwif3049drivers/block/ide.chwgroup->hwif    = hwgroup->next_hwif = hwif->next = hwif;
hwif3052drivers/block/ide.cif (hwif->drives[0].present)
hwif3053drivers/block/ide.chwgroup->drive   = &hwif->drives[0];
hwif3055drivers/block/ide.chwgroup->drive   = &hwif->drives[1];
hwif3065drivers/block/ide.cif (!hwif->got_irq) {
hwif3066drivers/block/ide.cif (request_irq(hwif->irq, ide_intr, SA_INTERRUPT|SA_SAMPLE_RANDOM, hwif->name, hwgroup)) {
hwif3072drivers/block/ide.cif (g->irq == hwif->irq)
hwif3080drivers/block/ide.chwif->hwgroup = hwgroup;
hwif3081drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwif3082drivers/block/ide.chwgroup->hwif->next = hwif;
hwif3086drivers/block/ide.cprintk("%s at 0x%03x-0x%03x,0x%03x on irq %d", hwif->name,
hwif3087drivers/block/ide.chwif->io_base, hwif->io_base+7, hwif->ctl_port, hwif->irq);
hwif3088drivers/block/ide.cif (hwgroup->hwif != hwif)
hwif3089drivers/block/ide.cprintk(" (serialized with %s)", hwgroup->hwif->name);
hwif3178drivers/block/ide.cide_hwif_t *hwif = &ide_hwifs[h];
hwif3181drivers/block/ide.cif (!hwif->present)
hwif3183drivers/block/ide.cif (!hwif->irq) {
hwif3184drivers/block/ide.cif (!(hwif->irq = default_irqs[h])) {
hwif3185drivers/block/ide.cprintk("%s: DISABLED, NO IRQ\n", hwif->name);
hwif3186drivers/block/ide.creturn (hwif->present = 0);
hwif3190drivers/block/ide.cif (hwif->irq == HD_IRQ && hwif->io_base != HD_DATA) {
hwif3191drivers/block/ide.cprintk("%s: CANNOT SHARE IRQ WITH OLD HARDDISK DRIVER (hd.c)\n", hwif->name);
hwif3192drivers/block/ide.creturn (hwif->present = 0);
hwif3196drivers/block/ide.chwif->present = 0; /* we set it back to 1 if all is ok below */
hwif3197drivers/block/ide.cswitch (hwif->major) {
hwif3209drivers/block/ide.cprintk("%s: request_fn NOT DEFINED\n", hwif->name);
hwif3210drivers/block/ide.creturn (hwif->present = 0);
hwif3212drivers/block/ide.cif (register_blkdev (hwif->major, hwif->name, &ide_fops)) {
hwif3213drivers/block/ide.cprintk("%s: UNABLE TO GET MAJOR NUMBER %d\n", hwif->name, hwif->major);
hwif3214drivers/block/ide.c} else if (init_irq (hwif)) {
hwif3215drivers/block/ide.cprintk("%s: UNABLE TO GET IRQ %d\n", hwif->name, hwif->irq);
hwif3216drivers/block/ide.c(void) unregister_blkdev (hwif->major, hwif->name);
hwif3218drivers/block/ide.cinit_gendisk(hwif);
hwif3219drivers/block/ide.cblk_dev[hwif->major].request_fn = rfn;
hwif3220drivers/block/ide.cread_ahead[hwif->major] = 8;  /* (4kB) */
hwif3221drivers/block/ide.chwif->present = 1;  /* success */
hwif3223drivers/block/ide.creturn hwif->present;
hwif3258drivers/block/ide.cide_hwif_t *hwif;
hwif3264drivers/block/ide.chwif = &ide_hwifs[index];
hwif3265drivers/block/ide.cif (hwif->present) {
hwif3266drivers/block/ide.cif (hwif->io_base == io_base || hwif->ctl_port == ctl_port)
hwif3269drivers/block/ide.chwif->io_base = io_base;
hwif3270drivers/block/ide.chwif->ctl_port = ctl_port;
hwif3271drivers/block/ide.chwif->irq = irq;
hwif3272drivers/block/ide.chwif->noprobe = 0;
hwif3273drivers/block/ide.cprobe_hwif(hwif);
hwif3276drivers/block/ide.cfor (i = 0; i < hwif->gd->nr_real; i++)
hwif3277drivers/block/ide.crevalidate_disk(MKDEV(hwif->major, i<<PARTN_BITS));
hwif3289drivers/block/ide.cide_hwif_t *hwif, *g;
hwif3298drivers/block/ide.chwif = &ide_hwifs[index];
hwif3299drivers/block/ide.cif (!hwif->present || hwif->drives[0].busy || hwif->drives[1].busy) {
hwif3303drivers/block/ide.chwif->present = 0;
hwif3304drivers/block/ide.chwgroup = hwif->hwgroup;
hwif3309drivers/block/ide.cg = hwgroup->hwif;
hwif3311drivers/block/ide.cif (g->irq == hwif->irq)
hwif3314drivers/block/ide.c} while (g != hwgroup->hwif);
hwif3316drivers/block/ide.cfree_irq(hwif->irq, hwgroup);
hwif3323drivers/block/ide.crelease_region(hwif->io_base, 8);
hwif3324drivers/block/ide.crelease_region(hwif->ctl_port, 1);
hwif3330drivers/block/ide.cwhile (hwgroup->hwif->next != hwif)
hwif3331drivers/block/ide.chwgroup->hwif = hwgroup->hwif->next;
hwif3332drivers/block/ide.chwgroup->hwif->next = hwif->next;
hwif3333drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3334drivers/block/ide.chwgroup->hwif = hwif->next;
hwif3335drivers/block/ide.cif (hwgroup->next_hwif == hwif)
hwif3336drivers/block/ide.chwgroup->next_hwif = hwif->next;
hwif3337drivers/block/ide.cif (hwgroup->hwif == hwif)
hwif3343drivers/block/ide.cunregister_blkdev(hwif->major, hwif->name);
hwif3344drivers/block/ide.ckfree(blksize_size[hwif->major]);
hwif3345drivers/block/ide.cblk_dev[hwif->major].request_fn = NULL;
hwif3346drivers/block/ide.cblksize_size[hwif->major] = NULL;
hwif3348drivers/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);
hwif338drivers/block/ide.hvoid      *hwif;  /* actually (ide_hwif_t *) */
hwif447drivers/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);