patch-2.3.32 linux/drivers/block/ide-probe.c
Next file: linux/drivers/block/ide.c
Previous file: linux/drivers/block/ide-disk.c
Back to the patch index
Back to the overall index
- Lines: 45
- Date:
Sun Dec 12 22:58:00 1999
- Orig file:
v2.3.31/linux/drivers/block/ide-probe.c
- Orig date:
Thu Nov 18 20:25:37 1999
diff -u --recursive --new-file v2.3.31/linux/drivers/block/ide-probe.c linux/drivers/block/ide-probe.c
@@ -56,7 +56,8 @@
ide_input_data(drive, id, SECTOR_WORDS); /* read 512 bytes of id info */
ide__sti(); /* local CPU only */
ide_fix_driveid(id);
-
+ if (!drive->forced_lun)
+ drive->last_lun = id->word126 & 0x7;
#if defined (CONFIG_SCSI_EATA_DMA) || defined (CONFIG_SCSI_EATA_PIO) || defined (CONFIG_SCSI_EATA)
/*
* EATA SCSI controllers do a hardware ATA emulation:
@@ -703,7 +704,8 @@
static int hwif_init (ide_hwif_t *hwif)
{
- void (*rfn)(void);
+ ide_drive_t *drive;
+ void (*rfn)(request_queue_t *);
if (!hwif->present)
return 0;
@@ -785,10 +787,23 @@
init_gendisk(hwif);
blk_dev[hwif->major].data = hwif;
- blk_dev[hwif->major].request_fn = rfn;
blk_dev[hwif->major].queue = ide_get_queue;
read_ahead[hwif->major] = 8; /* (4kB) */
hwif->present = 1; /* success */
+
+ /*
+ * FIXME(eric) - This needs to be tested. I *think* that this
+ * is correct. Also, I believe that there is no longer any
+ * reason to have multiple functions (do_ide[0-7]_request)
+ * functions - the queuedata field could be used to indicate
+ * the correct hardware group - either this, or we could add
+ * a new field to request_queue_t to hold this information.
+ */
+ drive = &hwif->drives[0];
+ blk_init_queue(&drive->queue, rfn);
+
+ drive = &hwif->drives[1];
+ blk_init_queue(&drive->queue, rfn);
#if (DEBUG_SPINLOCK > 0)
{
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)