diff options
| author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2012-03-09 04:16:00 -0500 |
|---|---|---|
| committer | Chris Ball <cjb@laptop.org> | 2012-03-27 12:20:19 -0400 |
| commit | 7f524217439cc17da74523582c303cced432713e (patch) | |
| tree | cf3d25dd99f12c8ce73ea1ce45e0ae9f86503f2c /include | |
| parent | e82b4ac94e5c43fad51b975aed058858ceda1f0f (diff) | |
mmc: sh_mobile_sdhi: support modular mmc-core with non-standard hotplug
Currently if a platform wants to implement a non-standard card-detection
method, it would need to call tmio_mmc_cd_wakeup(), which is an inline
function, calling mmc_detect_change(). For this the platform would have
to link mmc_core statically into the kernel, losing the ability to build
it as a module. This patch adds a callback to the sh_mobile_sdhi driver,
which eliminates this dependency.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/mmc/sh_mobile_sdhi.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/include/linux/mmc/sh_mobile_sdhi.h b/include/linux/mmc/sh_mobile_sdhi.h index 686b85bfb7a5..e94e620aeddc 100644 --- a/include/linux/mmc/sh_mobile_sdhi.h +++ b/include/linux/mmc/sh_mobile_sdhi.h | |||
| @@ -10,6 +10,14 @@ struct tmio_mmc_data; | |||
| 10 | #define SH_MOBILE_SDHI_IRQ_SDCARD "sdcard" | 10 | #define SH_MOBILE_SDHI_IRQ_SDCARD "sdcard" |
| 11 | #define SH_MOBILE_SDHI_IRQ_SDIO "sdio" | 11 | #define SH_MOBILE_SDHI_IRQ_SDIO "sdio" |
| 12 | 12 | ||
| 13 | /** | ||
| 14 | * struct sh_mobile_sdhi_ops - SDHI driver callbacks | ||
| 15 | * @cd_wakeup: trigger a card-detection run | ||
| 16 | */ | ||
| 17 | struct sh_mobile_sdhi_ops { | ||
| 18 | void (*cd_wakeup)(const struct platform_device *pdev); | ||
| 19 | }; | ||
| 20 | |||
| 13 | struct sh_mobile_sdhi_info { | 21 | struct sh_mobile_sdhi_info { |
| 14 | int dma_slave_tx; | 22 | int dma_slave_tx; |
| 15 | int dma_slave_rx; | 23 | int dma_slave_rx; |
| @@ -22,7 +30,8 @@ struct sh_mobile_sdhi_info { | |||
| 22 | int (*get_cd)(struct platform_device *pdev); | 30 | int (*get_cd)(struct platform_device *pdev); |
| 23 | 31 | ||
| 24 | /* callbacks for board specific setup code */ | 32 | /* callbacks for board specific setup code */ |
| 25 | int (*init)(struct platform_device *pdev); | 33 | int (*init)(struct platform_device *pdev, |
| 34 | const struct sh_mobile_sdhi_ops *ops); | ||
| 26 | void (*cleanup)(struct platform_device *pdev); | 35 | void (*cleanup)(struct platform_device *pdev); |
| 27 | }; | 36 | }; |
| 28 | 37 | ||
