Call setup_translation() from map_hd_drive().
authorKevin O'Connor <kevin@koconnor.net>
Tue, 28 Dec 2010 02:08:53 +0000 (21:08 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Tue, 28 Dec 2010 02:08:53 +0000 (21:08 -0500)
Unify the calling of setup_translation().

src/ahci.c
src/ata.c
src/block.c
src/disk.h
src/usb-msc.c
src/virtio-blk.c

index a7f458f4be32896853747d0be308975c1ee39722..8fd2e14d171743690e4961dc94a00bed31f9a055 100644 (file)
@@ -379,8 +379,6 @@ ahci_port_init(struct ahci_ctrl_s *ctrl, u32 pnr)
                  , ata_extract_version(buffer)
                  , (u32)adjsize, adjprefix);
 
-        // Setup disk geometry translation.
-        setup_translation(&port->drive);
         // Register with bcv system.
         boot_add_hd(&port->drive, -1);
     } else {
index 872c5e3f92a652473610a66515245da1293a49cd..86b89b55b191d95cd30cfa07ebbb9004406ddea1 100644 (file)
--- a/src/ata.c
+++ b/src/ata.c
@@ -834,9 +834,6 @@ init_drive_ata(struct atadrive_s *dummy, u16 *buffer)
              , (u32)adjsize, adjprefix);
     dprintf(1, "%s\n", adrive_g->drive.desc);
 
-    // Setup disk geometry translation.
-    setup_translation(&adrive_g->drive);
-
     int prio = bootprio_find_ata_device(adrive_g->chan_gf->pci_bdf,
                                         adrive_g->chan_gf->chanid,
                                         adrive_g->slave);
index 6a3faa300e3778ffc7b759b6976836222cd2b1ee..dafaaa6a22eb350562be11bf6e092d30f1011594 100644 (file)
@@ -72,7 +72,7 @@ get_translation(struct drive_s *drive_g)
     return TRANSLATION_LBA;
 }
 
-void
+static void
 setup_translation(struct drive_s *drive_g)
 {
     u8 translation = get_translation(drive_g);
@@ -221,6 +221,9 @@ map_hd_drive(struct drive_s *drive_g)
     dprintf(3, "Mapping hd drive %p to %d\n", drive_g, hdid);
     add_drive(Drives.idmap[EXTTYPE_HD], &bda->hdcount, drive_g);
 
+    // Setup disk geometry translation.
+    setup_translation(drive_g);
+
     // Fill "fdpt" structure.
     fill_fdpt(drive_g, hdid);
 }
index a598bb4ffd95a7cfda4fa49f2262c97faf315913..480201129a1240e6f2837dff79b3a9c8853eeb51 100644 (file)
@@ -230,7 +230,6 @@ struct drives_s {
 extern struct drives_s Drives;
 struct drive_s *getDrive(u8 exttype, u8 extdriveoffset);
 int getDriveId(u8 exttype, struct drive_s *drive_g);
-void setup_translation(struct drive_s *drive_g);
 void map_floppy_drive(struct drive_s *drive_g);
 void map_hd_drive(struct drive_s *drive_g);
 void map_cd_drive(struct drive_s *drive_g);
index 2a6c31a0e706f4a75f91b673c3a12dc2c5e4be3b..877ece47389870b0235af61021f7f7fc14076ea5 100644 (file)
@@ -167,9 +167,6 @@ setup_drive_hd(struct disk_op_s *op)
     op->drive_g->sectors = sectors;
     dprintf(1, "USB MSC blksize=%d sectors=%d\n", blksize, sectors);
 
-    // Setup disk geometry translation.
-    setup_translation(op->drive_g);
-
     // Register with bcv system.
     boot_add_hd(op->drive_g, -1);
 
index 834523a6c4a321c0e9cf2a5357f0ab77b3291af3..6b491641a9c9e0fcf8b01f6d8693146e7ffe0ef2 100644 (file)
@@ -155,7 +155,6 @@ init_virtio_blk(u16 bdf)
              pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf));
     vdrive_g->drive.desc = desc;
 
-    setup_translation(&vdrive_g->drive);
     boot_add_hd(&vdrive_g->drive, bootprio_find_pci_device(bdf));
 
     vp_set_status(ioaddr, VIRTIO_CONFIG_S_ACKNOWLEDGE |