• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/

Lines Matching defs:sdkp

109 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
135 struct scsi_disk *sdkp = to_scsi_disk(dev);
136 struct scsi_device *sdp = sdkp->device;
175 sd_print_sense_hdr(sdkp, &sshdr);
178 revalidate_disk(sdkp->disk);
186 struct scsi_disk *sdkp = to_scsi_disk(dev);
187 struct scsi_device *sdp = sdkp->device;
201 struct scsi_disk *sdkp = to_scsi_disk(dev);
202 struct scsi_device *sdp = sdkp->device;
219 struct scsi_disk *sdkp = to_scsi_disk(dev);
220 int ct = sdkp->RCD + 2*sdkp->WCE;
228 struct scsi_disk *sdkp = to_scsi_disk(dev);
230 return snprintf(buf, 20, "%u\n", sdkp->DPOFUA);
237 struct scsi_disk *sdkp = to_scsi_disk(dev);
238 struct scsi_device *sdp = sdkp->device;
247 struct scsi_disk *sdkp = to_scsi_disk(dev);
249 return snprintf(buf, 40, "%d\n", sdkp->device->allow_restart);
256 struct scsi_disk *sdkp = to_scsi_disk(dev);
258 return snprintf(buf, 20, "%u\n", sdkp->protection_type);
265 struct scsi_disk *sdkp = to_scsi_disk(dev);
267 return snprintf(buf, 20, "%u\n", sdkp->ATO);
274 struct scsi_disk *sdkp = to_scsi_disk(dev);
276 return snprintf(buf, 20, "%u\n", sdkp->thin_provisioning);
345 struct scsi_disk *sdkp = NULL;
348 sdkp = scsi_disk(disk);
349 if (scsi_device_get(sdkp->device) == 0)
350 get_device(&sdkp->dev);
352 sdkp = NULL;
354 return sdkp;
359 struct scsi_disk *sdkp;
362 sdkp = __scsi_disk_get(disk);
364 return sdkp;
369 struct scsi_disk *sdkp;
372 sdkp = dev_get_drvdata(dev);
373 if (sdkp)
374 sdkp = __scsi_disk_get(sdkp->disk);
376 return sdkp;
379 static void scsi_disk_put(struct scsi_disk *sdkp)
381 struct scsi_device *sdev = sdkp->device;
384 put_device(&sdkp->dev);
424 struct scsi_disk *sdkp = scsi_disk(rq->rq_disk);
432 if (sdkp->device->sector_size == 4096) {
445 if (sdkp->unmap) {
465 len = sdkp->device->sector_size;
509 struct scsi_disk *sdkp;
537 sdkp = scsi_disk(disk);
655 host_dif = scsi_host_dif_capable(sdp->host, sdkp->protection_type);
788 struct scsi_disk *sdkp = scsi_disk_get(bdev->bd_disk);
792 if (!sdkp)
795 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_open\n"));
797 sdev = sdkp->device;
811 if (sdev->removable || sdkp->write_prot)
818 if (sdev->removable && !sdkp->media_present && !(mode & FMODE_NDELAY))
826 if (sdkp->write_prot && (mode & FMODE_WRITE))
839 if ((atomic_inc_return(&sdkp->openers) == 1) && sdev->removable) {
849 scsi_disk_put(sdkp);
868 struct scsi_disk *sdkp = scsi_disk(disk);
869 struct scsi_device *sdev = sdkp->device;
871 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_release\n"));
873 if (atomic_dec_return(&sdkp->openers) == 0 && sdev->removable) {
880 scsi_disk_put(sdkp);
886 struct scsi_disk *sdkp = scsi_disk(bdev->bd_disk);
887 struct scsi_device *sdp = sdkp->device;
894 diskinfo[2] = sdkp->capacity >> 11;
898 host->hostt->bios_param(sdp, bdev, sdkp->capacity, diskinfo);
900 scsicam_bios_param(bdev, sdkp->capacity, diskinfo);
965 static void set_media_not_present(struct scsi_disk *sdkp)
967 sdkp->media_present = 0;
968 sdkp->capacity = 0;
969 sdkp->device->changed = 1;
982 struct scsi_disk *sdkp = scsi_disk(disk);
983 struct scsi_device *sdp = sdkp->device;
987 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_media_changed\n"));
999 set_media_not_present(sdkp);
1030 set_media_not_present(sdkp);
1040 sdkp->media_present = 1;
1045 if (retval != sdkp->previous_state)
1047 sdkp->previous_state = retval;
1052 static int sd_sync_cache(struct scsi_disk *sdkp)
1055 struct scsi_device *sdp = sdkp->device;
1077 sd_print_result(sdkp, res);
1079 sd_print_sense_hdr(sdkp, &sshdr);
1089 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
1091 if (sdkp) {
1092 revalidate_disk(sdkp->disk);
1093 scsi_disk_put(sdkp);
1207 struct scsi_disk *sdkp = scsi_disk(SCpnt->request->rq_disk);
1266 if (scsi_host_dif_capable(sdkp->device->host, sdkp->protection_type)
1284 static int media_not_present(struct scsi_disk *sdkp,
1297 set_media_not_present(sdkp);
1305 sd_spinup_disk(struct scsi_disk *sdkp)
1325 the_result = scsi_execute_req(sdkp->device, cmd,
1335 if (media_not_present(sdkp, &sshdr))
1350 sd_printk(KERN_NOTICE, sdkp, "Unit Not Ready\n");
1351 sd_print_result(sdkp, the_result);
1359 if (sdkp->device->no_start_on_add)
1373 sd_printk(KERN_NOTICE, sdkp, "Spinning up disk...");
1378 if (sdkp->device->start_stop_pwr_cond)
1380 scsi_execute_req(sdkp->device, cmd, DMA_NONE,
1409 sd_printk(KERN_NOTICE, sdkp, "Unit Not Ready\n");
1410 sd_print_sense_hdr(sdkp, &sshdr);
1429 static void sd_read_protection_type(struct scsi_disk *sdkp, unsigned char *buffer)
1431 struct scsi_device *sdp = sdkp->device;
1439 if (type == sdkp->protection_type || !sdkp->first_scan)
1442 sdkp->protection_type = type;
1445 sd_printk(KERN_ERR, sdkp, "formatted with unsupported " \
1447 sdkp->capacity = 0;
1452 sd_printk(KERN_NOTICE, sdkp,
1455 sd_printk(KERN_NOTICE, sdkp,
1459 static void read_capacity_error(struct scsi_disk *sdkp, struct scsi_device *sdp,
1463 sd_print_result(sdkp, the_result);
1465 sd_print_sense_hdr(sdkp, sshdr);
1467 sd_printk(KERN_NOTICE, sdkp, "Sense not available.\n");
1482 sdkp->capacity = 0; /* unknown mapped to zero - as usual */
1492 static int read_capacity_16(struct scsi_disk *sdkp, struct scsi_device *sdp,
1515 if (media_not_present(sdkp, &sshdr))
1541 sd_printk(KERN_NOTICE, sdkp, "READ CAPACITY(16) failed\n");
1542 read_capacity_error(sdkp, sdp, &sshdr, sense_valid, the_result);
1549 sd_read_protection_type(sdkp, buffer);
1551 if ((sizeof(sdkp->capacity) == 4) && (lba >= 0xffffffffULL)) {
1552 sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a "
1555 sdkp->capacity = 0;
1560 sdkp->hw_sector_size = (1 << (buffer[13] & 0xf)) * sector_size;
1565 if (alignment && sdkp->first_scan)
1566 sd_printk(KERN_NOTICE, sdkp,
1572 sdkp->thin_provisioning = 1;
1573 q->limits.discard_granularity = sdkp->hw_sector_size;
1582 sdkp->capacity = lba + 1;
1586 static int read_capacity_10(struct scsi_disk *sdkp, struct scsi_device *sdp,
1606 if (media_not_present(sdkp, &sshdr))
1624 sd_printk(KERN_NOTICE, sdkp, "READ CAPACITY failed\n");
1625 read_capacity_error(sdkp, sdp, &sshdr, sense_valid, the_result);
1632 if ((sizeof(sdkp->capacity) == 4) && (lba == 0xffffffff)) {
1633 sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use a "
1636 sdkp->capacity = 0;
1640 sdkp->capacity = lba + 1;
1641 sdkp->hw_sector_size = sector_size;
1660 sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer)
1663 struct scsi_device *sdp = sdkp->device;
1664 sector_t old_capacity = sdkp->capacity;
1667 sector_size = read_capacity_16(sdkp, sdp, buffer);
1673 sector_size = read_capacity_10(sdkp, sdp, buffer);
1677 sector_size = read_capacity_10(sdkp, sdp, buffer);
1682 if ((sizeof(sdkp->capacity) > 4) &&
1683 (sdkp->capacity > 0xffffffffULL)) {
1685 sd_printk(KERN_NOTICE, sdkp, "Very big device. "
1687 sector_size = read_capacity_16(sdkp, sdp, buffer);
1689 sd_printk(KERN_NOTICE, sdkp,
1691 sdkp->capacity = 1 + (sector_t) 0xffffffff;
1709 (sdp->guess_capacity && (sdkp->capacity & 0x01))) {
1710 sd_printk(KERN_INFO, sdkp, "Adjusting the sector count "
1712 (unsigned long long) sdkp->capacity);
1713 --sdkp->capacity;
1719 sd_printk(KERN_NOTICE, sdkp, "Sector size 0 reported, "
1728 sd_printk(KERN_NOTICE, sdkp, "Unsupported sector size %d.\n",
1736 sdkp->capacity = 0;
1749 u64 sz = (u64)sdkp->capacity << ilog2(sector_size);
1756 if (sdkp->first_scan || old_capacity != sdkp->capacity) {
1757 sd_printk(KERN_NOTICE, sdkp,
1759 (unsigned long long)sdkp->capacity,
1762 if (sdkp->hw_sector_size != sector_size)
1763 sd_printk(KERN_NOTICE, sdkp,
1765 sdkp->hw_sector_size);
1771 sdkp->capacity <<= 3;
1773 sdkp->capacity <<= 2;
1775 sdkp->capacity <<= 1;
1777 sdkp->capacity >>= 1;
1779 blk_queue_physical_block_size(sdp->request_queue, sdkp->hw_sector_size);
1780 sdkp->device->sector_size = sector_size;
1799 sd_read_write_protect_flag(struct scsi_disk *sdkp, unsigned char *buffer)
1802 struct scsi_device *sdp = sdkp->device;
1804 int old_wp = sdkp->write_prot;
1806 set_disk_ro(sdkp->disk, 0);
1808 sd_printk(KERN_NOTICE, sdkp, "Assuming Write Enabled\n");
1840 sd_printk(KERN_WARNING, sdkp,
1843 sdkp->write_prot = ((data.device_specific & 0x80) != 0);
1844 set_disk_ro(sdkp->disk, sdkp->write_prot);
1845 if (sdkp->first_scan || old_wp != sdkp->write_prot) {
1846 sd_printk(KERN_NOTICE, sdkp, "Write Protect is %s\n",
1847 sdkp->write_prot ? "on" : "off");
1848 sd_printk(KERN_DEBUG, sdkp,
1860 sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
1863 struct scsi_device *sdp = sdkp->device;
1869 int old_wce = sdkp->WCE;
1870 int old_rcd = sdkp->RCD;
1871 int old_dpofua = sdkp->DPOFUA;
1892 sd_printk(KERN_ERR, sdkp, "Missing header in MODE_SENSE response\n");
1919 sd_printk(KERN_ERR, sdkp, "Malformed MODE SENSE response\n");
1924 sd_printk(KERN_ERR, sdkp, "Got wrong page\n");
1929 sdkp->WCE = ((buffer[offset + 2] & 0x04) != 0);
1930 sdkp->RCD = ((buffer[offset + 2] & 0x01) != 0);
1932 sdkp->WCE = ((buffer[offset + 2] & 0x01) == 0);
1933 sdkp->RCD = 0;
1936 sdkp->DPOFUA = (data.device_specific & 0x10) != 0;
1937 if (sdkp->DPOFUA && !sdkp->device->use_10_for_rw) {
1938 sd_printk(KERN_NOTICE, sdkp,
1940 sdkp->DPOFUA = 0;
1943 if (sdkp->first_scan || old_wce != sdkp->WCE ||
1944 old_rcd != sdkp->RCD || old_dpofua != sdkp->DPOFUA)
1945 sd_printk(KERN_NOTICE, sdkp,
1947 sdkp->WCE ? "enabled" : "disabled",
1948 sdkp->RCD ? "disabled" : "enabled",
1949 sdkp->DPOFUA ? "supports DPO and FUA"
1960 sd_printk(KERN_NOTICE, sdkp, "Cache data unavailable\n");
1962 sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n");
1965 sd_printk(KERN_ERR, sdkp, "Assuming drive cache: write through\n");
1966 sdkp->WCE = 0;
1967 sdkp->RCD = 0;
1968 sdkp->DPOFUA = 0;
1975 static void sd_read_app_tag_own(struct scsi_disk *sdkp, unsigned char *buffer)
1978 struct scsi_device *sdp = sdkp->device;
1985 if (sdkp->protection_type == 0)
1993 sd_printk(KERN_WARNING, sdkp,
1997 sd_print_sense_hdr(sdkp, &sshdr);
2005 sd_printk(KERN_ERR, sdkp, "ATO Got wrong page\n");
2012 sdkp->ATO = 1;
2021 static void sd_read_block_limits(struct scsi_disk *sdkp)
2023 struct request_queue *q = sdkp->disk->queue;
2024 unsigned int sector_sz = sdkp->device->sector_size;
2030 scsi_get_vpd_page(sdkp->device, 0xb0, buffer, vpd_len))
2033 blk_queue_io_min(sdkp->disk->queue,
2035 blk_queue_io_opt(sdkp->disk->queue,
2039 if (sdkp->thin_provisioning && buffer[3] == 0x3c) {
2050 sdkp->unmap = 1;
2071 static void sd_read_block_characteristics(struct scsi_disk *sdkp)
2081 scsi_get_vpd_page(sdkp->device, 0xb1, buffer, vpd_len))
2087 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, sdkp->disk->queue);
2112 struct scsi_disk *sdkp = scsi_disk(disk);
2113 struct scsi_device *sdp = sdkp->device;
2117 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp,
2129 sd_printk(KERN_WARNING, sdkp, "sd_revalidate_disk: Memory "
2134 sd_spinup_disk(sdkp);
2140 if (sdkp->media_present) {
2141 sd_read_capacity(sdkp, buffer);
2144 sd_read_block_limits(sdkp);
2145 sd_read_block_characteristics(sdkp);
2148 sd_read_write_protect_flag(sdkp, buffer);
2149 sd_read_cache_type(sdkp, buffer);
2150 sd_read_app_tag_own(sdkp, buffer);
2153 sdkp->first_scan = 0;
2161 if (sdkp->WCE)
2162 ordered = sdkp->DPOFUA
2167 blk_queue_ordered(sdkp->disk->queue, ordered);
2169 set_capacity(disk, sdkp->capacity);
2247 struct scsi_disk *sdkp = data;
2253 sdp = sdkp->device;
2254 gd = sdkp->disk;
2255 index = sdkp->index;
2263 gd->private_data = &sdkp->driver;
2264 gd->queue = sdkp->device->request_queue;
2268 sdkp->capacity = 0;
2269 sdkp->media_present = 1;
2270 sdkp->write_prot = 0;
2271 sdkp->WCE = 0;
2272 sdkp->RCD = 0;
2273 sdkp->ATO = 0;
2274 sdkp->first_scan = 1;
2287 sd_dif_config_host(sdkp);
2291 sd_printk(KERN_NOTICE, sdkp, "Attached SCSI %sdisk\n",
2294 put_device(&sdkp->dev);
2318 struct scsi_disk *sdkp;
2331 sdkp = kzalloc(sizeof(*sdkp), GFP_KERNEL);
2332 if (!sdkp)
2361 sdkp->device = sdp;
2362 sdkp->driver = &sd_template;
2363 sdkp->disk = gd;
2364 sdkp->index = index;
2365 atomic_set(&sdkp->openers, 0);
2366 sdkp->previous_state = 1;
2376 device_initialize(&sdkp->dev);
2377 sdkp->dev.parent = dev;
2378 sdkp->dev.class = &sd_disk_class;
2379 dev_set_name(&sdkp->dev, dev_name(dev));
2381 if (device_add(&sdkp->dev))
2385 dev_set_drvdata(dev, sdkp);
2387 get_device(&sdkp->dev); /* prevent release before async_schedule */
2388 async_schedule(sd_probe_async, sdkp);
2399 kfree(sdkp);
2417 struct scsi_disk *sdkp;
2419 sdkp = dev_get_drvdata(dev);
2420 scsi_autopm_get_device(sdkp->device);
2423 blk_queue_prep_rq(sdkp->device->request_queue, scsi_prep_fn);
2424 blk_queue_unprep_rq(sdkp->device->request_queue, NULL);
2425 device_del(&sdkp->dev);
2426 del_gendisk(sdkp->disk);
2431 put_device(&sdkp->dev);
2448 struct scsi_disk *sdkp = to_scsi_disk(dev);
2449 struct gendisk *disk = sdkp->disk;
2452 ida_remove(&sd_index_ida, sdkp->index);
2457 put_device(&sdkp->device->sdev_gendev);
2459 kfree(sdkp);
2462 static int sd_start_stop_device(struct scsi_disk *sdkp, int start)
2466 struct scsi_device *sdp = sdkp->device;
2481 sd_printk(KERN_WARNING, sdkp, "START_STOP FAILED\n");
2482 sd_print_result(sdkp, res);
2484 sd_print_sense_hdr(sdkp, &sshdr);
2497 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
2499 if (!sdkp)
2502 if (sdkp->WCE) {
2503 sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n");
2504 sd_sync_cache(sdkp);
2507 if (system_state != SYSTEM_RESTART && sdkp->device->manage_start_stop) {
2508 sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
2509 sd_start_stop_device(sdkp, 0);
2512 scsi_disk_put(sdkp);
2517 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
2520 if (!sdkp)
2523 if (sdkp->WCE) {
2524 sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n");
2525 ret = sd_sync_cache(sdkp);
2530 if ((mesg.event & PM_EVENT_SLEEP) && sdkp->device->manage_start_stop) {
2531 sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
2532 ret = sd_start_stop_device(sdkp, 0);
2536 scsi_disk_put(sdkp);
2542 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
2545 if (!sdkp->device->manage_start_stop)
2548 sd_printk(KERN_NOTICE, sdkp, "Starting disk\n");
2549 ret = sd_start_stop_device(sdkp, 1);
2552 scsi_disk_put(sdkp);
2633 static void sd_print_sense_hdr(struct scsi_disk *sdkp,
2636 sd_printk(KERN_INFO, sdkp, " ");
2638 sd_printk(KERN_INFO, sdkp, " ");
2642 static void sd_print_result(struct scsi_disk *sdkp, int result)
2644 sd_printk(KERN_INFO, sdkp, " ");