Lines Matching full:vpd

1862 	const struct scsi_vpd *vpd;  in sd_get_unique_id()  local
1867 vpd = rcu_dereference(sdev->vpd_pg83); in sd_get_unique_id()
1868 if (!vpd) in sd_get_unique_id()
1872 for (d = vpd->data + 4; d < vpd->data + vpd->len; d += d[3] + 4) { in sd_get_unique_id()
3312 /* LBP VPD page not provided */ in sd_discard_mode()
3318 /* LBP VPD page tells us what to use */ in sd_discard_mode()
3334 struct scsi_vpd *vpd; in sd_read_block_limits() local
3338 vpd = rcu_dereference(sdkp->device->vpd_pgb0); in sd_read_block_limits()
3339 if (!vpd || vpd->len < 16) in sd_read_block_limits()
3342 sdkp->min_xfer_blocks = get_unaligned_be16(&vpd->data[6]); in sd_read_block_limits()
3343 sdkp->max_xfer_blocks = get_unaligned_be32(&vpd->data[8]); in sd_read_block_limits()
3344 sdkp->opt_xfer_blocks = get_unaligned_be32(&vpd->data[12]); in sd_read_block_limits()
3346 if (vpd->len >= 64) { in sd_read_block_limits()
3349 sdkp->max_ws_blocks = (u32)get_unaligned_be64(&vpd->data[36]); in sd_read_block_limits()
3354 lba_count = get_unaligned_be32(&vpd->data[20]); in sd_read_block_limits()
3355 desc_count = get_unaligned_be32(&vpd->data[24]); in sd_read_block_limits()
3360 sdkp->unmap_granularity = get_unaligned_be32(&vpd->data[28]); in sd_read_block_limits()
3362 if (vpd->data[32] & 0x80) in sd_read_block_limits()
3364 get_unaligned_be32(&vpd->data[32]) & ~(1 << 31); in sd_read_block_limits()
3367 sdkp->max_atomic = get_unaligned_be32(&vpd->data[44]); in sd_read_block_limits()
3368 sdkp->atomic_alignment = get_unaligned_be32(&vpd->data[48]); in sd_read_block_limits()
3369 sdkp->atomic_granularity = get_unaligned_be32(&vpd->data[52]); in sd_read_block_limits()
3370 sdkp->max_atomic_with_boundary = get_unaligned_be32(&vpd->data[56]); in sd_read_block_limits()
3371 sdkp->max_atomic_boundary = get_unaligned_be32(&vpd->data[60]); in sd_read_block_limits()
3380 /* Parse the Block Limits Extension VPD page (0xb7) */
3383 struct scsi_vpd *vpd; in sd_read_block_limits_ext() local
3386 vpd = rcu_dereference(sdkp->device->vpd_pgb7); in sd_read_block_limits_ext()
3387 if (vpd && vpd->len >= 2) in sd_read_block_limits_ext()
3388 sdkp->rscs = vpd->data[5] & 1; in sd_read_block_limits_ext()
3396 struct scsi_vpd *vpd; in sd_read_block_characteristics() local
3400 vpd = rcu_dereference(sdkp->device->vpd_pgb1); in sd_read_block_characteristics()
3402 if (!vpd || vpd->len <= 8) { in sd_read_block_characteristics()
3407 rot = get_unaligned_be16(&vpd->data[4]); in sd_read_block_characteristics()
3408 sdkp->zoned = (vpd->data[8] >> 4) & 3; in sd_read_block_characteristics()
3426 * sd_read_block_provisioning - Query provisioning VPD page
3431 struct scsi_vpd *vpd; in sd_read_block_provisioning() local
3437 vpd = rcu_dereference(sdkp->device->vpd_pgb2); in sd_read_block_provisioning()
3439 if (!vpd || vpd->len < 8) { in sd_read_block_provisioning()
3445 sdkp->lbpu = (vpd->data[5] >> 7) & 1; /* UNMAP */ in sd_read_block_provisioning()
3446 sdkp->lbpws = (vpd->data[5] >> 6) & 1; /* WRITE SAME(16) w/ UNMAP */ in sd_read_block_provisioning()
3447 sdkp->lbpws10 = (vpd->data[5] >> 5) & 1; /* WRITE SAME(10) w/ UNMAP */ in sd_read_block_provisioning()
3462 struct scsi_vpd *vpd; in sd_read_write_same() local
3468 * Information VPD page (SAT). in sd_read_write_same()
3471 vpd = rcu_dereference(sdev->vpd_pg89); in sd_read_write_same()
3472 if (vpd) in sd_read_write_same()
3526 * Concurrent Positioning Ranges VPD: there can be at most 256 ranges, in sd_read_cpr()
3538 "Invalid Concurrent Positioning Ranges VPD page\n"); in sd_read_cpr()
3740 * support the block characteristics VPD page, which will in sd_revalidate_disk()