aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/cam_xpt.c
diff options
context:
space:
mode:
authorKenneth D. Merry <ken@FreeBSD.org>1999-02-18 18:08:39 +0000
committerKenneth D. Merry <ken@FreeBSD.org>1999-02-18 18:08:39 +0000
commit588b47e5d2c6796f49304072094b1f8acbe879db (patch)
treea263a60a5287e2292db20edb454ea2e8f0080fb1 /sys/cam/cam_xpt.c
parent1a8f70b737615a1d33d3a0b62f00dd096396eaf3 (diff)
downloadsrc-588b47e5d2c6796f49304072094b1f8acbe879db.tar.gz
src-588b47e5d2c6796f49304072094b1f8acbe879db.zip
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 <andre.albsmeier@mchp.siemens.de> for the Atlas III inquiry information. Reviewed by: gibbs
Notes
Notes: svn path=/head/; revision=44117
Diffstat (limited to 'sys/cam/cam_xpt.c')
-rw-r--r--sys/cam/cam_xpt.c24
1 files changed, 18 insertions, 6 deletions
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 <sys/param.h>
#include <sys/systm.h>
@@ -279,8 +279,6 @@ 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*", "*" },
@@ -288,6 +286,19 @@ static struct xpt_quirk_entry xpt_quirk_table[] =
},
{
/*
+ * 18 Gig Atlas III, same problem as the 9G version.
+ * Reported by: Andre Albsmeier
+ * <andre.albsmeier@mchp.siemens.de>
+ *
+ * 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
* Reported by: Bret Ford <bford@uop.cs.uop.edu>
* and: Martin Renters <martin@tdc.on.ca>
@@ -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