mmc: tmio: move mmc_host_ops to struct tmio_mmc_host from static data
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 24 Nov 2017 16:24:41 +0000 (01:24 +0900)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 18 Dec 2017 12:56:58 +0000 (13:56 +0100)
commitc055fc75c1757b220108489038cfe60496b13865
tree9e7156d1f75f4d799b0e17e367a60a96ad6e6f92
parent4139696b7978d57ec840b6c9293d4709a46af3bd
mmc: tmio: move mmc_host_ops to struct tmio_mmc_host from static data

Currently, tmio_mmc_ops is static data and tmio_mmc_host_probe()
updates some hooks in the static data.  This is a problem when
two or more instances call tmio_mmc_host_probe() and each of them
requests to use its own card_busy/start_signal_voltage_switch.

We can borrow a solution from sdhci_alloc_host().  Copy the whole
ops structure to host->mmc_host_ops, then override the hooks in
malloc'ed data.  Constify tmio_mmc_ops since it is now a template
ops used by default.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/tmio_mmc.h
drivers/mmc/host/tmio_mmc_core.c