mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
memstick: add memstick_suspend/resume_host methods
Bus driver may need to be informed that host is being suspended/resumed. Signed-off-by: Alex Dubov <oakad@yahoo.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e1f19995f5
commit
d114ad54ff
3 changed files with 31 additions and 4 deletions
|
@ -561,6 +561,31 @@ void memstick_free_host(struct memstick_host *host)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(memstick_free_host);
|
EXPORT_SYMBOL(memstick_free_host);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* memstick_suspend_host - notify bus driver of host suspension
|
||||||
|
* @host - host to use
|
||||||
|
*/
|
||||||
|
void memstick_suspend_host(struct memstick_host *host)
|
||||||
|
{
|
||||||
|
mutex_lock(&host->lock);
|
||||||
|
host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF);
|
||||||
|
mutex_unlock(&host->lock);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(memstick_suspend_host);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* memstick_resume_host - notify bus driver of host resumption
|
||||||
|
* @host - host to use
|
||||||
|
*/
|
||||||
|
void memstick_resume_host(struct memstick_host *host)
|
||||||
|
{
|
||||||
|
mutex_lock(&host->lock);
|
||||||
|
host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON);
|
||||||
|
mutex_unlock(&host->lock);
|
||||||
|
memstick_detect_change(host);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(memstick_resume_host);
|
||||||
|
|
||||||
int memstick_register_driver(struct memstick_driver *drv)
|
int memstick_register_driver(struct memstick_driver *drv)
|
||||||
{
|
{
|
||||||
drv->driver.bus = &memstick_bus_type;
|
drv->driver.bus = &memstick_bus_type;
|
||||||
|
|
|
@ -627,17 +627,17 @@ static void tifm_ms_remove(struct tifm_dev *sock)
|
||||||
|
|
||||||
static int tifm_ms_suspend(struct tifm_dev *sock, pm_message_t state)
|
static int tifm_ms_suspend(struct tifm_dev *sock, pm_message_t state)
|
||||||
{
|
{
|
||||||
|
struct memstick_host *msh = tifm_get_drvdata(sock);
|
||||||
|
|
||||||
|
memstick_suspend_host(msh);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tifm_ms_resume(struct tifm_dev *sock)
|
static int tifm_ms_resume(struct tifm_dev *sock)
|
||||||
{
|
{
|
||||||
struct memstick_host *msh = tifm_get_drvdata(sock);
|
struct memstick_host *msh = tifm_get_drvdata(sock);
|
||||||
struct tifm_ms *host = memstick_priv(msh);
|
|
||||||
|
|
||||||
tifm_ms_initialize_host(host);
|
|
||||||
memstick_detect_change(msh);
|
|
||||||
|
|
||||||
|
memstick_resume_host(msh);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -312,6 +312,8 @@ int memstick_add_host(struct memstick_host *host);
|
||||||
void memstick_remove_host(struct memstick_host *host);
|
void memstick_remove_host(struct memstick_host *host);
|
||||||
void memstick_free_host(struct memstick_host *host);
|
void memstick_free_host(struct memstick_host *host);
|
||||||
void memstick_detect_change(struct memstick_host *host);
|
void memstick_detect_change(struct memstick_host *host);
|
||||||
|
void memstick_suspend_host(struct memstick_host *host);
|
||||||
|
void memstick_resume_host(struct memstick_host *host);
|
||||||
|
|
||||||
void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
|
void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
|
||||||
struct scatterlist *sg);
|
struct scatterlist *sg);
|
||||||
|
|
Loading…
Reference in a new issue