Diff for /src/sys/dev/disk/ata/atapi-all.c between versions 1.6 and 1.7

version 1.6, 2004/02/18 00:37:08 version 1.7, 2004/02/18 00:50:00
Line 81  atapi_attach(struct ata_device *atadev, Line 81  atapi_attach(struct ata_device *atadev,
     if (!alreadylocked)      if (!alreadylocked)
         ATA_SLEEPLOCK_CH(atadev->channel, ATA_CONTROL);          ATA_SLEEPLOCK_CH(atadev->channel, ATA_CONTROL);
     if (atapi_dma && !(atadev->param->drq_type == ATAPI_DRQT_INTR)) {      if (atapi_dma && !(atadev->param->drq_type == ATAPI_DRQT_INTR)) {
        ata_dmainit(atadev->channel, atadev->unit,        ata_dmainit(atadev,
                     (ata_pmode(atadev->param) < 0) ?                       (ata_pmode(atadev->param) < 0) ? 
                     (atadev->param->support_dma ? 4:0):ata_pmode(atadev->param),                      (atadev->param->support_dma ? 4:0):ata_pmode(atadev->param),
                     (ata_wmode(atadev->param) < 0) ?                       (ata_wmode(atadev->param) < 0) ? 
Line 89  atapi_attach(struct ata_device *atadev, Line 89  atapi_attach(struct ata_device *atadev,
                     ata_umode(atadev->param));                      ata_umode(atadev->param));
     }      }
     else      else
        ata_dmainit(atadev->channel, atadev->unit,        ata_dmainit(atadev,
                     ata_pmode(atadev->param) < 0 ? 0 : ata_pmode(atadev->param),                      ata_pmode(atadev->param) < 0 ? 0 : ata_pmode(atadev->param),
                     -1, -1);                      -1, -1);
     ATA_UNLOCK_CH(atadev->channel);      ATA_UNLOCK_CH(atadev->channel);
Line 372  atapi_interrupt(struct atapi_request *re Line 372  atapi_interrupt(struct atapi_request *re
     }      }
   
     if (request->flags & ATPR_F_DMA_USED) {      if (request->flags & ATPR_F_DMA_USED) {
        dma_stat = ata_dmadone(atadev->channel);        dma_stat = ata_dmadone(atadev);
         if ((atadev->channel->status & (ATA_S_ERROR | ATA_S_DWF)) ||          if ((atadev->channel->status & (ATA_S_ERROR | ATA_S_DWF)) ||
             dma_stat & ATA_BMSTAT_ERROR) {              dma_stat & ATA_BMSTAT_ERROR) {
             request->result = ATA_INB(atadev->channel->r_io, ATA_ERROR);              request->result = ATA_INB(atadev->channel->r_io, ATA_ERROR);
Line 494  atapi_reinit(struct ata_device *atadev) Line 494  atapi_reinit(struct ata_device *atadev)
 {  {
     /* reinit device parameters */      /* reinit device parameters */
      if (atadev->mode >= ATA_DMA)       if (atadev->mode >= ATA_DMA)
        ata_dmainit(atadev->channel, atadev->unit,        ata_dmainit(atadev,
                     (ata_pmode(atadev->param) < 0) ?                      (ata_pmode(atadev->param) < 0) ?
                     (atadev->param->support_dma ? 4:0):ata_pmode(atadev->param),                      (atadev->param->support_dma ? 4:0):ata_pmode(atadev->param),
                     (ata_wmode(atadev->param) < 0) ?                       (ata_wmode(atadev->param) < 0) ? 
                     (atadev->param->support_dma ? 2:0):ata_wmode(atadev->param),                      (atadev->param->support_dma ? 2:0):ata_wmode(atadev->param),
                     ata_umode(atadev->param));                      ata_umode(atadev->param));
     else      else
        ata_dmainit(atadev->channel, atadev->unit,        ata_dmainit(atadev,
                     ata_pmode(atadev->param)<0 ? 0 : ata_pmode(atadev->param),                      ata_pmode(atadev->param)<0 ? 0 : ata_pmode(atadev->param),
                     -1, -1);                      -1, -1);
 }  }
Line 631  atapi_timeout(struct atapi_request *requ Line 631  atapi_timeout(struct atapi_request *requ
                atapi_cmd2str(request->ccb[0]));                 atapi_cmd2str(request->ccb[0]));
   
     if (request->flags & ATPR_F_DMA_USED) {      if (request->flags & ATPR_F_DMA_USED) {
        ata_dmadone(atadev->channel);        ata_dmadone(atadev);
         if (request->retries == ATAPI_MAX_RETRIES) {          if (request->retries == ATAPI_MAX_RETRIES) {
            ata_dmainit(atadev->channel, atadev->unit,            ata_dmainit(atadev,
                         (ata_pmode(atadev->param) < 0) ? 0 :                          (ata_pmode(atadev->param) < 0) ? 0 :
                          ata_pmode(atadev->param), -1, -1);                           ata_pmode(atadev->param), -1, -1);
             ata_prtdev(atadev, "trying fallback to PIO mode\n");              ata_prtdev(atadev, "trying fallback to PIO mode\n");

Removed from v.1.6  
changed lines
  Added in v.1.7