Lines Matching refs:buffer
116 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
157 char buffer[64]; in cache_type_store() local
197 if (scsi_mode_sense(sdp, 0x08, 8, buffer, sizeof(buffer), SD_TIMEOUT, in cache_type_store()
200 len = min_t(size_t, sizeof(buffer), data.length - data.header_length - in cache_type_store()
202 buffer_data = buffer + data.header_length + in cache_type_store()
1869 static int sd_read_protection_type(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_protection_type() argument
1875 if (scsi_device_protection(sdp) == 0 || (buffer[12] & 1) == 0) in sd_read_protection_type()
1878 type = ((buffer[12] >> 1) & 7) + 1; /* P_TYPE 0 = Type 1 */ in sd_read_protection_type()
1940 unsigned char *buffer) in read_capacity_16() argument
1959 memset(buffer, 0, RC16_LEN); in read_capacity_16()
1962 buffer, RC16_LEN, &sshdr, in read_capacity_16()
1996 sector_size = get_unaligned_be32(&buffer[8]); in read_capacity_16()
1997 lba = get_unaligned_be64(&buffer[0]); in read_capacity_16()
1999 if (sd_read_protection_type(sdkp, buffer) < 0) { in read_capacity_16()
2013 sdkp->physical_block_size = (1 << (buffer[13] & 0xf)) * sector_size; in read_capacity_16()
2016 alignment = ((buffer[14] & 0x3f) << 8 | buffer[15]) * sector_size; in read_capacity_16()
2022 if (buffer[14] & 0x80) { /* LBPME */ in read_capacity_16()
2025 if (buffer[14] & 0x40) /* LBPRZ */ in read_capacity_16()
2036 unsigned char *buffer) in read_capacity_10() argument
2049 memset(buffer, 0, 8); in read_capacity_10()
2052 buffer, 8, &sshdr, in read_capacity_10()
2078 sector_size = get_unaligned_be32(&buffer[4]); in read_capacity_10()
2079 lba = get_unaligned_be32(&buffer[0]); in read_capacity_10()
2120 sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_capacity() argument
2127 sector_size = read_capacity_16(sdkp, sdp, buffer); in sd_read_capacity()
2133 sector_size = read_capacity_10(sdkp, sdp, buffer); in sd_read_capacity()
2137 sector_size = read_capacity_10(sdkp, sdp, buffer); in sd_read_capacity()
2147 sector_size = read_capacity_16(sdkp, sdp, buffer); in sd_read_capacity()
2242 unsigned char *buffer, int len, struct scsi_mode_data *data, in sd_do_mode_sense() argument
2245 return scsi_mode_sense(sdp, dbd, modepage, buffer, len, in sd_do_mode_sense()
2255 sd_read_write_protect_flag(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_write_protect_flag() argument
2269 res = sd_do_mode_sense(sdp, 0, 0x3F, buffer, 192, &data, NULL); in sd_read_write_protect_flag()
2276 res = sd_do_mode_sense(sdp, 0, 0x3F, buffer, 4, &data, NULL); in sd_read_write_protect_flag()
2285 res = sd_do_mode_sense(sdp, 0, 0, buffer, 4, &data, NULL); in sd_read_write_protect_flag()
2291 res = sd_do_mode_sense(sdp, 0, 0x3F, buffer, 255, in sd_read_write_protect_flag()
2306 buffer[0], buffer[1], buffer[2], buffer[3]); in sd_read_write_protect_flag()
2316 sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_cache_type() argument
2355 res = sd_do_mode_sense(sdp, dbd, modepage, buffer, first_len, in sd_read_cache_type()
2387 res = sd_do_mode_sense(sdp, dbd, modepage, buffer, len, in sd_read_cache_type()
2394 u8 page_code = buffer[offset] & 0x3F; in sd_read_cache_type()
2395 u8 spf = buffer[offset] & 0x40; in sd_read_cache_type()
2412 offset += 4 + (buffer[offset+2] << 8) + in sd_read_cache_type()
2413 buffer[offset+3]; in sd_read_cache_type()
2415 offset += 2 + buffer[offset+1]; in sd_read_cache_type()
2430 sdkp->WCE = ((buffer[offset + 2] & 0x04) != 0); in sd_read_cache_type()
2431 sdkp->RCD = ((buffer[offset + 2] & 0x01) != 0); in sd_read_cache_type()
2433 sdkp->WCE = ((buffer[offset + 2] & 0x01) == 0); in sd_read_cache_type()
2491 static void sd_read_app_tag_own(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_app_tag_own() argument
2504 res = scsi_mode_sense(sdp, 1, 0x0a, buffer, 36, SD_TIMEOUT, in sd_read_app_tag_own()
2520 if ((buffer[offset] & 0x3f) != 0x0a) { in sd_read_app_tag_own()
2525 if ((buffer[offset + 5] & 0x80) == 0) in sd_read_app_tag_own()
2542 unsigned char *buffer = kmalloc(vpd_len, GFP_KERNEL); in sd_read_block_limits() local
2544 if (!buffer || in sd_read_block_limits()
2546 scsi_get_vpd_page(sdkp->device, 0xb0, buffer, vpd_len)) in sd_read_block_limits()
2549 max_xfer_length = get_unaligned_be32(&buffer[8]); in sd_read_block_limits()
2554 get_unaligned_be16(&buffer[6]) * sector_sz); in sd_read_block_limits()
2556 get_unaligned_be32(&buffer[12]) * sector_sz); in sd_read_block_limits()
2558 if (buffer[3] == 0x3c) { in sd_read_block_limits()
2561 sdkp->max_ws_blocks = (u32)get_unaligned_be64(&buffer[36]); in sd_read_block_limits()
2566 lba_count = get_unaligned_be32(&buffer[20]); in sd_read_block_limits()
2567 desc_count = get_unaligned_be32(&buffer[24]); in sd_read_block_limits()
2572 sdkp->unmap_granularity = get_unaligned_be32(&buffer[28]); in sd_read_block_limits()
2574 if (buffer[32] & 0x80) in sd_read_block_limits()
2576 get_unaligned_be32(&buffer[32]) & ~(1 << 31); in sd_read_block_limits()
2600 kfree(buffer); in sd_read_block_limits()
2609 unsigned char *buffer; in sd_read_block_characteristics() local
2613 buffer = kmalloc(vpd_len, GFP_KERNEL); in sd_read_block_characteristics()
2615 if (!buffer || in sd_read_block_characteristics()
2617 scsi_get_vpd_page(sdkp->device, 0xb1, buffer, vpd_len)) in sd_read_block_characteristics()
2620 rot = get_unaligned_be16(&buffer[4]); in sd_read_block_characteristics()
2628 kfree(buffer); in sd_read_block_characteristics()
2637 unsigned char *buffer; in sd_read_block_provisioning() local
2643 buffer = kmalloc(vpd_len, GFP_KERNEL); in sd_read_block_provisioning()
2645 if (!buffer || scsi_get_vpd_page(sdkp->device, 0xb2, buffer, vpd_len)) in sd_read_block_provisioning()
2649 sdkp->lbpu = (buffer[5] >> 7) & 1; /* UNMAP */ in sd_read_block_provisioning()
2650 sdkp->lbpws = (buffer[5] >> 6) & 1; /* WRITE SAME(16) with UNMAP */ in sd_read_block_provisioning()
2651 sdkp->lbpws10 = (buffer[5] >> 5) & 1; /* WRITE SAME(10) with UNMAP */ in sd_read_block_provisioning()
2654 kfree(buffer); in sd_read_block_provisioning()
2657 static void sd_read_write_same(struct scsi_disk *sdkp, unsigned char *buffer) in sd_read_write_same() argument
2667 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) { in sd_read_write_same()
2677 if (!scsi_get_vpd_page(sdev, 0x89, buffer, vpd_buf_len)) in sd_read_write_same()
2681 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, WRITE_SAME_16) == 1) in sd_read_write_same()
2684 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, WRITE_SAME) == 1) in sd_read_write_same()
2714 unsigned char *buffer; in sd_revalidate_disk() local
2727 buffer = kmalloc(SD_BUF_SIZE, GFP_KERNEL); in sd_revalidate_disk()
2728 if (!buffer) { in sd_revalidate_disk()
2741 sd_read_capacity(sdkp, buffer); in sd_revalidate_disk()
2749 sd_read_write_protect_flag(sdkp, buffer); in sd_revalidate_disk()
2750 sd_read_cache_type(sdkp, buffer); in sd_revalidate_disk()
2751 sd_read_app_tag_own(sdkp, buffer); in sd_revalidate_disk()
2752 sd_read_write_same(sdkp, buffer); in sd_revalidate_disk()
2771 kfree(buffer); in sd_revalidate_disk()