]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/scsi/esp_scsi.c
Merge tag 'for-linus-5.6-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubca...
[linux.git] / drivers / scsi / esp_scsi.c
index 4fc3eee3138b71a781460cc920da11e533556675..89afa31e33cba889a9af63dd5253cf8a72f7ff0d 100644 (file)
@@ -243,8 +243,6 @@ static void esp_set_all_config3(struct esp *esp, u8 val)
 /* Reset the ESP chip, _not_ the SCSI bus. */
 static void esp_reset_esp(struct esp *esp)
 {
-       u8 family_code, version;
-
        /* Now reset the ESP chip */
        scsi_esp_cmd(esp, ESP_CMD_RC);
        scsi_esp_cmd(esp, ESP_CMD_NULL | ESP_CMD_DMA);
@@ -257,14 +255,19 @@ static void esp_reset_esp(struct esp *esp)
         */
        esp->max_period = ((35 * esp->ccycle) / 1000);
        if (esp->rev == FAST) {
-               version = esp_read8(ESP_UID);
-               family_code = (version & 0xf8) >> 3;
-               if (family_code == 0x02)
+               u8 family_code = ESP_FAMILY(esp_read8(ESP_UID));
+
+               if (family_code == ESP_UID_F236) {
                        esp->rev = FAS236;
-               else if (family_code == 0x0a)
+               } else if (family_code == ESP_UID_HME) {
                        esp->rev = FASHME; /* Version is usually '5'. */
-               else
+               } else if (family_code == ESP_UID_FSC) {
+                       esp->rev = FSC;
+                       /* Enable Active Negation */
+                       esp_write8(ESP_CONFIG4_RADE, ESP_CFG4);
+               } else {
                        esp->rev = FAS100A;
+               }
                esp->min_period = ((4 * esp->ccycle) / 1000);
        } else {
                esp->min_period = ((5 * esp->ccycle) / 1000);
@@ -308,7 +311,7 @@ static void esp_reset_esp(struct esp *esp)
 
        case FAS236:
        case PCSCSI:
-               /* Fast 236, AM53c974 or HME */
+       case FSC:
                esp_write8(esp->config2, ESP_CFG2);
                if (esp->rev == FASHME) {
                        u8 cfg3 = esp->target[0].esp_config3;
@@ -2374,6 +2377,7 @@ static const char *esp_chip_names[] = {
        "ESP236",
        "FAS236",
        "AM53C974",
+       "53CF9x-2",
        "FAS100A",
        "FAST",
        "FASHME",