mcp_enable(mcp);
id = mcp_reg_read(mcp, UCB_ID);
+ mcp_disable(mcp);
if (id != UCB_ID_1200 && id != UCB_ID_1300 && id != UCB_ID_TC35143) {
printk(KERN_WARNING "UCB1x00 ID not found: %04x\n", id);
- goto err_disable;
+ goto out;
}
ucb = kzalloc(sizeof(struct ucb1x00), GFP_KERNEL);
ret = -ENOMEM;
if (!ucb)
- goto err_disable;
+ goto out;
device_initialize(&ucb->dev);
ucb->dev.class = &ucb1x00_class;
if (ret)
goto err_dev_add;
+ ucb1x00_enable(ucb);
ucb->irq = ucb1x00_detect_irq(ucb);
+ ucb1x00_disable(ucb);
if (ucb->irq == NO_IRQ) {
dev_err(&ucb->dev, "IRQ probe failed\n");
ret = -ENODEV;
device_del(&ucb->dev);
err_dev_add:
put_device(&ucb->dev);
- err_disable:
- mcp_disable(mcp);
out:
if (pdata && pdata->reset)
pdata->reset(UCB_RST_PROBE_FAIL);