Date: Wed, 7 Aug 1996 21:15:43 +1000 From: Bruce Evans <bde@zeta.org.au> To: current@FreeBSD.ORG, imb@asstdc.com.au Subject: Re: patch for consideration .. multi-block IDE Message-ID: <199608071115.VAA17880@godzilla.zeta.org.au>
index | next in thread | raw e-mail
>I noted that multi-block transfers had been broken .. the following patch >corrects the problem (a line missed in the rearrange, I suspect) .. >*** /sys/i386/isa/wd.c.orig Sun Jul 28 06:52:04 1996 >--- /sys/i386/isa/wd.c Wed Aug 7 18:59:08 1996 >*************** >*** 1665,1670 **** >--- 1665,1671 ---- > du->dk_dd.d_type = DTYPE_ESDI; > du->dk_dd.d_subtype |= DSTYPE_GEOMETRY; > #endif >+ du->dk_multi = wp->wdp_nsecperint & 0xff; > > return (0); > } This is wrong too. du->dk_multi is actually the number of sectors transferred per interrupt (not a multi-mode flag or count) and should be set to 1 unless multi-mode will actually be used, i.e., unless 1) The drive claims to support it, i.e., the above du->dk_multi > 1. 2) It is configured, i.e., (du->cfg_flags & WDOPT_MULTIMASK) > 1. 3) The configured count is <= the supported count. This restriction probably shouldn't exist (use min(configured, supported)). 4) Issuing of the command to program multi-mode succeeds. 5) The command to program multi-mode succeeds. Currently, the exit status of the command is thrown away. It is inconvenient to do all this at probe time. Brucehome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608071115.VAA17880>
