aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/ps3disk.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/block/ps3disk.c')
-rw-r--r--drivers/block/ps3disk.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/drivers/block/ps3disk.c b/drivers/block/ps3disk.c
index aaeeb544228a..fdd2d7a00338 100644
--- a/drivers/block/ps3disk.c
+++ b/drivers/block/ps3disk.c
@@ -120,7 +120,8 @@ static void ps3disk_scatter_gather(struct ps3_storage_device *dev,
120static int ps3disk_submit_request_sg(struct ps3_storage_device *dev, 120static int ps3disk_submit_request_sg(struct ps3_storage_device *dev,
121 struct request *req) 121 struct request *req)
122{ 122{
123 struct ps3disk_private *priv = dev->sbd.core.driver_data; 123 struct ps3disk_private *priv =
124 ps3_system_bus_get_driver_data(&dev->sbd);
124 int write = rq_data_dir(req), res; 125 int write = rq_data_dir(req), res;
125 const char *op = write ? "write" : "read"; 126 const char *op = write ? "write" : "read";
126 u64 start_sector, sectors; 127 u64 start_sector, sectors;
@@ -168,7 +169,8 @@ static int ps3disk_submit_request_sg(struct ps3_storage_device *dev,
168static int ps3disk_submit_flush_request(struct ps3_storage_device *dev, 169static int ps3disk_submit_flush_request(struct ps3_storage_device *dev,
169 struct request *req) 170 struct request *req)
170{ 171{
171 struct ps3disk_private *priv = dev->sbd.core.driver_data; 172 struct ps3disk_private *priv =
173 ps3_system_bus_get_driver_data(&dev->sbd);
172 u64 res; 174 u64 res;
173 175
174 dev_dbg(&dev->sbd.core, "%s:%u: flush request\n", __func__, __LINE__); 176 dev_dbg(&dev->sbd.core, "%s:%u: flush request\n", __func__, __LINE__);
@@ -213,7 +215,8 @@ static void ps3disk_do_request(struct ps3_storage_device *dev,
213static void ps3disk_request(struct request_queue *q) 215static void ps3disk_request(struct request_queue *q)
214{ 216{
215 struct ps3_storage_device *dev = q->queuedata; 217 struct ps3_storage_device *dev = q->queuedata;
216 struct ps3disk_private *priv = dev->sbd.core.driver_data; 218 struct ps3disk_private *priv =
219 ps3_system_bus_get_driver_data(&dev->sbd);
217 220
218 if (priv->req) { 221 if (priv->req) {
219 dev_dbg(&dev->sbd.core, "%s:%u busy\n", __func__, __LINE__); 222 dev_dbg(&dev->sbd.core, "%s:%u busy\n", __func__, __LINE__);
@@ -245,7 +248,7 @@ static irqreturn_t ps3disk_interrupt(int irq, void *data)
245 return IRQ_HANDLED; 248 return IRQ_HANDLED;
246 } 249 }
247 250
248 priv = dev->sbd.core.driver_data; 251 priv = ps3_system_bus_get_driver_data(&dev->sbd);
249 req = priv->req; 252 req = priv->req;
250 if (!req) { 253 if (!req) {
251 dev_dbg(&dev->sbd.core, 254 dev_dbg(&dev->sbd.core,
@@ -364,7 +367,8 @@ static void ata_id_c_string(const u16 *id, unsigned char *s, unsigned int ofs,
364 367
365static int ps3disk_identify(struct ps3_storage_device *dev) 368static int ps3disk_identify(struct ps3_storage_device *dev)
366{ 369{
367 struct ps3disk_private *priv = dev->sbd.core.driver_data; 370 struct ps3disk_private *priv =
371 ps3_system_bus_get_driver_data(&dev->sbd);
368 struct lv1_ata_cmnd_block ata_cmnd; 372 struct lv1_ata_cmnd_block ata_cmnd;
369 u16 *id = dev->bounce_buf; 373 u16 *id = dev->bounce_buf;
370 u64 res; 374 u64 res;
@@ -445,7 +449,7 @@ static int __devinit ps3disk_probe(struct ps3_system_bus_device *_dev)
445 goto fail; 449 goto fail;
446 } 450 }
447 451
448 dev->sbd.core.driver_data = priv; 452 ps3_system_bus_set_driver_data(_dev, priv);
449 spin_lock_init(&priv->lock); 453 spin_lock_init(&priv->lock);
450 454
451 dev->bounce_size = BOUNCE_SIZE; 455 dev->bounce_size = BOUNCE_SIZE;
@@ -523,7 +527,7 @@ fail_free_bounce:
523 kfree(dev->bounce_buf); 527 kfree(dev->bounce_buf);
524fail_free_priv: 528fail_free_priv:
525 kfree(priv); 529 kfree(priv);
526 dev->sbd.core.driver_data = NULL; 530 ps3_system_bus_set_driver_data(_dev, NULL);
527fail: 531fail:
528 mutex_lock(&ps3disk_mask_mutex); 532 mutex_lock(&ps3disk_mask_mutex);
529 __clear_bit(devidx, &ps3disk_mask); 533 __clear_bit(devidx, &ps3disk_mask);
@@ -534,7 +538,8 @@ fail:
534static int ps3disk_remove(struct ps3_system_bus_device *_dev) 538static int ps3disk_remove(struct ps3_system_bus_device *_dev)
535{ 539{
536 struct ps3_storage_device *dev = to_ps3_storage_device(&_dev->core); 540 struct ps3_storage_device *dev = to_ps3_storage_device(&_dev->core);
537 struct ps3disk_private *priv = dev->sbd.core.driver_data; 541 struct ps3disk_private *priv =
542 ps3_system_bus_get_driver_data(&dev->sbd);
538 543
539 mutex_lock(&ps3disk_mask_mutex); 544 mutex_lock(&ps3disk_mask_mutex);
540 __clear_bit(MINOR(disk_devt(priv->gendisk)) / PS3DISK_MINORS, 545 __clear_bit(MINOR(disk_devt(priv->gendisk)) / PS3DISK_MINORS,
@@ -548,7 +553,7 @@ static int ps3disk_remove(struct ps3_system_bus_device *_dev)
548 ps3stor_teardown(dev); 553 ps3stor_teardown(dev);
549 kfree(dev->bounce_buf); 554 kfree(dev->bounce_buf);
550 kfree(priv); 555 kfree(priv);
551 dev->sbd.core.driver_data = NULL; 556 ps3_system_bus_set_driver_data(_dev, NULL);
552 return 0; 557 return 0;
553} 558}
554 559