Merging upstream version 2.11.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
6f6d3e85f8
commit
0f2367f2fa
533 changed files with 9033 additions and 4835 deletions
|
@ -79,6 +79,7 @@
|
|||
#define WDC_NVME_SN650_DEV_ID_3 0x2720
|
||||
#define WDC_NVME_SN650_DEV_ID_4 0x2721
|
||||
#define WDC_NVME_SN655_DEV_ID 0x2722
|
||||
#define WDC_NVME_SN655_DEV_ID_1 0x2723
|
||||
#define WDC_NVME_SN860_DEV_ID 0x2730
|
||||
#define WDC_NVME_SN660_DEV_ID 0x2704
|
||||
#define WDC_NVME_SN560_DEV_ID_1 0x2712
|
||||
|
@ -86,6 +87,8 @@
|
|||
#define WDC_NVME_SN560_DEV_ID_3 0x2714
|
||||
#define WDC_NVME_SN861_DEV_ID 0x2750
|
||||
#define WDC_NVME_SN861_DEV_ID_1 0x2751
|
||||
#define WDC_NVME_SN861_DEV_ID_2 0x2752
|
||||
#define WDC_NVME_SNTMP_DEV_ID 0x2761
|
||||
|
||||
/* This id's are no longer supported, delete ?? */
|
||||
#define WDC_NVME_SN550_DEV_ID 0x2708
|
||||
|
@ -138,6 +141,10 @@
|
|||
#define WDC_NVME_SN810_DEV_ID 0x5011
|
||||
#define WDC_NVME_SN820CL_DEV_ID 0x5037
|
||||
|
||||
#define WDC_NVME_SN5100S_DEV_ID_1 0x5061
|
||||
#define WDC_NVME_SN5100S_DEV_ID_2 0x5062
|
||||
#define WDC_NVME_SN5100S_DEV_ID_3 0x5063
|
||||
|
||||
#define WDC_DRIVE_CAP_CAP_DIAG 0x0000000000000001
|
||||
#define WDC_DRIVE_CAP_INTERNAL_LOG 0x0000000000000002
|
||||
#define WDC_DRIVE_CAP_C1_LOG_PAGE 0x0000000000000004
|
||||
|
@ -1530,7 +1537,8 @@ static int wdc_get_vendor_id(struct nvme_dev *dev, uint32_t *vendor_id)
|
|||
static bool wdc_is_sn861(__u32 device_id)
|
||||
{
|
||||
if ((device_id == WDC_NVME_SN861_DEV_ID) ||
|
||||
(device_id == WDC_NVME_SN861_DEV_ID_1))
|
||||
(device_id == WDC_NVME_SN861_DEV_ID_1) ||
|
||||
(device_id == WDC_NVME_SN861_DEV_ID_2))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
@ -1822,6 +1830,7 @@ static __u64 wdc_get_drive_capabilities(nvme_root_t r, struct nvme_dev *dev)
|
|||
case WDC_NVME_SN650_DEV_ID_3:
|
||||
case WDC_NVME_SN650_DEV_ID_4:
|
||||
case WDC_NVME_SN655_DEV_ID:
|
||||
case WDC_NVME_SN655_DEV_ID_1:
|
||||
case WDC_NVME_SN550_DEV_ID:
|
||||
/* verify the 0xC0 log page is supported */
|
||||
if (wdc_nvme_check_supported_log_page(r, dev,
|
||||
|
@ -1872,6 +1881,8 @@ static __u64 wdc_get_drive_capabilities(nvme_root_t r, struct nvme_dev *dev)
|
|||
|
||||
case WDC_NVME_SN861_DEV_ID:
|
||||
case WDC_NVME_SN861_DEV_ID_1:
|
||||
case WDC_NVME_SN861_DEV_ID_2:
|
||||
case WDC_NVME_SNTMP_DEV_ID:
|
||||
capabilities |= (WDC_DRIVE_CAP_C0_LOG_PAGE |
|
||||
WDC_DRIVE_CAP_C3_LOG_PAGE |
|
||||
WDC_DRIVE_CAP_CA_LOG_PAGE |
|
||||
|
@ -1970,6 +1981,12 @@ static __u64 wdc_get_drive_capabilities(nvme_root_t r, struct nvme_dev *dev)
|
|||
fallthrough;
|
||||
case WDC_NVME_SN8000S_DEV_ID:
|
||||
fallthrough;
|
||||
case WDC_NVME_SN5100S_DEV_ID_1:
|
||||
fallthrough;
|
||||
case WDC_NVME_SN5100S_DEV_ID_2:
|
||||
fallthrough;
|
||||
case WDC_NVME_SN5100S_DEV_ID_3:
|
||||
fallthrough;
|
||||
case WDC_NVME_SN740_DEV_ID:
|
||||
case WDC_NVME_SN740_DEV_ID_1:
|
||||
case WDC_NVME_SN740_DEV_ID_2:
|
||||
|
@ -2357,28 +2374,24 @@ end:
|
|||
static bool get_dev_mgment_cbs_data(nvme_root_t r, struct nvme_dev *dev,
|
||||
__u8 log_id, void **cbs_data)
|
||||
{
|
||||
int ret = -1;
|
||||
bool found = false;
|
||||
__u8 uuid_ix = 0;
|
||||
__u8 lid = 0;
|
||||
*cbs_data = NULL;
|
||||
__u32 device_id, read_vendor_id;
|
||||
__u32 device_id = 0, vendor_id = 0;
|
||||
bool uuid_present = false;
|
||||
int index = 0, uuid_index = 0;
|
||||
struct nvme_id_uuid_list uuid_list;
|
||||
|
||||
ret = wdc_get_pci_ids(r, dev, &device_id, &read_vendor_id);
|
||||
if (ret == 0) {
|
||||
if (device_id == WDC_NVME_ZN350_DEV_ID || device_id == WDC_NVME_ZN350_DEV_ID_1) {
|
||||
lid = WDC_NVME_GET_DEV_MGMNT_LOG_PAGE_ID_C8;
|
||||
uuid_ix = 0;
|
||||
} else {
|
||||
lid = WDC_NVME_GET_DEV_MGMNT_LOG_PAGE_ID;
|
||||
}
|
||||
} else {
|
||||
fprintf(stderr, "ERROR: WDC: get pci ids: %d\n", ret);
|
||||
return false;
|
||||
}
|
||||
/* The wdc_get_pci_ids function could fail when drives are connected
|
||||
* via a PCIe switch. Therefore, the return code is intentionally
|
||||
* being ignored. The device_id and vendor_id variables have been
|
||||
* initialized to 0 so the code can continue on without issue for
|
||||
* both cases: wdc_get_pci_ids successful or failed.
|
||||
*/
|
||||
wdc_get_pci_ids(r, dev, &device_id, &vendor_id);
|
||||
|
||||
lid = WDC_NVME_GET_DEV_MGMNT_LOG_PAGE_ID;
|
||||
|
||||
typedef struct nvme_id_uuid_list_entry *uuid_list_entry;
|
||||
|
||||
|
@ -6909,6 +6922,7 @@ static int wdc_get_c0_log_page(nvme_root_t r, struct nvme_dev *dev, char *format
|
|||
case WDC_NVME_SN650_DEV_ID_3:
|
||||
case WDC_NVME_SN650_DEV_ID_4:
|
||||
case WDC_NVME_SN655_DEV_ID:
|
||||
case WDC_NVME_SN655_DEV_ID_1:
|
||||
if (uuid_index == 0) {
|
||||
ret = nvme_get_print_ocp_cloud_smart_log(dev,
|
||||
uuid_index,
|
||||
|
@ -10832,13 +10846,13 @@ static void wdc_print_nand_stats_json(__u16 version, void *data)
|
|||
le32_to_cpu(nand_stats_v3->ssd_correction_counts[12]));
|
||||
json_object_add_value_uint(root, "System data % life-used",
|
||||
nand_stats_v3->percent_life_used);
|
||||
json_object_add_value_uint64(root, "User Data Erase Counts - SLC Min",
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[0]));
|
||||
json_object_add_value_uint64(root, "User Data Erase Counts - SLC Max",
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[1]));
|
||||
json_object_add_value_uint64(root, "User Data Erase Counts - TLC Min",
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[2]));
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[0]));
|
||||
json_object_add_value_uint64(root, "User Data Erase Counts - TLC Max",
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[1]));
|
||||
json_object_add_value_uint64(root, "User Data Erase Counts - SLC Min",
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[2]));
|
||||
json_object_add_value_uint64(root, "User Data Erase Counts - SLC Max",
|
||||
le64_to_cpu(nand_stats_v3->user_data_erase_counts[3]));
|
||||
temp_ptr = (__u64 *)nand_stats_v3->program_fail_count;
|
||||
temp_norm = (__u16)(*temp_ptr & 0x000000000000FFFF);
|
||||
|
@ -11305,12 +11319,14 @@ static int wdc_vs_drive_info(int argc, char **argv,
|
|||
case WDC_NVME_SN650_DEV_ID_3:
|
||||
case WDC_NVME_SN650_DEV_ID_4:
|
||||
case WDC_NVME_SN655_DEV_ID:
|
||||
case WDC_NVME_SN655_DEV_ID_1:
|
||||
case WDC_NVME_SN560_DEV_ID_1:
|
||||
case WDC_NVME_SN560_DEV_ID_2:
|
||||
case WDC_NVME_SN560_DEV_ID_3:
|
||||
case WDC_NVME_SN550_DEV_ID:
|
||||
case WDC_NVME_ZN350_DEV_ID:
|
||||
case WDC_NVME_ZN350_DEV_ID_1:
|
||||
case WDC_NVME_SNTMP_DEV_ID:
|
||||
ret = wdc_do_drive_info(dev, &result);
|
||||
|
||||
if (!ret) {
|
||||
|
@ -11429,6 +11445,7 @@ static int wdc_vs_drive_info(int argc, char **argv,
|
|||
break;
|
||||
case WDC_NVME_SN861_DEV_ID:
|
||||
case WDC_NVME_SN861_DEV_ID_1:
|
||||
case WDC_NVME_SN861_DEV_ID_2:
|
||||
data_len = sizeof(info);
|
||||
num_dwords = data_len / 4;
|
||||
if (data_len % 4 != 0)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue