diff options
author | Christoph Hellwig <hch@lst.de> | 2014-10-02 08:39:55 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-11-12 05:19:39 -0500 |
commit | a62182f338b39a22035531c6afc0a8d2928b1df2 (patch) | |
tree | 57ca6cea82a09d2655daf5c161024c5015373646 /drivers/scsi/esas2r | |
parent | 1d5203284d8acbdfdf9b478d434450b34f338f28 (diff) |
scsi: provide a generic change_queue_type method
Most drivers use exactly the same implementation, so provide it as a
library function.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Diffstat (limited to 'drivers/scsi/esas2r')
-rw-r--r-- | drivers/scsi/esas2r/esas2r.h | 1 | ||||
-rw-r--r-- | drivers/scsi/esas2r/esas2r_main.c | 20 |
2 files changed, 1 insertions, 20 deletions
diff --git a/drivers/scsi/esas2r/esas2r.h b/drivers/scsi/esas2r/esas2r.h index 3fd305d6b67d..20ab211983f2 100644 --- a/drivers/scsi/esas2r/esas2r.h +++ b/drivers/scsi/esas2r/esas2r.h | |||
@@ -976,7 +976,6 @@ int esas2r_slave_alloc(struct scsi_device *dev); | |||
976 | int esas2r_slave_configure(struct scsi_device *dev); | 976 | int esas2r_slave_configure(struct scsi_device *dev); |
977 | void esas2r_slave_destroy(struct scsi_device *dev); | 977 | void esas2r_slave_destroy(struct scsi_device *dev); |
978 | int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason); | 978 | int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason); |
979 | int esas2r_change_queue_type(struct scsi_device *dev, int type); | ||
980 | long esas2r_proc_ioctl(struct file *fp, unsigned int cmd, unsigned long arg); | 979 | long esas2r_proc_ioctl(struct file *fp, unsigned int cmd, unsigned long arg); |
981 | 980 | ||
982 | /* SCSI error handler (eh) functions */ | 981 | /* SCSI error handler (eh) functions */ |
diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c index 45aa684f8b74..be09c628d034 100644 --- a/drivers/scsi/esas2r/esas2r_main.c +++ b/drivers/scsi/esas2r/esas2r_main.c | |||
@@ -258,7 +258,7 @@ static struct scsi_host_template driver_template = { | |||
258 | .slave_alloc = esas2r_slave_alloc, | 258 | .slave_alloc = esas2r_slave_alloc, |
259 | .slave_destroy = esas2r_slave_destroy, | 259 | .slave_destroy = esas2r_slave_destroy, |
260 | .change_queue_depth = esas2r_change_queue_depth, | 260 | .change_queue_depth = esas2r_change_queue_depth, |
261 | .change_queue_type = esas2r_change_queue_type, | 261 | .change_queue_type = scsi_change_queue_type, |
262 | .max_sectors = 0xFFFF, | 262 | .max_sectors = 0xFFFF, |
263 | }; | 263 | }; |
264 | 264 | ||
@@ -1268,24 +1268,6 @@ int esas2r_change_queue_depth(struct scsi_device *dev, int depth, int reason) | |||
1268 | return dev->queue_depth; | 1268 | return dev->queue_depth; |
1269 | } | 1269 | } |
1270 | 1270 | ||
1271 | int esas2r_change_queue_type(struct scsi_device *dev, int type) | ||
1272 | { | ||
1273 | esas2r_log(ESAS2R_LOG_INFO, "change_queue_type %p, %d", dev, type); | ||
1274 | |||
1275 | if (dev->tagged_supported) { | ||
1276 | scsi_set_tag_type(dev, type); | ||
1277 | |||
1278 | if (type) | ||
1279 | scsi_activate_tcq(dev, dev->queue_depth); | ||
1280 | else | ||
1281 | scsi_deactivate_tcq(dev, dev->queue_depth); | ||
1282 | } else { | ||
1283 | type = 0; | ||
1284 | } | ||
1285 | |||
1286 | return type; | ||
1287 | } | ||
1288 | |||
1289 | int esas2r_slave_alloc(struct scsi_device *dev) | 1271 | int esas2r_slave_alloc(struct scsi_device *dev) |
1290 | { | 1272 | { |
1291 | return 0; | 1273 | return 0; |