• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/

Lines Matching refs:sdkp

106 	struct scsi_disk *sdkp = to_scsi_disk(cdev);
107 struct scsi_device *sdp = sdkp->device;
146 sd_print_sense_hdr(sdkp, &sshdr);
149 sd_revalidate_disk(sdkp->disk);
156 struct scsi_disk *sdkp = to_scsi_disk(cdev);
157 struct scsi_device *sdp = sdkp->device;
170 struct scsi_disk *sdkp = to_scsi_disk(cdev);
171 struct scsi_device *sdp = sdkp->device;
186 struct scsi_disk *sdkp = to_scsi_disk(cdev);
187 int ct = sdkp->RCD + 2*sdkp->WCE;
194 struct scsi_disk *sdkp = to_scsi_disk(cdev);
196 return snprintf(buf, 20, "%u\n", sdkp->DPOFUA);
201 struct scsi_disk *sdkp = to_scsi_disk(cdev);
202 struct scsi_device *sdp = sdkp->device;
209 struct scsi_disk *sdkp = to_scsi_disk(cdev);
211 return snprintf(buf, 40, "%d\n", sdkp->device->allow_restart);
283 struct scsi_disk *sdkp = NULL;
286 sdkp = scsi_disk(disk);
287 if (scsi_device_get(sdkp->device) == 0)
288 class_device_get(&sdkp->cdev);
290 sdkp = NULL;
292 return sdkp;
297 struct scsi_disk *sdkp;
300 sdkp = __scsi_disk_get(disk);
302 return sdkp;
307 struct scsi_disk *sdkp;
310 sdkp = dev_get_drvdata(dev);
311 if (sdkp)
312 sdkp = __scsi_disk_get(sdkp->disk);
314 return sdkp;
317 static void scsi_disk_put(struct scsi_disk *sdkp)
319 struct scsi_device *sdev = sdkp->device;
322 class_device_put(&sdkp->cdev);
524 struct scsi_disk *sdkp;
528 if (!(sdkp = scsi_disk_get(disk)))
532 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_open\n"));
534 sdev = sdkp->device;
544 if (sdev->removable || sdkp->write_prot)
551 if (sdev->removable && !sdkp->media_present &&
560 if (sdkp->write_prot && (filp->f_mode & FMODE_WRITE))
573 if (!sdkp->openers++ && sdev->removable) {
581 scsi_disk_put(sdkp);
599 struct scsi_disk *sdkp = scsi_disk(disk);
600 struct scsi_device *sdev = sdkp->device;
602 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_release\n"));
604 if (!--sdkp->openers && sdev->removable) {
609 scsi_disk_put(sdkp);
615 struct scsi_disk *sdkp = scsi_disk(bdev->bd_disk);
616 struct scsi_device *sdp = sdkp->device;
623 diskinfo[2] = sdkp->capacity >> 11;
627 host->hostt->bios_param(sdp, bdev, sdkp->capacity, diskinfo);
629 scsicam_bios_param(bdev, sdkp->capacity, diskinfo);
690 static void set_media_not_present(struct scsi_disk *sdkp)
692 sdkp->media_present = 0;
693 sdkp->capacity = 0;
694 sdkp->device->changed = 1;
707 struct scsi_disk *sdkp = scsi_disk(disk);
708 struct scsi_device *sdp = sdkp->device;
711 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp, "sd_media_changed\n"));
752 sdkp->media_present = 1;
760 set_media_not_present(sdkp);
764 static int sd_sync_cache(struct scsi_disk *sdkp)
767 struct scsi_device *sdp = sdkp->device;
789 sd_print_result(sdkp, res);
791 sd_print_sense_hdr(sdkp, &sshdr);
802 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
804 if (!sdkp)
807 if (sdkp->WCE)
808 ret = sd_sync_cache(sdkp);
809 scsi_disk_put(sdkp);
824 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
826 if (sdkp) {
827 sd_revalidate_disk(sdkp->disk);
828 scsi_disk_put(sdkp);
984 static int media_not_present(struct scsi_disk *sdkp,
997 set_media_not_present(sdkp);
1005 sd_spinup_disk(struct scsi_disk *sdkp)
1025 the_result = scsi_execute_req(sdkp->device, cmd,
1035 if (media_not_present(sdkp, &sshdr))
1050 sd_printk(KERN_NOTICE, sdkp, "Unit Not Ready\n");
1051 sd_print_result(sdkp, the_result);
1059 if (sdkp->device->no_start_on_add) {
1077 sd_printk(KERN_NOTICE, sdkp, "Spinning up disk...");
1082 scsi_execute_req(sdkp->device, cmd, DMA_NONE,
1110 sd_printk(KERN_NOTICE, sdkp, "Unit Not Ready\n");
1111 sd_print_sense_hdr(sdkp, &sshdr);
1155 sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer)
1163 struct scsi_device *sdp = sdkp->device;
1189 //sd_printk(KERN_NOTICE, sdkp, "longrc =%d, the result=%d\n",longrc, the_result);
1190 if (media_not_present(sdkp, &sshdr))
1200 sd_printk(KERN_NOTICE, sdkp, "READ CAPACITY failed\n");
1201 sd_print_result(sdkp, the_result);
1203 sd_print_sense_hdr(sdkp, &sshdr);
1205 sd_printk(KERN_NOTICE, sdkp, "Sense not available.\n");
1215 /* sdkp->media_present = 0; -- not always correct */
1216 sdkp->capacity = 0; /* unknown mapped to zero - as usual */
1221 sd_printk(KERN_NOTICE, sdkp, "READ CAPACITY(16) failed\n");
1222 sd_print_result(sdkp, the_result);
1223 sd_printk(KERN_NOTICE, sdkp, "Use 0xffffffff as device size\n");
1225 sdkp->capacity = 1 + (sector_t) 0xffffffff;
1234 if(sizeof(sdkp->capacity) > 4) {
1235 sd_printk(KERN_NOTICE, sdkp, "Very big device. "
1240 sd_printk(KERN_ERR, sdkp, "Too big for this kernel. Use "
1243 sdkp->capacity = 0;
1246 sdkp->capacity = 1 + (((sector_t)buffer[0] << 24) |
1251 sdkp->capacity = 1 + (((u64)buffer[0] << 56) |
1259 //printk(KERN_EMERG "capacity = %llu\n", sdkp->capacity);
1267 --sdkp->capacity;
1274 if (sdkp->capacity & 0x01) /* odd sizes are odd */
1275 --sdkp->capacity;
1281 sd_printk(KERN_NOTICE, sdkp, "Sector size 0 reported, "
1290 sd_printk(KERN_NOTICE, sdkp, "Unsupported sector size %d.\n",
1298 sdkp->capacity = 0;
1314 sector_t sz = (sdkp->capacity/2) * (hard_sector/256);
1324 sd_printk(KERN_NOTICE, sdkp,
1326 (unsigned long long)sdkp->capacity,
1332 sdkp->capacity <<= 3;
1334 sdkp->capacity <<= 2;
1336 sdkp->capacity <<= 1;
1338 sdkp->capacity >>= 1;
1340 sdkp->device->sector_size = sector_size;
1359 sd_read_write_protect_flag(struct scsi_disk *sdkp, unsigned char *buffer)
1362 struct scsi_device *sdp = sdkp->device;
1365 set_disk_ro(sdkp->disk, 0);
1367 sd_printk(KERN_NOTICE, sdkp, "Assuming Write Enabled\n");
1399 sd_printk(KERN_WARNING, sdkp,
1402 sdkp->write_prot = ((data.device_specific & 0x80) != 0);
1403 set_disk_ro(sdkp->disk, sdkp->write_prot);
1404 sd_printk(KERN_NOTICE, sdkp, "Write Protect is %s\n",
1405 sdkp->write_prot ? "on" : "off");
1406 sd_printk(KERN_DEBUG, sdkp,
1417 sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
1420 struct scsi_device *sdp = sdkp->device;
1446 sd_printk(KERN_ERR, sdkp, "Missing header in MODE_SENSE response\n");
1473 sd_printk(KERN_ERR, sdkp, "Malformed MODE SENSE response\n");
1478 sd_printk(KERN_ERR, sdkp, "Got wrong page\n");
1483 sdkp->WCE = ((buffer[offset + 2] & 0x04) != 0);
1484 sdkp->RCD = ((buffer[offset + 2] & 0x01) != 0);
1486 sdkp->WCE = ((buffer[offset + 2] & 0x01) == 0);
1487 sdkp->RCD = 0;
1490 sdkp->DPOFUA = (data.device_specific & 0x10) != 0;
1491 if (sdkp->DPOFUA && !sdkp->device->use_10_for_rw) {
1492 sd_printk(KERN_NOTICE, sdkp,
1494 sdkp->DPOFUA = 0;
1497 sd_printk(KERN_NOTICE, sdkp,
1499 sdkp->WCE ? "enabled" : "disabled",
1500 sdkp->RCD ? "disabled" : "enabled",
1501 sdkp->DPOFUA ? "supports DPO and FUA"
1512 sd_printk(KERN_NOTICE, sdkp, "Cache data unavailable\n");
1514 sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n");
1517 sd_printk(KERN_ERR, sdkp, "Assuming drive cache: write through\n");
1518 sdkp->WCE = 0;
1519 sdkp->RCD = 0;
1520 sdkp->DPOFUA = 0;
1530 struct scsi_disk *sdkp = scsi_disk(disk);
1531 struct scsi_device *sdp = sdkp->device;
1535 SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp,
1547 sd_printk(KERN_WARNING, sdkp, "sd_revalidate_disk: Memory "
1554 sdkp->capacity = 0;
1555 sdkp->media_present = 1;
1556 sdkp->write_prot = 0;
1557 sdkp->WCE = 0;
1558 sdkp->RCD = 0;
1560 sd_spinup_disk(sdkp);
1566 if (sdkp->media_present) {
1567 sd_read_capacity(sdkp, buffer);
1568 sd_read_write_protect_flag(sdkp, buffer);
1569 sd_read_cache_type(sdkp, buffer);
1578 if (sdkp->WCE)
1579 ordered = sdkp->DPOFUA
1584 blk_queue_ordered(sdkp->disk->queue, ordered, sd_prepare_flush);
1586 set_capacity(disk, sdkp->capacity);
1614 struct scsi_disk *sdkp;
1627 sdkp = kzalloc(sizeof(*sdkp), GFP_KERNEL);
1628 if (!sdkp)
1647 sdkp->device = sdp;
1648 sdkp->driver = &sd_template;
1649 sdkp->disk = gd;
1650 sdkp->index = index;
1651 sdkp->openers = 0;
1660 class_device_initialize(&sdkp->cdev);
1661 sdkp->cdev.dev = &sdp->sdev_gendev;
1662 sdkp->cdev.class = &sd_disk_class;
1663 strncpy(sdkp->cdev.class_id, sdp->sdev_gendev.bus_id, BUS_ID_SIZE);
1665 if (class_device_add(&sdkp->cdev))
1688 gd->private_data = &sdkp->driver;
1689 gd->queue = sdkp->device->request_queue;
1698 dev_set_drvdata(dev, sdkp);
1701 sd_printk(KERN_NOTICE, sdkp, "Attached SCSI %sdisk\n",
1709 kfree(sdkp);
1727 struct scsi_disk *sdkp = dev_get_drvdata(dev);
1729 class_device_del(&sdkp->cdev);
1730 del_gendisk(sdkp->disk);
1735 class_device_put(&sdkp->cdev);
1752 struct scsi_disk *sdkp = to_scsi_disk(cdev);
1753 struct gendisk *disk = sdkp->disk;
1756 idr_remove(&sd_index_idr, sdkp->index);
1761 put_device(&sdkp->device->sdev_gendev);
1763 kfree(sdkp);
1766 static int sd_start_stop_device(struct scsi_disk *sdkp, int start)
1770 struct scsi_device *sdp = sdkp->device;
1782 sd_printk(KERN_WARNING, sdkp, "START_STOP FAILED\n");
1783 sd_print_result(sdkp, res);
1785 sd_print_sense_hdr(sdkp, &sshdr);
1798 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
1800 if (!sdkp)
1803 if (sdkp->WCE) {
1804 sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n");
1805 sd_sync_cache(sdkp);
1808 if (system_state != SYSTEM_RESTART && sdkp->device->manage_start_stop) {
1809 sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
1810 sd_start_stop_device(sdkp, 0);
1813 scsi_disk_put(sdkp);
1818 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
1821 if (!sdkp)
1824 if (sdkp->WCE) {
1825 sd_printk(KERN_NOTICE, sdkp, "Synchronizing SCSI cache\n");
1826 ret = sd_sync_cache(sdkp);
1832 sdkp->device->manage_start_stop) {
1833 sd_printk(KERN_NOTICE, sdkp, "Stopping disk\n");
1834 ret = sd_start_stop_device(sdkp, 0);
1838 scsi_disk_put(sdkp);
1844 struct scsi_disk *sdkp = scsi_disk_get_from_dev(dev);
1847 if (!sdkp->device->manage_start_stop)
1850 sd_printk(KERN_NOTICE, sdkp, "Starting disk\n");
1851 ret = sd_start_stop_device(sdkp, 1);
1854 scsi_disk_put(sdkp);
1916 static void sd_print_sense_hdr(struct scsi_disk *sdkp,
1919 sd_printk(KERN_INFO, sdkp, "");
1921 sd_printk(KERN_INFO, sdkp, "");
1925 static void sd_print_result(struct scsi_disk *sdkp, int result)
1927 sd_printk(KERN_INFO, sdkp, "");