taglinefilesource code
hwgroup340drivers/block/blk.hvoid ide_end_request(byte uptodate, ide_hwgroup_t *hwgroup);
hwgroup344drivers/block/blk.hvoid ide_end_request(byte uptodate, ide_hwgroup_t *hwgroup) {
hwgroup345drivers/block/blk.hstruct request *req = hwgroup->rq;
hwgroup379drivers/block/blk.hhwgroup->rq = NULL;
hwgroup385drivers/block/ide.cide_hwgroup_t *hwgroup = HWGROUP(drive);
hwgroup387drivers/block/ide.cif (hwgroup->handler != NULL)
hwgroup390drivers/block/ide.chwgroup->handler       = handler;
hwgroup391drivers/block/ide.chwgroup->timer.expires = jiffies + WAIT_CMD;
hwgroup392drivers/block/ide.cadd_timer(&(hwgroup->timer));
hwgroup565drivers/block/ide.cide_hwgroup_t *hwgroup = hwif->hwgroup;
hwgroup567drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE; /* max waiting time */
hwgroup568drivers/block/ide.chwgroup->handler = &reset_ihandler;    /* dummy irq handler */
hwgroup569drivers/block/ide.chwgroup->timer.expires = jiffies + (HZ/20);  /* polling interval */
hwgroup570drivers/block/ide.cadd_timer(&(hwgroup->timer));
hwgroup582drivers/block/ide.cstatic int atapi_reset_handler (ide_hwgroup_t *hwgroup)
hwgroup584drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup585drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup592drivers/block/ide.cif (jiffies < hwgroup->reset_timeout) {
hwgroup599drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup600drivers/block/ide.chwgroup->handler = NULL;  /* allow new requests to be processed */
hwgroup601drivers/block/ide.chwgroup->reset_timeout = 0;  /* signal end of ide reset operation */
hwgroup615drivers/block/ide.cstatic int reset_handler (ide_hwgroup_t *hwgroup)
hwgroup617drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup618drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup622drivers/block/ide.cif (hwgroup->doing_atapi_reset)
hwgroup623drivers/block/ide.creturn atapi_reset_handler(hwgroup);
hwgroup627drivers/block/ide.cif (jiffies < hwgroup->reset_timeout) {
hwgroup656drivers/block/ide.chwgroup->handler = NULL;  /* allow new requests to be processed */
hwgroup657drivers/block/ide.chwgroup->reset_timeout = 0;  /* signal end of ide reset operation */
hwgroup681drivers/block/ide.cide_hwgroup_t *hwgroup = HWGROUP(drive);
hwgroup689drivers/block/ide.cif (!hwgroup->doing_atapi_reset) {
hwgroup690drivers/block/ide.chwgroup->doing_atapi_reset = 1;
hwgroup696drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE;
hwgroup702drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup736drivers/block/ide.chwgroup->reset_timeout = jiffies + WAIT_WORSTCASE;
hwgroup1340drivers/block/ide.c((ide_hwgroup_t *)hwif->hwgroup)->drive = drive;
hwgroup1376drivers/block/ide.cide_end_request(0, hwif->hwgroup);
hwgroup1394drivers/block/ide.cvoid ide_do_request (ide_hwgroup_t *hwgroup)
hwgroup1397drivers/block/ide.cif (hwgroup->handler != NULL) {
hwgroup1398drivers/block/ide.cprintk("%s: EEeekk!! handler not NULL in ide_do_request()\n", hwgroup->hwif->name);
hwgroup1402drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup1404drivers/block/ide.cif ((rq = hwgroup->rq) == NULL) {
hwgroup1405drivers/block/ide.chwgroup->drive = NULL;  /* paranoia */
hwgroup1410drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwgroup1415drivers/block/ide.cdo_request(hwgroup->hwif = hwif, hwgroup->rq = rq);
hwgroup1417drivers/block/ide.c} while (hwgroup->handler == NULL);
hwgroup1431drivers/block/ide.cstatic void do_hwgroup_request (ide_hwgroup_t *hwgroup)
hwgroup1433drivers/block/ide.cif (hwgroup->handler == NULL) {
hwgroup1434drivers/block/ide.cide_hwif_t *hgif = hwgroup->hwif;
hwgroup1439drivers/block/ide.cide_do_request (hwgroup);
hwgroup1448drivers/block/ide.cdo_hwgroup_request (ide_hwifs[0].hwgroup);
hwgroup1453drivers/block/ide.cdo_hwgroup_request (ide_hwifs[1].hwgroup);
hwgroup1458drivers/block/ide.cdo_hwgroup_request (ide_hwifs[2].hwgroup);
hwgroup1463drivers/block/ide.cdo_hwgroup_request (ide_hwifs[3].hwgroup);
hwgroup1468drivers/block/ide.cide_hwgroup_t *hwgroup = (ide_hwgroup_t *) data;
hwgroup1469drivers/block/ide.cide_drive_t   *drive   = hwgroup->drive;
hwgroup1475drivers/block/ide.cif (hwgroup->reset_timeout != 0) { /* ide reset in progress? */
hwgroup1476drivers/block/ide.cif (!reset_handler(hwgroup))
hwgroup1477drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1478drivers/block/ide.c} else if (hwgroup->handler == NULL) {   /* not waiting for anything? */
hwgroup1482drivers/block/ide.chwgroup->handler = NULL;
hwgroup1483drivers/block/ide.cif (hwgroup->hwif->dmaproc) 
hwgroup1484drivers/block/ide.c(void) hwgroup->hwif->dmaproc (ide_dma_abort, drive);
hwgroup1486drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1514drivers/block/ide.cstatic void unexpected_intr (int irq, ide_hwgroup_t *hwgroup)
hwgroup1518drivers/block/ide.cide_hwif_t *hwif = hwgroup->hwif;
hwgroup1523drivers/block/ide.cif (hwgroup->reset_timeout != 0) {
hwgroup1524drivers/block/ide.cif (!reset_handler(hwgroup))
hwgroup1525drivers/block/ide.cdo_hwgroup_request (hwgroup);
hwgroup1548drivers/block/ide.c} while ((hwif = hwif->next) != hwgroup->hwif);
hwgroup1556drivers/block/ide.cide_hwgroup_t  *hwgroup = irq_to_hwgroup[irq];
hwgroup1559drivers/block/ide.cif (irq == hwgroup->hwif->irq && (handler = hwgroup->handler) != NULL) {
hwgroup1560drivers/block/ide.cide_drive_t *drive = hwgroup->drive;
hwgroup1561drivers/block/ide.chwgroup->handler = NULL;
hwgroup1562drivers/block/ide.cdel_timer(&(hwgroup->timer));
hwgroup1567drivers/block/ide.cunexpected_intr(irq, hwgroup);
hwgroup2730drivers/block/ide.cide_hwgroup_t *hwgroup;
hwgroup2746drivers/block/ide.cif ((hwgroup = irq_to_hwgroup[hwif->irq]) == NULL) {
hwgroup2747drivers/block/ide.chwgroup = ide_alloc (sizeof(ide_hwgroup_t), 0);
hwgroup2748drivers/block/ide.cirq_to_hwgroup[hwif->irq] = hwgroup;
hwgroup2749drivers/block/ide.chwgroup->hwif    = hwif->next = hwif;
hwgroup2750drivers/block/ide.chwgroup->rq      = NULL;
hwgroup2751drivers/block/ide.chwgroup->handler = NULL;
hwgroup2752drivers/block/ide.chwgroup->drive   = NULL;
hwgroup2753drivers/block/ide.chwgroup->reset_timeout = 0;
hwgroup2755drivers/block/ide.chwgroup->doing_atapi_reset = 0;
hwgroup2757drivers/block/ide.cinit_timer(&hwgroup->timer);
hwgroup2758drivers/block/ide.chwgroup->timer.function = &timer_expiry;
hwgroup2759drivers/block/ide.chwgroup->timer.data = (unsigned long) hwgroup;
hwgroup2761drivers/block/ide.chwif->next = hwgroup->hwif->next;
hwgroup2762drivers/block/ide.chwgroup->hwif->next = hwif;
hwgroup2764drivers/block/ide.chwif->hwgroup = hwgroup;
hwgroup2770drivers/block/ide.cif (hwgroup->hwif != hwif) {
hwgroup2771drivers/block/ide.cchar *name = hwgroup->hwif->name;
hwgroup2772drivers/block/ide.cif (hwgroup->hwif->irq == hwif->irq)
hwgroup81drivers/block/ide.h#define HWGROUP(drive)    ((ide_hwgroup_t *)(HWIF(drive)->hwgroup))
hwgroup302drivers/block/ide.hvoid    *hwgroup;  /* actually (ide_hwgroup_t *) */