Re: [PATCH] lsi53c895a: Add missing registers and workaround for OS/2 Warp SYM8XX.ADD driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/30/2010 07:07 AM, Nicholas A. Bellinger wrote:
      case 0x06: /* SDID */
-        if ((val&  0xf) != (s->ssid&  0xf))
-            BADF("Destination ID does not match SSID\n");
+        /*
+         * This workaround is required by the SYM8XX.ADD driver for OS/2 Warp.
+         */
+        if ((val&  0xf) != (s->ssid&  0xf)) {
+            DPRINTF("Destination ID does not match SSID, val: %02x"
+                    " s->ssid: %02x, fixing up val\n", val, s->ssid);
+            val = s->ssid;
+        }
          s->sdid = val&  0xf;
          break;

I don't think the write is bogus, as the manual says "Writing these bits set the SCSI ID of the intended initiator or target during SCSI reselection or selection phases, respectively".

The value is never used by the device model, only read/written according to SCRIPTS and register read/writes. How does the OS/2 driver use it? Have you tried, just removing the "if" without replacing it?

Paolo

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux