lkml.org 
[lkml]   [2005]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch ide-dev 5/9] fix setting LBA bit in Device register for REQ_DRIVE_TASKFILE

Don't set LBA bit in Device register for the following cases:

* Power Management requests
(WIN_FLUSH_CACHE[_EXT], WIN_STANDBYNOW1, WIN_IDLEIMMEDIATE commands)
* special commands (WIN_SPECIFY, WIN_RESTORE, WIN_SETMULT)
* /proc/ide/ SMART support (WIN_SMART with SMART_ENABLE,
SMART_READ_VALUES and SMART_READ_THRESHOLDS subcommands)
* write cache enabling/disabling in ide-disk
(WIN_SETFEATURES with SETFEATURES_{EN,DIS}_WCACHE)
* write cache flushing in ide-disk (WIN_FLUSH_CACHE[_EXT])
* acoustic management in ide-disk
(WIN_SETFEATURES with SETFEATURES_{EN,DIS}_AAM)
* door (un)locking in ide-disk (WIN_DOORLOCK, WIN_DOORUNLOCK)
* /proc/ide/hd?/identify support (WIN_IDENTIFY)

diff -Nru a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
--- a/drivers/ide/ide-taskfile.c 2005-02-20 01:27:04 +01:00
+++ b/drivers/ide/ide-taskfile.c 2005-02-20 01:27:04 +01:00
@@ -127,7 +127,7 @@
hwif->OUTB(tf->lbam, IDE_LCYL_REG);
hwif->OUTB(tf->lbah, IDE_HCYL_REG);

- hwif->OUTB((tf->device & HIHI) | drive->select.all, IDE_SELECT_REG);
+ hwif->OUTB((tf->device & HIHI) | (drive->select.all & 0xBF), IDE_SELECT_REG);

if (task->handler != NULL) {
if (task->prehandler != NULL) {
@@ -605,6 +605,9 @@
if (drive->addressing == 1)
tf->flags |= ATA_TFLAG_LBA48;

+ if (drive->select.b.lba)
+ tf->device |= ATA_LBA;
+
switch(req_task->data_phase) {
case TASKFILE_OUT_DMAQ:
case TASKFILE_OUT_DMA:
@@ -892,7 +895,7 @@
* select bit (master/slave) in the drive_head register. We must make
* sure that the desired drive is selected.
*/
- hwif->OUTB(tf->device | drive->select.all, IDE_SELECT_REG);
+ hwif->OUTB(tf->device | (drive->select.all & 0xBF), IDE_SELECT_REG);
switch(task->data_phase) {

case TASKFILE_OUT_DMAQ:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 14:10    [W:0.072 / U:0.416 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site