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

Commit 8661bb5b authored by Dominik Brodowski's avatar Dominik Brodowski
Browse files

[PATCH] pcmcia: default suspend and resume handling



In all but one case, the suspend and resume functions of PCMCIA drivers
contain mostly of calls to pcmcia_release_configuration() and
pcmcia_request_configuration(). Therefore, move this code out of the
drivers and into the core.

Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent 50db3fdb
Loading
Loading
Loading
Loading
+0 −24
Original line number Diff line number Diff line
@@ -1005,28 +1005,6 @@ static void bluecard_release(dev_link_t *link)
	pcmcia_disable_device(link->handle);
}

static int bluecard_suspend(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state |= DEV_SUSPEND;
	if (link->state & DEV_CONFIG)
		pcmcia_release_configuration(link->handle);

	return 0;
}

static int bluecard_resume(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state &= ~DEV_SUSPEND;
	if (DEV_OK(link))
		pcmcia_request_configuration(link->handle, &link->conf);

	return 0;
}

static struct pcmcia_device_id bluecard_ids[] = {
	PCMCIA_DEVICE_PROD_ID12("BlueCard", "LSE041", 0xbaf16fbf, 0x657cc15e),
	PCMCIA_DEVICE_PROD_ID12("BTCFCARD", "LSE139", 0xe3987764, 0x2524b59c),
@@ -1043,8 +1021,6 @@ static struct pcmcia_driver bluecard_driver = {
	.probe		= bluecard_attach,
	.remove		= bluecard_detach,
	.id_table	= bluecard_ids,
	.suspend	= bluecard_suspend,
	.resume		= bluecard_resume,
};

static int __init init_bluecard_cs(void)
+0 −24
Original line number Diff line number Diff line
@@ -842,28 +842,6 @@ static void bt3c_release(dev_link_t *link)
	pcmcia_disable_device(link->handle);
}

static int bt3c_suspend(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state |= DEV_SUSPEND;
	if (link->state & DEV_CONFIG)
		pcmcia_release_configuration(link->handle);

	return 0;
}

static int bt3c_resume(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state &= ~DEV_SUSPEND;
	if (DEV_OK(link))
		pcmcia_request_configuration(link->handle, &link->conf);

	return 0;
}


static struct pcmcia_device_id bt3c_ids[] = {
	PCMCIA_DEVICE_PROD_ID13("3COM", "Bluetooth PC Card", 0xefce0a31, 0xd4ce9b02),
@@ -879,8 +857,6 @@ static struct pcmcia_driver bt3c_driver = {
	.probe		= bt3c_attach,
	.remove		= bt3c_detach,
	.id_table	= bt3c_ids,
	.suspend	= bt3c_suspend,
	.resume		= bt3c_resume,
};

static int __init init_bt3c_cs(void)
+0 −25
Original line number Diff line number Diff line
@@ -771,29 +771,6 @@ static void btuart_release(dev_link_t *link)
	pcmcia_disable_device(link->handle);
}

static int btuart_suspend(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state |= DEV_SUSPEND;
	if (link->state & DEV_CONFIG)
		pcmcia_release_configuration(link->handle);

	return 0;
}

static int btuart_resume(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state &= ~DEV_SUSPEND;
	if (DEV_OK(link))
		pcmcia_request_configuration(link->handle, &link->conf);

	return 0;
}


static struct pcmcia_device_id btuart_ids[] = {
	/* don't use this driver. Use serial_cs + hci_uart instead */
	PCMCIA_DEVICE_NULL
@@ -808,8 +785,6 @@ static struct pcmcia_driver btuart_driver = {
	.probe		= btuart_attach,
	.remove		= btuart_detach,
	.id_table	= btuart_ids,
	.suspend	= btuart_suspend,
	.resume		= btuart_resume,
};

static int __init init_btuart_cs(void)
+0 −24
Original line number Diff line number Diff line
@@ -723,28 +723,6 @@ static void dtl1_release(dev_link_t *link)
	pcmcia_disable_device(link->handle);
}

static int dtl1_suspend(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state |= DEV_SUSPEND;
	if (link->state & DEV_CONFIG)
		pcmcia_release_configuration(link->handle);

	return 0;
}

static int dtl1_resume(struct pcmcia_device *dev)
{
	dev_link_t *link = dev_to_instance(dev);

	link->state &= ~DEV_SUSPEND;
	if (DEV_OK(link))
		pcmcia_request_configuration(link->handle, &link->conf);

	return 0;
}


static struct pcmcia_device_id dtl1_ids[] = {
	PCMCIA_DEVICE_PROD_ID12("Nokia Mobile Phones", "DTL-1", 0xe1bfdd64, 0xe168480d),
@@ -762,8 +740,6 @@ static struct pcmcia_driver dtl1_driver = {
	.probe		= dtl1_attach,
	.remove		= dtl1_detach,
	.id_table	= dtl1_ids,
	.suspend	= dtl1_suspend,
	.resume		= dtl1_resume,
};

static int __init init_dtl1_cs(void)
+0 −9
Original line number Diff line number Diff line
@@ -1870,10 +1870,6 @@ static int cm4000_suspend(struct pcmcia_device *p_dev)
	struct cm4000_dev *dev;

	dev = link->priv;

	link->state |= DEV_SUSPEND;
	if (link->state & DEV_CONFIG)
		pcmcia_release_configuration(link->handle);
	stop_monitor(dev);

	return 0;
@@ -1885,11 +1881,6 @@ static int cm4000_resume(struct pcmcia_device *p_dev)
	struct cm4000_dev *dev;

	dev = link->priv;

	link->state &= ~DEV_SUSPEND;
	if (link->state & DEV_CONFIG)
		pcmcia_request_configuration(link->handle, &link->conf);

	if (link->open)
		start_monitor(dev);

Loading