From 588b47e5d2c6796f49304072094b1f8acbe879db Mon Sep 17 00:00:00 2001 From: "Kenneth D. Merry" Date: Thu, 18 Feb 1999 18:08:39 +0000 Subject: Fix sync rate and transfer rate printouts in xpt_announce_periph(). Sync rates like 4.032MHz were getting printed as 4.32MHz. Also, add a quirk entry for the 18G Quantum Atlas III. Like most other recent Quantum drives, it bogusly reports queue full. Thanks to Andre Albsmeier for the Atlas III inquiry information. Reviewed by: gibbs --- sys/cam/cam_xpt.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'sys') diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c index 45ba08ef2fa0..257c83047b21 100644 --- a/sys/cam/cam_xpt.c +++ b/sys/cam/cam_xpt.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: cam_xpt.c,v 1.42 1999/01/20 23:00:31 mjacob Exp $ + * $Id: cam_xpt.c,v 1.43 1999/01/27 20:09:16 dillon Exp $ */ #include #include @@ -279,13 +279,24 @@ static struct xpt_quirk_entry xpt_quirk_table[] = * will need to be made specific to the firmware revisions * with the problem. * - * XXX need to add a quirk for the 18G version of this - * drive, once inquiry information is known. */ /* Reports QUEUE FULL for temporary resource shortages */ { T_DIRECT, SIP_MEDIA_FIXED, quantum, "QM39100*", "*" }, /*quirks*/0, /*mintags*/24, /*maxtags*/32 }, + { + /* + * 18 Gig Atlas III, same problem as the 9G version. + * Reported by: Andre Albsmeier + * + * + * For future reference, the drive with the problem was: + * QUANTUM QM318000TD-S N491 + */ + /* Reports QUEUE FULL for temporary resource shortages */ + { T_DIRECT, SIP_MEDIA_FIXED, quantum, "QM318000*", "*" }, + /*quirks*/0, /*mintags*/24, /*maxtags*/32 + }, { /* * Broken tagged queuing drive @@ -1377,14 +1388,15 @@ xpt_announce_periph(struct cam_periph *periph, char *announce_string) speed *= (0x01 << cts.bus_width); mb = speed / 1000; if (mb > 0) - printf("%s%d: %d.%dMB/s transfers", periph->periph_name, - periph->unit_number, mb, speed % 1000); + printf("%s%d: %d.%03dMB/s transfers", + periph->periph_name, periph->unit_number, + mb, speed % 1000); else printf("%s%d: %dKB/s transfers", periph->periph_name, periph->unit_number, (speed % 1000) * 1000); if ((cts.valid & CCB_TRANS_SYNC_OFFSET_VALID) != 0 && cts.sync_offset != 0) { - printf(" (%d.%dMHz, offset %d", freq / 1000, + printf(" (%d.%03dMHz, offset %d", freq / 1000, freq % 1000, cts.sync_offset); } if ((cts.valid & CCB_TRANS_BUS_WIDTH_VALID) != 0 -- cgit v1.2.3