aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/card/block.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-04-22 12:29:08 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-04-22 12:29:08 -0400
commit5e6c94a999f67f120c6bbba71bbee840dfee6338 (patch)
tree189cef18f11f007aed6ef53169f6deee87eb2e13 /drivers/mmc/card/block.c
parent3cfe213756a5c208ab51816d51641bf49f2e67fd (diff)
parent96541bac0b4e62efa42e7900d9b32e6baa9a214c (diff)
Merge tag 'mmc-4.1-rc1' of git://git.linaro.org/people/ulf.hansson/mmc
Pull MMC fixes from Ulf Hansson: "Here is two mmc core fixes for v.4.1 rc1: - fix error code propagation in mmc_pwrseq_simple_alloc() - revert 'mmc: core: Convert mmc_driver to device_driver'" * tag 'mmc-4.1-rc1' of git://git.linaro.org/people/ulf.hansson/mmc: Revert "mmc: core: Convert mmc_driver to device_driver" mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc()
Diffstat (limited to 'drivers/mmc/card/block.c')
-rw-r--r--drivers/mmc/card/block.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 2fc426926574..2c25271f8c41 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -2418,9 +2418,8 @@ static const struct mmc_fixup blk_fixups[] =
2418 END_FIXUP 2418 END_FIXUP
2419}; 2419};
2420 2420
2421static int mmc_blk_probe(struct device *dev) 2421static int mmc_blk_probe(struct mmc_card *card)
2422{ 2422{
2423 struct mmc_card *card = mmc_dev_to_card(dev);
2424 struct mmc_blk_data *md, *part_md; 2423 struct mmc_blk_data *md, *part_md;
2425 char cap_str[10]; 2424 char cap_str[10];
2426 2425
@@ -2445,7 +2444,7 @@ static int mmc_blk_probe(struct device *dev)
2445 if (mmc_blk_alloc_parts(card, md)) 2444 if (mmc_blk_alloc_parts(card, md))
2446 goto out; 2445 goto out;
2447 2446
2448 dev_set_drvdata(dev, md); 2447 dev_set_drvdata(&card->dev, md);
2449 2448
2450 if (mmc_add_disk(md)) 2449 if (mmc_add_disk(md))
2451 goto out; 2450 goto out;
@@ -2475,10 +2474,9 @@ static int mmc_blk_probe(struct device *dev)
2475 return 0; 2474 return 0;
2476} 2475}
2477 2476
2478static int mmc_blk_remove(struct device *dev) 2477static void mmc_blk_remove(struct mmc_card *card)
2479{ 2478{
2480 struct mmc_card *card = mmc_dev_to_card(dev); 2479 struct mmc_blk_data *md = dev_get_drvdata(&card->dev);
2481 struct mmc_blk_data *md = dev_get_drvdata(dev);
2482 2480
2483 mmc_blk_remove_parts(card, md); 2481 mmc_blk_remove_parts(card, md);
2484 pm_runtime_get_sync(&card->dev); 2482 pm_runtime_get_sync(&card->dev);
@@ -2489,15 +2487,13 @@ static int mmc_blk_remove(struct device *dev)
2489 pm_runtime_disable(&card->dev); 2487 pm_runtime_disable(&card->dev);
2490 pm_runtime_put_noidle(&card->dev); 2488 pm_runtime_put_noidle(&card->dev);
2491 mmc_blk_remove_req(md); 2489 mmc_blk_remove_req(md);
2492 dev_set_drvdata(dev, NULL); 2490 dev_set_drvdata(&card->dev, NULL);
2493
2494 return 0;
2495} 2491}
2496 2492
2497static int _mmc_blk_suspend(struct device *dev) 2493static int _mmc_blk_suspend(struct mmc_card *card)
2498{ 2494{
2499 struct mmc_blk_data *part_md; 2495 struct mmc_blk_data *part_md;
2500 struct mmc_blk_data *md = dev_get_drvdata(dev); 2496 struct mmc_blk_data *md = dev_get_drvdata(&card->dev);
2501 2497
2502 if (md) { 2498 if (md) {
2503 mmc_queue_suspend(&md->queue); 2499 mmc_queue_suspend(&md->queue);
@@ -2508,15 +2504,17 @@ static int _mmc_blk_suspend(struct device *dev)
2508 return 0; 2504 return 0;
2509} 2505}
2510 2506
2511static void mmc_blk_shutdown(struct device *dev) 2507static void mmc_blk_shutdown(struct mmc_card *card)
2512{ 2508{
2513 _mmc_blk_suspend(dev); 2509 _mmc_blk_suspend(card);
2514} 2510}
2515 2511
2516#ifdef CONFIG_PM_SLEEP 2512#ifdef CONFIG_PM_SLEEP
2517static int mmc_blk_suspend(struct device *dev) 2513static int mmc_blk_suspend(struct device *dev)
2518{ 2514{
2519 return _mmc_blk_suspend(dev); 2515 struct mmc_card *card = mmc_dev_to_card(dev);
2516
2517 return _mmc_blk_suspend(card);
2520} 2518}
2521 2519
2522static int mmc_blk_resume(struct device *dev) 2520static int mmc_blk_resume(struct device *dev)
@@ -2541,9 +2539,11 @@ static int mmc_blk_resume(struct device *dev)
2541 2539
2542static SIMPLE_DEV_PM_OPS(mmc_blk_pm_ops, mmc_blk_suspend, mmc_blk_resume); 2540static SIMPLE_DEV_PM_OPS(mmc_blk_pm_ops, mmc_blk_suspend, mmc_blk_resume);
2543 2541
2544static struct device_driver mmc_driver = { 2542static struct mmc_driver mmc_driver = {
2545 .name = "mmcblk", 2543 .drv = {
2546 .pm = &mmc_blk_pm_ops, 2544 .name = "mmcblk",
2545 .pm = &mmc_blk_pm_ops,
2546 },
2547 .probe = mmc_blk_probe, 2547 .probe = mmc_blk_probe,
2548 .remove = mmc_blk_remove, 2548 .remove = mmc_blk_remove,
2549 .shutdown = mmc_blk_shutdown, 2549 .shutdown = mmc_blk_shutdown,