Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 58329
b: refs/heads/master
c: 15a4f94
h: refs/heads/master
i:
  58327: 94b431f
v: v3
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Jul 9, 2007
1 parent 2c11f32 commit 6ccb241
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 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: ecea57309e826c8aed020e4dae92b368f2eda2a5
refs/heads/master: 15a4f943e729d8ba215ee551df6d7988ba14ac00
16 changes: 15 additions & 1 deletion trunk/drivers/ide/ide-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -702,8 +702,22 @@ static unsigned int ide_get_mode_mask(ide_drive_t *drive, u8 base)
mask = id->dma_mword & hwif->mwdma_mask;
break;
case XFER_SW_DMA_0:
if (id->field_valid & 2)
if (id->field_valid & 2) {
mask = id->dma_1word & hwif->swdma_mask;
} else if (id->tDMA) {
/*
* ide_fix_driveid() doesn't convert ->tDMA to the
* CPU endianness so we need to do it here
*/
u8 mode = le16_to_cpu(id->tDMA);

/*
* if the mode is valid convert it to the mask
* (the maximum allowed mode is XFER_SW_DMA_2)
*/
if (mode <= 2)
mask = ((2 << mode) - 1) & hwif->swdma_mask;
}
break;
default:
BUG();
Expand Down

0 comments on commit 6ccb241

Please sign in to comment.