コード例 #1
0
ファイル: mod.c プロジェクト: 33d/linux-2.6.21-hh20
int usbhs_mod_probe(struct usbhs_priv *priv)
{
	struct device *dev = usbhs_priv_to_dev(priv);
	int ret;

	/*
	 * install host/gadget driver
	 */
	ret = usbhs_mod_host_probe(priv);
	if (ret < 0)
		return ret;

	ret = usbhs_mod_gadget_probe(priv);
	if (ret < 0)
		goto mod_init_host_err;

	/* irq settings */
	ret = request_irq(priv->irq, usbhs_interrupt,
			  0, dev_name(dev), priv);
	if (ret) {
		dev_err(dev, "irq request err\n");
		goto mod_init_gadget_err;
	}

	return ret;

mod_init_gadget_err:
	usbhs_mod_gadget_remove(priv);
mod_init_host_err:
	usbhs_mod_host_remove(priv);

	return ret;
}
コード例 #2
0
int usbhs_mod_probe(struct usbhs_priv *priv)
{
    struct device *dev = usbhs_priv_to_dev(priv);
    int ret;

    ret = usbhs_mod_host_probe(priv);
    if (ret < 0)
        return ret;

    ret = usbhs_mod_gadget_probe(priv);
    if (ret < 0)
        goto mod_init_host_err;


    ret = request_irq(priv->irq, usbhs_interrupt,
                      priv->irqflags, dev_name(dev), priv);
    if (ret) {
        dev_err(dev, "irq request err\n");
        goto mod_init_gadget_err;
    }

    return ret;

mod_init_gadget_err:
    usbhs_mod_gadget_remove(priv);
mod_init_host_err:
    usbhs_mod_host_remove(priv);

    return ret;
}
コード例 #3
0
ファイル: mod.c プロジェクト: 33d/linux-2.6.21-hh20
void usbhs_mod_remove(struct usbhs_priv *priv)
{
	usbhs_mod_host_remove(priv);
	usbhs_mod_gadget_remove(priv);
	free_irq(priv->irq, priv);
}
コード例 #4
0
ファイル: mod.c プロジェクト: AshishNamdev/linux
void usbhs_mod_remove(struct usbhs_priv *priv)
{
	usbhs_mod_host_remove(priv);
	usbhs_mod_gadget_remove(priv);
}