diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-22 12:29:08 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-22 12:29:08 -0400 |
commit | 5e6c94a999f67f120c6bbba71bbee840dfee6338 (patch) | |
tree | 189cef18f11f007aed6ef53169f6deee87eb2e13 /drivers/mmc/card/block.c | |
parent | 3cfe213756a5c208ab51816d51641bf49f2e67fd (diff) | |
parent | 96541bac0b4e62efa42e7900d9b32e6baa9a214c (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.c | 34 |
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 | ||
2421 | static int mmc_blk_probe(struct device *dev) | 2421 | static 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 | ||
2478 | static int mmc_blk_remove(struct device *dev) | 2477 | static 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 | ||
2497 | static int _mmc_blk_suspend(struct device *dev) | 2493 | static 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 | ||
2511 | static void mmc_blk_shutdown(struct device *dev) | 2507 | static 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 |
2517 | static int mmc_blk_suspend(struct device *dev) | 2513 | static 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 | ||
2522 | static int mmc_blk_resume(struct device *dev) | 2520 | static int mmc_blk_resume(struct device *dev) |
@@ -2541,9 +2539,11 @@ static int mmc_blk_resume(struct device *dev) | |||
2541 | 2539 | ||
2542 | static SIMPLE_DEV_PM_OPS(mmc_blk_pm_ops, mmc_blk_suspend, mmc_blk_resume); | 2540 | static SIMPLE_DEV_PM_OPS(mmc_blk_pm_ops, mmc_blk_suspend, mmc_blk_resume); |
2543 | 2541 | ||
2544 | static struct device_driver mmc_driver = { | 2542 | static 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, |