tag | line | file | source code |
hwif | 198 | drivers/block/ht6560b.c | unsigned int hwif, unit; |
hwif | 209 | drivers/block/ht6560b.c | hwif = HWIF(drive)->index; |
hwif | 210 | drivers/block/ht6560b.c | ht6560b_timings[hwif][unit] = pio_to_timings[pio]; |
hwif | 212 | drivers/block/ht6560b.c | ht6560b_selects[hwif][unit] |= 0x20; |
hwif | 214 | drivers/block/ht6560b.c | ht6560b_selects[hwif][unit] &= ~0x20; |
hwif | 512 | drivers/block/ide-tape.h | if (hwif->tape_drive != NULL) { \ |
hwif | 513 | drivers/block/ide-tape.h | if (hwif->tape_drive->tape.request_status) { \ |
hwif | 514 | drivers/block/ide-tape.h | SELECT_DRIVE(hwif,hwif->tape_drive); \ |
hwif | 515 | drivers/block/ide-tape.h | hwif->tape_drive->tape.last_status=GET_STAT(); \ |
hwif | 516 | drivers/block/ide-tape.h | hwif->tape_drive->tape.request_status=0; \ |
hwif | 300 | drivers/block/ide.c | static void set_recovery_timer (ide_hwif_t *hwif) |
hwif | 302 | drivers/block/ide.c | hwif->last_time = read_timer(); |
hwif | 320 | drivers/block/ide.c | ide_hwif_t *hwif = &ide_hwifs[index]; |
hwif | 323 | drivers/block/ide.c | p = ((byte *) hwif) + sizeof(ide_hwif_t); |
hwif | 326 | drivers/block/ide.c | } while (p > (byte *) hwif); |
hwif | 329 | drivers/block/ide.c | hwif->index = index; |
hwif | 330 | drivers/block/ide.c | hwif->noprobe = (index > 1); |
hwif | 331 | drivers/block/ide.c | hwif->io_base = default_io_base[index]; |
hwif | 332 | drivers/block/ide.c | hwif->ctl_port = hwif->io_base ? hwif->io_base+0x206 : 0x000; |
hwif | 334 | drivers/block/ide.c | if (hwif->io_base == HD_DATA) |
hwif | 335 | drivers/block/ide.c | hwif->noprobe = 1; /* may be overridden by ide_setup() */ |
hwif | 337 | drivers/block/ide.c | hwif->major = ide_hwif_to_major[index]; |
hwif | 338 | drivers/block/ide.c | hwif->name[0] = 'i'; |
hwif | 339 | drivers/block/ide.c | hwif->name[1] = 'd'; |
hwif | 340 | drivers/block/ide.c | hwif->name[2] = 'e'; |
hwif | 341 | drivers/block/ide.c | hwif->name[3] = '0' + index; |
hwif | 343 | drivers/block/ide.c | hwif->tape_drive = NULL; |
hwif | 346 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 349 | drivers/block/ide.c | drive->hwif = hwif; |
hwif | 530 | drivers/block/ide.c | ide_hwif_t *hwif = gd->real_devices; |
hwif | 533 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 555 | drivers/block/ide.c | static void init_gendisk (ide_hwif_t *hwif) |
hwif | 563 | drivers/block/ide.c | if (hwif->drives[units-1].present) |
hwif | 573 | drivers/block/ide.c | blksize_size[hwif->major] = bs; |
hwif | 578 | drivers/block/ide.c | hwif->drives[unit].part = &gd->part[unit << PARTN_BITS]; |
hwif | 580 | drivers/block/ide.c | gd->major = hwif->major; /* our major device number */ |
hwif | 587 | drivers/block/ide.c | gd->real_devices= hwif; /* ptr to internal data */ |
hwif | 591 | drivers/block/ide.c | hwif->gd = *gdp = gd; /* link onto tail of list */ |
hwif | 635 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
hwif | 643 | drivers/block/ide.c | printk("%s: reset timed-out, status=0x%02x\n", hwif->name, tmp); |
hwif | 645 | drivers/block/ide.c | printk("%s: reset: ", hwif->name); |
hwif | 694 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
hwif | 722 | drivers/block/ide.c | ide_drive_t *rdrive = &hwif->drives[unit]; |
hwif | 1249 | drivers/block/ide.c | ide_hwif_t *hwif = HWIF(drive); |
hwif | 1250 | drivers/block/ide.c | unsigned short io_base = hwif->io_base; |
hwif | 1259 | drivers/block/ide.c | if (hwif->is_promise2 || rq->cmd == READ) { |
hwif | 1365 | drivers/block/ide.c | static inline void do_request (ide_hwif_t *hwif, struct request *rq) |
hwif | 1373 | drivers/block/ide.c | printk("%s: do_request: current=0x%08lx\n", hwif->name, (unsigned long) rq); |
hwif | 1377 | drivers/block/ide.c | if (MAJOR(rq->rq_dev) != hwif->major || unit >= MAX_DRIVES) { |
hwif | 1379 | drivers/block/ide.c | hwif->name, kdevname(rq->rq_dev)); |
hwif | 1382 | drivers/block/ide.c | drive = &hwif->drives[unit]; |
hwif | 1401 | drivers/block/ide.c | ((ide_hwgroup_t *)hwif->hwgroup)->drive = drive; |
hwif | 1403 | drivers/block/ide.c | while ((read_timer() - hwif->last_time) < DISK_RECOVERY_TIME); |
hwif | 1410 | drivers/block/ide.c | SELECT_DRIVE(hwif,drive); |
hwif | 1450 | drivers/block/ide.c | ide_end_request(0, hwif->hwgroup); |
hwif | 1472 | drivers/block/ide.c | printk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name); |
hwif | 1476 | drivers/block/ide.c | ide_hwif_t *hwif = hwgroup->hwif; |
hwif | 1484 | drivers/block/ide.c | hwif = hwgroup->next_hwif; |
hwif | 1486 | drivers/block/ide.c | rq = blk_dev[hwif->major].current_request; |
hwif | 1489 | drivers/block/ide.c | } while ((hwif = hwif->next) != hwgroup->next_hwif); |
hwif | 1493 | drivers/block/ide.c | do_request(hwgroup->hwif = hwgroup->next_hwif = hwif, hwgroup->rq = rq); |
hwif | 1512 | drivers/block/ide.c | ide_hwif_t *hgif = hwgroup->hwif; |
hwif | 1513 | drivers/block/ide.c | ide_hwif_t *hwif = hgif; |
hwif | 1515 | drivers/block/ide.c | disable_irq(hwif->irq); |
hwif | 1516 | drivers/block/ide.c | } while ((hwif = hwif->next) != hgif); |
hwif | 1519 | drivers/block/ide.c | enable_irq(hwif->irq); |
hwif | 1520 | drivers/block/ide.c | } while ((hwif = hwif->next) != hgif); |
hwif | 1568 | drivers/block/ide.c | if (hwgroup->hwif->dmaproc) |
hwif | 1569 | drivers/block/ide.c | (void) hwgroup->hwif->dmaproc (ide_dma_abort, drive); |
hwif | 1604 | drivers/block/ide.c | ide_hwif_t *hwif = hwgroup->hwif; |
hwif | 1610 | drivers/block/ide.c | if (hwif->irq == irq) { |
hwif | 1612 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 1615 | drivers/block/ide.c | SELECT_DRIVE(hwif,drive); |
hwif | 1622 | drivers/block/ide.c | } while ((hwif = hwif->next) != hwgroup->hwif); |
hwif | 1623 | drivers/block/ide.c | SELECT_DRIVE(hwif,hwgroup->drive); /* Ugh.. probably interrupts current I/O */ |
hwif | 1634 | drivers/block/ide.c | if (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) { |
hwif | 1662 | drivers/block/ide.c | ide_hwif_t *hwif = &ide_hwifs[h]; |
hwif | 1663 | drivers/block/ide.c | if (hwif->present && major == hwif->major) { |
hwif | 1666 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 2433 | drivers/block/ide.c | ide_hwif_t *hwif; |
hwif | 2445 | drivers/block/ide.c | hwif = HWIF(drive); |
hwif | 2446 | drivers/block/ide.c | SELECT_DRIVE(hwif,drive); |
hwif | 2529 | drivers/block/ide.c | static void probe_cmos_for_drives (ide_hwif_t *hwif) |
hwif | 2537 | drivers/block/ide.c | if (hwif->is_promise2) |
hwif | 2544 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 2561 | drivers/block/ide.c | static void probe_hwif (ide_hwif_t *hwif) |
hwif | 2565 | drivers/block/ide.c | if (hwif->noprobe) |
hwif | 2567 | drivers/block/ide.c | if (hwif->io_base == HD_DATA) |
hwif | 2568 | drivers/block/ide.c | probe_cmos_for_drives (hwif); |
hwif | 2570 | drivers/block/ide.c | if (!hwif->is_promise2 && |
hwif | 2571 | drivers/block/ide.c | (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1))) { |
hwif | 2573 | drivers/block/ide.c | if (check_region(hwif->io_base,8) || check_region(hwif->ctl_port,1)) { |
hwif | 2577 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 2585 | drivers/block/ide.c | printk("%s: ports already in use, skipping probe\n", hwif->name); |
hwif | 2596 | drivers/block/ide.c | ide_drive_t *drive = &hwif->drives[unit]; |
hwif | 2605 | drivers/block/ide.c | if (drive->present && !hwif->present) { |
hwif | 2606 | drivers/block/ide.c | hwif->present = 1; |
hwif | 2607 | drivers/block/ide.c | request_region(hwif->io_base, 8, hwif->name); |
hwif | 2608 | drivers/block/ide.c | request_region(hwif->ctl_port, 1, hwif->name); |
hwif | 2727 | drivers/block/ide.c | ide_hwif_t *hwif; |
hwif | 2745 | drivers/block/ide.c | hwif = &ide_hwifs[hw]; |
hwif | 2746 | drivers/block/ide.c | drive = &hwif->drives[unit]; |
hwif | 2753 | drivers/block/ide.c | hwif->noprobe = 0; |
hwif | 2758 | drivers/block/ide.c | hwif->noprobe = 0; |
hwif | 2776 | drivers/block/ide.c | hwif->noprobe = 0; |
hwif | 2792 | drivers/block/ide.c | hwif = &ide_hwifs[hw]; |
hwif | 2799 | drivers/block/ide.c | if (hwif->chipset != ide_unknown) |
hwif | 2814 | drivers/block/ide.c | setup_dc4030(hwif); |
hwif | 2867 | drivers/block/ide.c | hwif->drives[0].autotune = 2; |
hwif | 2868 | drivers/block/ide.c | hwif->drives[1].autotune = 2; |
hwif | 2871 | drivers/block/ide.c | hwif->drives[0].autotune = 1; |
hwif | 2872 | drivers/block/ide.c | hwif->drives[1].autotune = 1; |
hwif | 2881 | drivers/block/ide.c | hwif->noprobe = 1; |
hwif | 2889 | drivers/block/ide.c | hwif->io_base = vals[0]; |
hwif | 2890 | drivers/block/ide.c | hwif->ctl_port = vals[1]; |
hwif | 2891 | drivers/block/ide.c | hwif->irq = vals[2]; |
hwif | 2892 | drivers/block/ide.c | hwif->noprobe = 0; |
hwif | 2893 | drivers/block/ide.c | hwif->chipset = ide_generic; |
hwif | 2992 | drivers/block/ide.c | static int init_irq (ide_hwif_t *hwif) |
hwif | 2995 | drivers/block/ide.c | ide_hwgroup_t *hwgroup = hwif->hwgroup; |
hwif | 2997 | drivers/block/ide.c | unsigned int index, mate_irq = hwif->irq; |
hwif | 3005 | drivers/block/ide.c | mate_hwif = &ide_hwifs[hwif->index ^ 1]; |
hwif | 3006 | drivers/block/ide.c | if (hwif->serialized && mate_hwif->present) |
hwif | 3013 | drivers/block/ide.c | if (index != hwif->index) { |
hwif | 3015 | drivers/block/ide.c | if (g->irq == hwif->irq || g->irq == mate_irq) { |
hwif | 3029 | drivers/block/ide.c | hwgroup->hwif = hwgroup->next_hwif = hwif->next = hwif; |
hwif | 3032 | drivers/block/ide.c | if (hwif->drives[0].present) |
hwif | 3033 | drivers/block/ide.c | hwgroup->drive = &hwif->drives[0]; |
hwif | 3035 | drivers/block/ide.c | hwgroup->drive = &hwif->drives[1]; |
hwif | 3045 | drivers/block/ide.c | if (!hwif->got_irq) { |
hwif | 3046 | drivers/block/ide.c | if (request_irq(hwif->irq, ide_intr, SA_INTERRUPT|SA_SAMPLE_RANDOM, hwif->name, hwgroup)) { |
hwif | 3052 | drivers/block/ide.c | if (g->irq == hwif->irq) |
hwif | 3060 | drivers/block/ide.c | hwif->hwgroup = hwgroup; |
hwif | 3061 | drivers/block/ide.c | hwif->next = hwgroup->hwif->next; |
hwif | 3062 | drivers/block/ide.c | hwgroup->hwif->next = hwif; |
hwif | 3066 | drivers/block/ide.c | printk("%s at 0x%03x-0x%03x,0x%03x on irq %d", hwif->name, |
hwif | 3067 | drivers/block/ide.c | hwif->io_base, hwif->io_base+7, hwif->ctl_port, hwif->irq); |
hwif | 3068 | drivers/block/ide.c | if (hwgroup->hwif != hwif) |
hwif | 3069 | drivers/block/ide.c | printk(" (serialized with %s)", hwgroup->hwif->name); |
hwif | 3158 | drivers/block/ide.c | ide_hwif_t *hwif = &ide_hwifs[h]; |
hwif | 3161 | drivers/block/ide.c | if (!hwif->present) |
hwif | 3163 | drivers/block/ide.c | if (!hwif->irq) { |
hwif | 3164 | drivers/block/ide.c | if (!(hwif->irq = default_irqs[h])) { |
hwif | 3165 | drivers/block/ide.c | printk("%s: DISABLED, NO IRQ\n", hwif->name); |
hwif | 3166 | drivers/block/ide.c | return (hwif->present = 0); |
hwif | 3170 | drivers/block/ide.c | if (hwif->irq == HD_IRQ && hwif->io_base != HD_DATA) { |
hwif | 3171 | drivers/block/ide.c | printk("%s: CANNOT SHARE IRQ WITH OLD HARDDISK DRIVER (hd.c)\n", hwif->name); |
hwif | 3172 | drivers/block/ide.c | return (hwif->present = 0); |
hwif | 3176 | drivers/block/ide.c | hwif->present = 0; /* we set it back to 1 if all is ok below */ |
hwif | 3177 | drivers/block/ide.c | switch (hwif->major) { |
hwif | 3189 | drivers/block/ide.c | printk("%s: request_fn NOT DEFINED\n", hwif->name); |
hwif | 3190 | drivers/block/ide.c | return (hwif->present = 0); |
hwif | 3192 | drivers/block/ide.c | if (register_blkdev (hwif->major, hwif->name, &ide_fops)) { |
hwif | 3193 | drivers/block/ide.c | printk("%s: UNABLE TO GET MAJOR NUMBER %d\n", hwif->name, hwif->major); |
hwif | 3194 | drivers/block/ide.c | } else if (init_irq (hwif)) { |
hwif | 3195 | drivers/block/ide.c | printk("%s: UNABLE TO GET IRQ %d\n", hwif->name, hwif->irq); |
hwif | 3196 | drivers/block/ide.c | (void) unregister_blkdev (hwif->major, hwif->name); |
hwif | 3198 | drivers/block/ide.c | init_gendisk(hwif); |
hwif | 3199 | drivers/block/ide.c | blk_dev[hwif->major].request_fn = rfn; |
hwif | 3200 | drivers/block/ide.c | read_ahead[hwif->major] = 8; /* (4kB) */ |
hwif | 3201 | drivers/block/ide.c | hwif->present = 1; /* success */ |
hwif | 3203 | drivers/block/ide.c | return hwif->present; |
hwif | 3238 | drivers/block/ide.c | ide_hwif_t *hwif; |
hwif | 3244 | drivers/block/ide.c | hwif = &ide_hwifs[index]; |
hwif | 3245 | drivers/block/ide.c | if (hwif->present) { |
hwif | 3246 | drivers/block/ide.c | if (hwif->io_base == io_base || hwif->ctl_port == ctl_port) |
hwif | 3249 | drivers/block/ide.c | hwif->io_base = io_base; |
hwif | 3250 | drivers/block/ide.c | hwif->ctl_port = ctl_port; |
hwif | 3251 | drivers/block/ide.c | hwif->irq = irq; |
hwif | 3252 | drivers/block/ide.c | hwif->noprobe = 0; |
hwif | 3253 | drivers/block/ide.c | probe_hwif(hwif); |
hwif | 3256 | drivers/block/ide.c | for (i = 0; i < hwif->gd->nr_real; i++) |
hwif | 3257 | drivers/block/ide.c | revalidate_disk(MKDEV(hwif->major, i<<PARTN_BITS)); |
hwif | 3269 | drivers/block/ide.c | ide_hwif_t *hwif, *g; |
hwif | 3278 | drivers/block/ide.c | hwif = &ide_hwifs[index]; |
hwif | 3279 | drivers/block/ide.c | if (!hwif->present || hwif->drives[0].busy || hwif->drives[1].busy) { |
hwif | 3283 | drivers/block/ide.c | hwif->present = 0; |
hwif | 3284 | drivers/block/ide.c | hwgroup = hwif->hwgroup; |
hwif | 3289 | drivers/block/ide.c | g = hwgroup->hwif; |
hwif | 3291 | drivers/block/ide.c | if (g->irq == hwif->irq) |
hwif | 3294 | drivers/block/ide.c | } while (g != hwgroup->hwif); |
hwif | 3296 | drivers/block/ide.c | free_irq(hwif->irq, hwgroup); |
hwif | 3303 | drivers/block/ide.c | release_region(hwif->io_base, 8); |
hwif | 3304 | drivers/block/ide.c | release_region(hwif->ctl_port, 1); |
hwif | 3310 | drivers/block/ide.c | while (hwgroup->hwif->next != hwif) |
hwif | 3311 | drivers/block/ide.c | hwgroup->hwif = hwgroup->hwif->next; |
hwif | 3312 | drivers/block/ide.c | hwgroup->hwif->next = hwif->next; |
hwif | 3313 | drivers/block/ide.c | if (hwgroup->hwif == hwif) |
hwif | 3314 | drivers/block/ide.c | hwgroup->hwif = hwif->next; |
hwif | 3315 | drivers/block/ide.c | if (hwgroup->next_hwif == hwif) |
hwif | 3316 | drivers/block/ide.c | hwgroup->next_hwif = hwif->next; |
hwif | 3317 | drivers/block/ide.c | if (hwgroup->hwif == hwif) |
hwif | 3323 | drivers/block/ide.c | unregister_blkdev(hwif->major, hwif->name); |
hwif | 3324 | drivers/block/ide.c | kfree(blksize_size[hwif->major]); |
hwif | 3325 | drivers/block/ide.c | blk_dev[hwif->major].request_fn = NULL; |
hwif | 3326 | drivers/block/ide.c | blksize_size[hwif->major] = NULL; |
hwif | 3328 | drivers/block/ide.c | if (*gdp == hwif->gd) |
hwif | 77 | drivers/block/ide.h | #define HWIF(drive) ((ide_hwif_t *)((drive)->hwif)) |
hwif | 144 | drivers/block/ide.h | #define SELECT_DRIVE(hwif,drive) \ |
hwif | 146 | drivers/block/ide.h | if (hwif->selectproc) \ |
hwif | 147 | drivers/block/ide.h | hwif->selectproc(drive); \ |
hwif | 149 | drivers/block/ide.h | OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); \ |
hwif | 152 | drivers/block/ide.h | #define SELECT_DRIVE(hwif,drive) OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); |
hwif | 337 | drivers/block/ide.h | void *hwif; /* actually (ide_hwif_t *) */ |
hwif | 445 | drivers/block/ide.h | ide_hwif_t *hwif; /* ptr to current hwif in linked-list */ |
hwif | 114 | drivers/block/promise.c | void setup_dc4030 (ide_hwif_t *hwif) |
hwif | 116 | drivers/block/promise.c | hwif_required = hwif; |
hwif | 126 | drivers/block/promise.c | ide_hwif_t *hwif = hwif_required; |
hwif | 132 | drivers/block/promise.c | if (!hwif) return 0; |
hwif | 134 | drivers/block/promise.c | drive = &hwif->drives[0]; |
hwif | 135 | drivers/block/promise.c | second_hwif = &ide_hwifs[hwif->index+1]; |
hwif | 136 | drivers/block/promise.c | if(hwif->is_promise2) /* we've already been found ! */ |
hwif | 148 | drivers/block/promise.c | printk("%s: Failed Promise read config!\n",hwif->name); |
hwif | 155 | drivers/block/promise.c | printk("%s: Promise caching controller, ",hwif->name); |
hwif | 166 | drivers/block/promise.c | case 0x00: hwif->irq = 14; break; |
hwif | 167 | drivers/block/promise.c | case 0x01: hwif->irq = 12; break; |
hwif | 168 | drivers/block/promise.c | default: hwif->irq = 15; break; |
hwif | 170 | drivers/block/promise.c | printk("on IRQ %d\n",hwif->irq); |
hwif | 171 | drivers/block/promise.c | hwif->chipset = second_hwif->chipset = ide_promise; |
hwif | 172 | drivers/block/promise.c | hwif->selectproc = second_hwif->selectproc = &promise_selectproc; |
hwif | 174 | drivers/block/promise.c | for (i=MAX_HWIFS-1 ; i > hwif->index+1 ; i--) { |
hwif | 181 | drivers/block/promise.c | second_hwif->io_base = hwif->io_base; |
hwif | 182 | drivers/block/promise.c | second_hwif->ctl_port = hwif->ctl_port; |
hwif | 183 | drivers/block/promise.c | second_hwif->irq = hwif->irq; |
hwif | 185 | drivers/block/promise.c | hwif->drives[i].io_32bit = 3; |
hwif | 345 | drivers/block/triton.c | static void init_triton_dma (ide_hwif_t *hwif, unsigned short base) |
hwif | 349 | drivers/block/triton.c | printk(" %s: BM-DMA at 0x%04x-0x%04x", hwif->name, base, base+7); |
hwif | 354 | drivers/block/triton.c | hwif->dma_base = base; |
hwif | 364 | drivers/block/triton.c | hwif->dmatable = (unsigned long *) dmatable; |
hwif | 366 | drivers/block/triton.c | outl(virt_to_bus(hwif->dmatable), base + 4); |
hwif | 367 | drivers/block/triton.c | hwif->dmaproc = &triton_dmaproc; |
hwif | 438 | drivers/block/triton.c | ide_hwif_t *hwif = &ide_hwifs[h]; |
hwif | 440 | drivers/block/triton.c | if (hwif->io_base == 0x1f0) { |
hwif | 444 | drivers/block/triton.c | hwif->chipset = ide_triton; |
hwif | 446 | drivers/block/triton.c | init_triton_dma(hwif, bmiba); |
hwif | 447 | drivers/block/triton.c | } else if (hwif->io_base == 0x170) { |
hwif | 451 | drivers/block/triton.c | hwif->chipset = ide_triton; |
hwif | 453 | drivers/block/triton.c | init_triton_dma(hwif, bmiba + 8); |
hwif | 459 | drivers/block/triton.c | hwif->name, time, s_clks, r_clks); |
hwif | 65 | include/asm-m68k/ide.h | #define SELECT_DRIVE(hwif,drive) OUT_BYTE((drive)->select.all, hwif->io_base+IDE_SELECT_OFFSET); |