• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asus-wl-520gu-7.0.1.45/src/linux/linux/drivers/ide/

Lines Matching defs:drive

415 /* Enables per-drive prefetch and postwrite */
416 static void config_drive_art_rwp (ide_drive_t *drive)
418 ide_hwif_t *hwif = HWIF(drive);
422 byte rw_prefetch = (0x11 << drive->dn);
425 printk("SIS5513: config_drive_art_rwp, drive %d\n", drive->dn);
429 if (drive->media != ide_disk)
441 /* Set per-drive active and recovery time */
442 static void config_art_rwp_pio (ide_drive_t *drive, byte pio)
444 ide_hwif_t *hwif = HWIF(drive);
450 unsigned short xfer_pio = drive->id->eide_pio_modes;
456 config_drive_art_rwp(drive);
457 pio = ide_get_best_pio_mode(drive, 255, pio, NULL);
462 if (drive->id->eide_pio_iordy > 0) {
465 (drive->id->eide_pio_iordy > eide_pio_timing[xfer_pio]);
468 xfer_pio = (drive->id->eide_pio_modes & 4) ? 0x05 :
469 (drive->id->eide_pio_modes & 2) ? 0x04 :
470 (drive->id->eide_pio_modes & 1) ? 0x03 : xfer_pio;
476 printk("SIS5513: config_drive_art_rwp_pio, drive %d, pio %d, timing %d\n",
477 drive->dn, pio, timing);
480 switch(drive->dn) {
523 static int config_chipset_for_pio (ide_drive_t *drive, byte pio)
535 config_art_rwp_pio(drive, pio);
536 drive->current_speed = speed;
537 return ide_config_drive_speed(drive, speed);
540 static int sis5513_tune_chipset (ide_drive_t *drive, byte speed)
542 ide_hwif_t *hwif = HWIF(drive);
549 printk("SIS5513: sis5513_tune_chipset, drive %d, speed %d\n",
550 drive->dn, speed);
552 switch(drive->dn) {
601 case XFER_PIO_4: return((int) config_chipset_for_pio(drive, 4));
602 case XFER_PIO_3: return((int) config_chipset_for_pio(drive, 3));
603 case XFER_PIO_2: return((int) config_chipset_for_pio(drive, 2));
604 case XFER_PIO_1: return((int) config_chipset_for_pio(drive, 1));
606 default: return((int) config_chipset_for_pio(drive, 0));
608 drive->current_speed = speed;
612 return ((int) ide_config_drive_speed(drive, speed));
615 static void sis5513_tune_drive (ide_drive_t *drive, byte pio)
617 (void) config_chipset_for_pio(drive, pio);
622 * ((id->hw_config & 0x4000|0x2000) && (HWIF(drive)->udma_four))
624 static int config_chipset_for_dma (ide_drive_t *drive, byte ultra)
626 struct hd_driveid *id = drive->id;
627 ide_hwif_t *hwif = HWIF(drive);
631 byte unit = (drive->select.b.unit & 0x01);
632 byte udma_66 = eighty_ninty_three(drive);
635 printk("SIS5513: config_chipset_for_dma, drive %d, ultra %d\n",
636 drive->dn, ultra);
668 sis5513_tune_chipset(drive, speed);
677 static int config_drive_xfer_rate (ide_drive_t *drive)
679 struct hd_driveid *id = drive->id;
682 (void) config_chipset_for_pio(drive, 5);
684 if (id && (id->capability & 1) && HWIF(drive)->autodma) {
686 if (ide_dmaproc(ide_dma_bad_drive, drive)) {
694 dma_func = config_chipset_for_dma(drive, 1);
704 dma_func = config_chipset_for_dma(drive, 0);
708 } else if ((ide_dmaproc(ide_dma_good_drive, drive)) &&
711 dma_func = config_chipset_for_dma(drive, 0);
721 (void) config_chipset_for_pio(drive, 5);
724 return HWIF(drive)->dmaproc(dma_func, drive);
727 /* initiates/aborts (U)DMA read/write operations on a drive. */
728 int sis5513_dmaproc (ide_dma_action_t func, ide_drive_t *drive)
732 config_drive_art_rwp(drive);
733 config_art_rwp_pio(drive, 5);
734 return config_drive_xfer_rate(drive);
738 return ide_dmaproc(func, drive); /* use standard DMA stuff */
773 2/ tell old chips to allow per drive IDE timings */
800 /* force per drive recovery and active timings