{
        struct hd_driveid *id = drive->id;
 
-       drive->mult_count = 0;
        if (id->max_multsect) {
 #ifdef CONFIG_IDEDISK_MULTI_MODE
-               id->multsect = ((id->max_multsect/2) > 1) ? id->max_multsect : 0;
-               id->multsect_valid = id->multsect ? 1 : 0;
-               drive->mult_req = id->multsect_valid ? id->max_multsect : 0;
-               drive->special.b.set_multmode = drive->mult_req ? 1 : 0;
-#else  /* original, pre IDE-NFG, per request of AC */
-               drive->mult_req = 0;
-               if (drive->mult_req > id->max_multsect)
-                       drive->mult_req = id->max_multsect;
-               if (drive->mult_req || ((id->multsect_valid & 1) && id->multsect))
-                       drive->special.b.set_multmode = 1;
+               if ((id->max_multsect / 2) > 1) {
+                       id->multsect = id->max_multsect;
+                       id->multsect_valid = 1;
+               } else {
+                       id->multsect = 0;
+                       id->multsect_valid = 0;
+               }
+               drive->mult_req = id->multsect;
 #endif
+               if ((id->multsect_valid & 1) && id->multsect)
+                       drive->special.b.set_multmode = 1;
        }
 }