From 237a27d0698d6a93908a92b38f24e726e0a3c565 Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Thu, 8 Aug 2019 02:25:34 +0000 Subject: [PATCH] MFC r350150: Properly report ACS revisions alike to kernel. --- sbin/camcontrol/camcontrol.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sbin/camcontrol/camcontrol.c b/sbin/camcontrol/camcontrol.c index e3d33ccc3c2..a98b6a7af9a 100644 --- a/sbin/camcontrol/camcontrol.c +++ b/sbin/camcontrol/camcontrol.c @@ -1497,6 +1497,7 @@ atasata(struct ata_params *parm) static void atacapprint(struct ata_params *parm) { + const char *proto; u_int32_t lbasize = (u_int32_t)parm->lba_size_1 | ((u_int32_t)parm->lba_size_2 << 16); @@ -1507,7 +1508,19 @@ atacapprint(struct ata_params *parm) printf("\n"); printf("protocol "); - printf("ATA/ATAPI-%d", ata_version(parm->version_major)); + proto = (parm->config == ATA_PROTO_CFA) ? "CFA" : + (parm->config & ATA_PROTO_ATAPI) ? "ATAPI" : "ATA"; + if (ata_version(parm->version_major) == 0) { + printf("%s", proto); + } else if (ata_version(parm->version_major) <= 7) { + printf("%s-%d", proto, + ata_version(parm->version_major)); + } else if (ata_version(parm->version_major) == 8) { + printf("%s8-ACS", proto); + } else { + printf("ACS-%d %s", + ata_version(parm->version_major) - 7, proto); + } if (parm->satacapabilities && parm->satacapabilities != 0xffff) { if (parm->satacapabilities & ATA_SATA_GEN3) printf(" SATA 3.x\n"); -- 2.45.0