Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d114ad54 authored by Alex Dubov's avatar Alex Dubov Committed by Linus Torvalds
Browse files

memstick: add memstick_suspend/resume_host methods



Bus driver may need to be informed that host is being suspended/resumed.

Signed-off-by: default avatarAlex Dubov <oakad@yahoo.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e1f19995
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -561,6 +561,31 @@ void memstick_free_host(struct memstick_host *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)
{
	drv->driver.bus = &memstick_bus_type;
+4 −4
Original line number Diff line number Diff line
@@ -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)
{
	struct memstick_host *msh = tifm_get_drvdata(sock);

	memstick_suspend_host(msh);
	return 0;
}

static int tifm_ms_resume(struct tifm_dev *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;
}

+2 −0
Original line number Diff line number Diff line
@@ -312,6 +312,8 @@ int memstick_add_host(struct memstick_host *host);
void memstick_remove_host(struct memstick_host *host);
void memstick_free_host(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,
			  struct scatterlist *sg);