1740 }
1741 adapter->mfe_dvbdev = dvbdev;
1742 }
1743 }
1744 }
1745
1746 if (dvbdev->users == -1 && fe->ops.ts_bus_ctrl) {
1747 if ((ret = fe->ops.ts_bus_ctrl(fe, 1)) < 0)
1748 goto err0;
1749 }
1750
1751 if ((ret = dvb_generic_open (inode, file)) < 0)
1752 goto err1;
1753
1754 if ((file->f_flags & O_ACCMODE) != O_RDONLY) {
1755
1756 fepriv->tune_mode_flags &= ~FE_TUNE_MODE_ONESHOT;
1757 fepriv->tone = -1;
1758 fepriv->voltage = -1;
1759
1760 ret = dvb_frontend_start (fe);
1761 if (ret)
1762 goto err2;
1763
1764
1765 fepriv->events.eventr = fepriv->events.eventw = 0;
1766 }
1767
1768 if (adapter->mfe_shared)
1769 mutex_unlock (&adapter->mfe_lock);
1770 return ret;
1771
1772err2:
1773 dvb_generic_release(inode, file);
1774err1:
1775 if (dvbdev->users == -1 && fe->ops.ts_bus_ctrl)
1776 fe->ops.ts_bus_ctrl(fe, 0);
1777err0:
1778 if (adapter->mfe_shared)
1779 mutex_unlock (&adapter->mfe_lock);
1780 return ret;