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
This commit is contained in:
parent
1a8f70b737
commit
588b47e5d2
@ -26,7 +26,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* 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/param.h>
|
||||||
#include <sys/systm.h>
|
#include <sys/systm.h>
|
||||||
@ -279,13 +279,24 @@ static struct xpt_quirk_entry xpt_quirk_table[] =
|
|||||||
* will need to be made specific to the firmware revisions
|
* will need to be made specific to the firmware revisions
|
||||||
* with the problem.
|
* 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 */
|
/* Reports QUEUE FULL for temporary resource shortages */
|
||||||
{ T_DIRECT, SIP_MEDIA_FIXED, quantum, "QM39100*", "*" },
|
{ T_DIRECT, SIP_MEDIA_FIXED, quantum, "QM39100*", "*" },
|
||||||
/*quirks*/0, /*mintags*/24, /*maxtags*/32
|
/*quirks*/0, /*mintags*/24, /*maxtags*/32
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* 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
|
* Broken tagged queuing drive
|
||||||
@ -1377,14 +1388,15 @@ xpt_announce_periph(struct cam_periph *periph, char *announce_string)
|
|||||||
speed *= (0x01 << cts.bus_width);
|
speed *= (0x01 << cts.bus_width);
|
||||||
mb = speed / 1000;
|
mb = speed / 1000;
|
||||||
if (mb > 0)
|
if (mb > 0)
|
||||||
printf("%s%d: %d.%dMB/s transfers", periph->periph_name,
|
printf("%s%d: %d.%03dMB/s transfers",
|
||||||
periph->unit_number, mb, speed % 1000);
|
periph->periph_name, periph->unit_number,
|
||||||
|
mb, speed % 1000);
|
||||||
else
|
else
|
||||||
printf("%s%d: %dKB/s transfers", periph->periph_name,
|
printf("%s%d: %dKB/s transfers", periph->periph_name,
|
||||||
periph->unit_number, (speed % 1000) * 1000);
|
periph->unit_number, (speed % 1000) * 1000);
|
||||||
if ((cts.valid & CCB_TRANS_SYNC_OFFSET_VALID) != 0
|
if ((cts.valid & CCB_TRANS_SYNC_OFFSET_VALID) != 0
|
||||||
&& cts.sync_offset != 0) {
|
&& cts.sync_offset != 0) {
|
||||||
printf(" (%d.%dMHz, offset %d", freq / 1000,
|
printf(" (%d.%03dMHz, offset %d", freq / 1000,
|
||||||
freq % 1000, cts.sync_offset);
|
freq % 1000, cts.sync_offset);
|
||||||
}
|
}
|
||||||
if ((cts.valid & CCB_TRANS_BUS_WIDTH_VALID) != 0
|
if ((cts.valid & CCB_TRANS_BUS_WIDTH_VALID) != 0
|
||||||
|
Loading…
Reference in New Issue
Block a user