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

Commit cdcc0229 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman
Browse files

staging: comedi: quatech_daqp_cs: cleanup daqp_cs_attach()



Absorb the code from daqp_cs_config() into this function and
properly return the error if the configuration fails.

Remove the dev_dbg() function trace messages.

Fix the kzalloc(). The preferred form for passing a size of a struct
is:

	p = kzalloc(sizeof(*p), ...);

Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 86be5680
Loading
Loading
Loading
Loading
+21 −32
Original line number Diff line number Diff line
@@ -944,41 +944,12 @@ static int daqp_pcmcia_config_loop(struct pcmcia_device *p_dev, void *priv_data)
	return pcmcia_request_io(p_dev);
}

static void daqp_cs_config(struct pcmcia_device *link)
{
	int ret;

	dev_dbg(&link->dev, "daqp_cs_config\n");

	link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;

	ret = pcmcia_loop_config(link, daqp_pcmcia_config_loop, NULL);
	if (ret) {
		dev_warn(&link->dev, "no configuration found\n");
		goto failed;
	}

	ret = pcmcia_request_irq(link, daqp_interrupt);
	if (ret)
		goto failed;

	ret = pcmcia_enable_device(link);
	if (ret)
		goto failed;

	return;

failed:
	pcmcia_disable_device(link);
}

static int daqp_cs_attach(struct pcmcia_device *link)
{
	struct local_info_t *local;
	int ret;
	int i;

	dev_dbg(&link->dev, "daqp_cs_attach()\n");

	for (i = 0; i < MAX_DEV; i++)
		if (dev_table[i] == NULL)
			break;
@@ -988,7 +959,7 @@ static int daqp_cs_attach(struct pcmcia_device *link)
	}

	/* Allocate space for private device-specific data */
	local = kzalloc(sizeof(struct local_info_t), GFP_KERNEL);
	local = kzalloc(sizeof(*local), GFP_KERNEL);
	if (!local)
		return -ENOMEM;

@@ -997,9 +968,27 @@ static int daqp_cs_attach(struct pcmcia_device *link)
	local->link = link;
	link->priv = local;

	daqp_cs_config(link);
	link->config_flags |= CONF_ENABLE_IRQ | CONF_AUTO_SET_IO;

	ret = pcmcia_loop_config(link, daqp_pcmcia_config_loop, NULL);
	if (ret) {
		dev_warn(&link->dev, "no configuration found\n");
		goto failed;
	}

	ret = pcmcia_request_irq(link, daqp_interrupt);
	if (ret)
		goto failed;

	ret = pcmcia_enable_device(link);
	if (ret)
		goto failed;

	return 0;

failed:
	pcmcia_disable_device(link);
	return ret;
}

static void daqp_cs_detach(struct pcmcia_device *link)