Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 68549
b: refs/heads/master
c: 085798b
h: refs/heads/master
i:
  68547: ba9ff1d
v: v3
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Oct 13, 2007
1 parent 130fa57 commit e284b9b
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 90a87ea480ce50e7a1553568395c024294db1808
refs/heads/master: 085798b12ffebd69c13c8ce05fabc8ed5ac43e63
27 changes: 16 additions & 11 deletions trunk/drivers/ide/ppc/pmac.c
Original file line number Diff line number Diff line change
Expand Up @@ -916,14 +916,15 @@ static int pmac_ide_tune_chipset(ide_drive_t *drive, const u8 speed)
int unit = (drive->select.b.unit & 0x01);
int ret = 0;
pmac_ide_hwif_t* pmif = (pmac_ide_hwif_t *)HWIF(drive)->hwif_data;
u32 *timings, *timings2;
u32 *timings, *timings2, tl[2];

if (pmif == NULL)
return 1;

timings = &pmif->timings[unit];
timings2 = &pmif->timings[unit+2];


/* Copy timings to local image */
tl[0] = *timings;
tl[1] = *timings2;

switch(speed) {
#ifdef CONFIG_BLK_DEV_IDEDMA_PMAC
case XFER_UDMA_6:
Expand All @@ -934,19 +935,19 @@ static int pmac_ide_tune_chipset(ide_drive_t *drive, const u8 speed)
case XFER_UDMA_1:
case XFER_UDMA_0:
if (pmif->kind == controller_kl_ata4)
ret = set_timings_udma_ata4(timings, speed);
ret = set_timings_udma_ata4(&tl[0], speed);
else if (pmif->kind == controller_un_ata6
|| pmif->kind == controller_k2_ata6)
ret = set_timings_udma_ata6(timings, timings2, speed);
ret = set_timings_udma_ata6(&tl[0], &tl[1], speed);
else if (pmif->kind == controller_sh_ata6)
ret = set_timings_udma_shasta(timings, timings2, speed);
ret = set_timings_udma_shasta(&tl[0], &tl[1], speed);
else
ret = 1;
ret = 1;
break;
case XFER_MW_DMA_2:
case XFER_MW_DMA_1:
case XFER_MW_DMA_0:
ret = set_timings_mdma(drive, pmif->kind, timings, timings2, speed, 0);
ret = set_timings_mdma(drive, pmif->kind, &tl[0], &tl[1], speed, 0);
break;
case XFER_SW_DMA_2:
case XFER_SW_DMA_1:
Expand All @@ -962,7 +963,11 @@ static int pmac_ide_tune_chipset(ide_drive_t *drive, const u8 speed)
ret = pmac_ide_do_setfeature(drive, speed);
if (ret)
return ret;


/* Apply timings to controller */
*timings = tl[0];
*timings2 = tl[1];

pmac_ide_do_update_timings(drive);

return 0;
Expand Down

0 comments on commit e284b9b

Please sign in to comment.