-#else /* !CONFIG_IDE_TASKFILE_IO */
- memset(&taskfile, 0, sizeof(struct hd_drive_task_hdr));
-
- taskfile.feature = drive_number;
- taskfile.sector_count = rq->nr_sectors;
- taskfile.sector_number = block;
- taskfile.low_cylinder = (block>>=8);
- taskfile.high_cylinder = (block>>=8);
- taskfile.device_head = ((block>>8)&0x0f)|drive->select.all;
- taskfile.command = (rq->cmd==READ)?PROMISE_READ:PROMISE_WRITE;
-
- memcpy(args.tfRegister, &taskfile, sizeof(struct hd_drive_task_hdr));
- memset(args.hobRegister, 0, sizeof(struct hd_drive_hob_hdr));
- /*
- * Setup the bits of args that we do need.
- * Note that we don't use the generic interrupt handlers.
- */
- args.handler = NULL;
- args.rq = (struct request *) rq;
- rq->special = (ide_task_t *)&args;
-
- return do_pdc4030_io(drive, &args);
-#endif /* !CONFIG_IDE_TASKFILE_IO */