Lines Matching refs:buffer
117 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
158 char buffer[64]; in cache_type_store() local
198 if (scsi_mode_sense(sdp, 0x08, 8, buffer, sizeof(buffer), SD_TIMEOUT, in cache_type_store()
201 len = min_t(size_t, sizeof(buffer), data.length - data.header_length - in cache_type_store()
203 buffer_data = buffer + data.header_length + in cache_type_store()
1979 static int sd_read_protection_type(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_protection_type() argument
1985 if (scsi_device_protection(sdp) == 0 || (buffer[12] & 1) == 0) in sd_read_protection_type()
1988 type = ((buffer[12] >> 1) & 7) + 1; /* P_TYPE 0 = Type 1 */ in sd_read_protection_type()
2050 unsigned char *buffer) in read_capacity_16() argument
2069 memset(buffer, 0, RC16_LEN); in read_capacity_16()
2072 buffer, RC16_LEN, &sshdr, in read_capacity_16()
2106 sector_size = get_unaligned_be32(&buffer[8]); in read_capacity_16()
2107 lba = get_unaligned_be64(&buffer[0]); in read_capacity_16()
2109 if (sd_read_protection_type(sdkp, buffer) < 0) { in read_capacity_16()
2123 sdkp->physical_block_size = (1 << (buffer[13] & 0xf)) * sector_size; in read_capacity_16()
2126 alignment = ((buffer[14] & 0x3f) << 8 | buffer[15]) * sector_size; in read_capacity_16()
2132 if (buffer[14] & 0x80) { /* LBPME */ in read_capacity_16()
2135 if (buffer[14] & 0x40) /* LBPRZ */ in read_capacity_16()
2146 unsigned char *buffer) in read_capacity_10() argument
2159 memset(buffer, 0, 8); in read_capacity_10()
2162 buffer, 8, &sshdr, in read_capacity_10()
2188 sector_size = get_unaligned_be32(&buffer[4]); in read_capacity_10()
2189 lba = get_unaligned_be32(&buffer[0]); in read_capacity_10()
2230 sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_capacity() argument
2237 sector_size = read_capacity_16(sdkp, sdp, buffer); in sd_read_capacity()
2243 sector_size = read_capacity_10(sdkp, sdp, buffer); in sd_read_capacity()
2247 sector_size = read_capacity_10(sdkp, sdp, buffer); in sd_read_capacity()
2257 sector_size = read_capacity_16(sdkp, sdp, buffer); in sd_read_capacity()
2349 unsigned char *buffer, int len, struct scsi_mode_data *data, in sd_do_mode_sense() argument
2352 return scsi_mode_sense(sdp, dbd, modepage, buffer, len, in sd_do_mode_sense()
2362 sd_read_write_protect_flag(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_write_protect_flag() argument
2376 res = sd_do_mode_sense(sdp, 0, 0x3F, buffer, 192, &data, NULL); in sd_read_write_protect_flag()
2383 res = sd_do_mode_sense(sdp, 0, 0x3F, buffer, 4, &data, NULL); in sd_read_write_protect_flag()
2392 res = sd_do_mode_sense(sdp, 0, 0, buffer, 4, &data, NULL); in sd_read_write_protect_flag()
2398 res = sd_do_mode_sense(sdp, 0, 0x3F, buffer, 255, in sd_read_write_protect_flag()
2413 buffer[0], buffer[1], buffer[2], buffer[3]); in sd_read_write_protect_flag()
2423 sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_cache_type() argument
2462 res = sd_do_mode_sense(sdp, dbd, modepage, buffer, first_len, in sd_read_cache_type()
2494 res = sd_do_mode_sense(sdp, dbd, modepage, buffer, len, in sd_read_cache_type()
2501 u8 page_code = buffer[offset] & 0x3F; in sd_read_cache_type()
2502 u8 spf = buffer[offset] & 0x40; in sd_read_cache_type()
2519 offset += 4 + (buffer[offset+2] << 8) + in sd_read_cache_type()
2520 buffer[offset+3]; in sd_read_cache_type()
2522 offset += 2 + buffer[offset+1]; in sd_read_cache_type()
2537 sdkp->WCE = ((buffer[offset + 2] & 0x04) != 0); in sd_read_cache_type()
2538 sdkp->RCD = ((buffer[offset + 2] & 0x01) != 0); in sd_read_cache_type()
2540 sdkp->WCE = ((buffer[offset + 2] & 0x01) == 0); in sd_read_cache_type()
2598 static void sd_read_app_tag_own(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_app_tag_own() argument
2611 res = scsi_mode_sense(sdp, 1, 0x0a, buffer, 36, SD_TIMEOUT, in sd_read_app_tag_own()
2627 if ((buffer[offset] & 0x3f) != 0x0a) { in sd_read_app_tag_own()
2632 if ((buffer[offset + 5] & 0x80) == 0) in sd_read_app_tag_own()
2648 unsigned char *buffer = kmalloc(vpd_len, GFP_KERNEL); in sd_read_block_limits() local
2650 if (!buffer || in sd_read_block_limits()
2652 scsi_get_vpd_page(sdkp->device, 0xb0, buffer, vpd_len)) in sd_read_block_limits()
2656 get_unaligned_be16(&buffer[6]) * sector_sz); in sd_read_block_limits()
2658 sdkp->max_xfer_blocks = get_unaligned_be32(&buffer[8]); in sd_read_block_limits()
2659 sdkp->opt_xfer_blocks = get_unaligned_be32(&buffer[12]); in sd_read_block_limits()
2661 if (buffer[3] == 0x3c) { in sd_read_block_limits()
2664 sdkp->max_ws_blocks = (u32)get_unaligned_be64(&buffer[36]); in sd_read_block_limits()
2669 lba_count = get_unaligned_be32(&buffer[20]); in sd_read_block_limits()
2670 desc_count = get_unaligned_be32(&buffer[24]); in sd_read_block_limits()
2675 sdkp->unmap_granularity = get_unaligned_be32(&buffer[28]); in sd_read_block_limits()
2677 if (buffer[32] & 0x80) in sd_read_block_limits()
2679 get_unaligned_be32(&buffer[32]) & ~(1 << 31); in sd_read_block_limits()
2703 kfree(buffer); in sd_read_block_limits()
2712 unsigned char *buffer; in sd_read_block_characteristics() local
2716 buffer = kmalloc(vpd_len, GFP_KERNEL); in sd_read_block_characteristics()
2718 if (!buffer || in sd_read_block_characteristics()
2720 scsi_get_vpd_page(sdkp->device, 0xb1, buffer, vpd_len)) in sd_read_block_characteristics()
2723 rot = get_unaligned_be16(&buffer[4]); in sd_read_block_characteristics()
2731 kfree(buffer); in sd_read_block_characteristics()
2740 unsigned char *buffer; in sd_read_block_provisioning() local
2746 buffer = kmalloc(vpd_len, GFP_KERNEL); in sd_read_block_provisioning()
2748 if (!buffer || scsi_get_vpd_page(sdkp->device, 0xb2, buffer, vpd_len)) in sd_read_block_provisioning()
2752 sdkp->lbpu = (buffer[5] >> 7) & 1; /* UNMAP */ in sd_read_block_provisioning()
2753 sdkp->lbpws = (buffer[5] >> 6) & 1; /* WRITE SAME(16) with UNMAP */ in sd_read_block_provisioning()
2754 sdkp->lbpws10 = (buffer[5] >> 5) & 1; /* WRITE SAME(10) with UNMAP */ in sd_read_block_provisioning()
2757 kfree(buffer); in sd_read_block_provisioning()
2760 static void sd_read_write_same(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_write_same() argument
2770 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) { in sd_read_write_same()
2780 if (!scsi_get_vpd_page(sdev, 0x89, buffer, vpd_buf_len)) in sd_read_write_same()
2784 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, WRITE_SAME_16) == 1) in sd_read_write_same()
2787 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, WRITE_SAME) == 1) in sd_read_write_same()
2818 unsigned char *buffer; in sd_revalidate_disk() local
2831 buffer = kmalloc(SD_BUF_SIZE, GFP_KERNEL); in sd_revalidate_disk()
2832 if (!buffer) { in sd_revalidate_disk()
2845 sd_read_capacity(sdkp, buffer); in sd_revalidate_disk()
2853 sd_read_write_protect_flag(sdkp, buffer); in sd_revalidate_disk()
2854 sd_read_cache_type(sdkp, buffer); in sd_revalidate_disk()
2855 sd_read_app_tag_own(sdkp, buffer); in sd_revalidate_disk()
2856 sd_read_write_same(sdkp, buffer); in sd_revalidate_disk()
2893 kfree(buffer); in sd_revalidate_disk()