[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH] lsi53c895a: Add missing registers and workaroun
From: |
Nicholas A. Bellinger |
Subject: |
[Qemu-devel] Re: [PATCH] lsi53c895a: Add missing registers and workaround for OS/2 Warp SYM8XX.ADD driver |
Date: |
Thu, 30 Sep 2010 14:29:59 -0700 |
On Thu, 2010-09-30 at 10:07 +0200, Paolo Bonzini wrote:
> 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?
>
Hi Paolo,
Yeah, I think dropping this "if" should work just fine, but I left this
out because of the assumption that Paul (or someone else..?) put this in
for a specific reason..
Paul, do you have any comments here..?
Thanks,
--nab