aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/ide.h
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-06-15 12:52:54 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-06-15 12:52:54 -0400
commit5880b5de7101cc123778c5d17d4f3986351f3122 (patch)
tree30deb7cee9dd1efadb2a2b27c6b5d38a0c055fd6 /include/linux/ide.h
parentc9ef59ff01b6bd1c7360a64fcc8556a1193c2ed0 (diff)
ide: don't enable IORDY at a probe time
* Add 'unsigned long port_flags' field to ide_hwif_t. * Add IDE_PFLAG_PROBING port flag and keep it set during probing. * Fix ide_pio_need_iordy() to not enable IORDY at a probe time (IORDY may lead to controller lock up on certain controllers if the port is not occupied). Loosely based on the recent libata's fix by Tejun, thanks to Alan for the hint that IDE may also need it. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux/ide.h')
-rw-r--r--include/linux/ide.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 8c7f5e50e912..8771d49aa874 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -661,6 +661,10 @@ struct ide_dma_ops {
661 u8 (*dma_sff_read_status)(struct hwif_s *); 661 u8 (*dma_sff_read_status)(struct hwif_s *);
662}; 662};
663 663
664enum {
665 IDE_PFLAG_PROBING = (1 << 0),
666};
667
664struct ide_host; 668struct ide_host;
665 669
666typedef struct hwif_s { 670typedef struct hwif_s {
@@ -677,6 +681,8 @@ typedef struct hwif_s {
677 681
678 ide_drive_t *devices[MAX_DRIVES + 1]; 682 ide_drive_t *devices[MAX_DRIVES + 1];
679 683
684 unsigned long port_flags;
685
680 u8 major; /* our major number */ 686 u8 major; /* our major number */
681 u8 index; /* 0 for ide0; 1 for ide1; ... */ 687 u8 index; /* 0 for ide0; 1 for ide1; ... */
682 u8 channel; /* for dual-port chips: 0=primary, 1=secondary */ 688 u8 channel; /* for dual-port chips: 0=primary, 1=secondary */