[media] dvb-usb-v2: add frontend_detach callback
Add frontend_detach callback in order to allow custom detach. It is needed when demod driver is implemented I2C client or some other kernel bus, but not proprietary dvb_attach / dvb_detach. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Родитель
ef2fb46b6d
Коммит
ca42129f86
|
@ -214,6 +214,7 @@ struct dvb_usb_adapter_properties {
|
|||
* @read_config: called to resolve device configuration
|
||||
* @read_mac_address: called to resolve adapter mac-address
|
||||
* @frontend_attach: called to attach the possible frontends
|
||||
* @frontend_detach: called to detach the possible frontends
|
||||
* @tuner_attach: called to attach the possible tuners
|
||||
* @frontend_ctrl: called to power on/off active frontend
|
||||
* @streaming_ctrl: called to start/stop the usb streaming of adapter
|
||||
|
@ -254,6 +255,7 @@ struct dvb_usb_device_properties {
|
|||
int (*read_config) (struct dvb_usb_device *d);
|
||||
int (*read_mac_address) (struct dvb_usb_adapter *, u8 []);
|
||||
int (*frontend_attach) (struct dvb_usb_adapter *);
|
||||
int (*frontend_detach)(struct dvb_usb_adapter *);
|
||||
int (*tuner_attach) (struct dvb_usb_adapter *);
|
||||
int (*frontend_ctrl) (struct dvb_frontend *, int);
|
||||
int (*streaming_ctrl) (struct dvb_frontend *, int);
|
||||
|
|
|
@ -664,9 +664,10 @@ err:
|
|||
|
||||
static int dvb_usbv2_adapter_frontend_exit(struct dvb_usb_adapter *adap)
|
||||
{
|
||||
int i;
|
||||
dev_dbg(&adap_to_d(adap)->udev->dev, "%s: adap=%d\n", __func__,
|
||||
adap->id);
|
||||
int ret, i;
|
||||
struct dvb_usb_device *d = adap_to_d(adap);
|
||||
|
||||
dev_dbg(&d->udev->dev, "%s: adap=%d\n", __func__, adap->id);
|
||||
|
||||
for (i = MAX_NO_OF_FE_PER_ADAP - 1; i >= 0; i--) {
|
||||
if (adap->fe[i]) {
|
||||
|
@ -675,6 +676,15 @@ static int dvb_usbv2_adapter_frontend_exit(struct dvb_usb_adapter *adap)
|
|||
}
|
||||
}
|
||||
|
||||
if (d->props->frontend_detach) {
|
||||
ret = d->props->frontend_detach(adap);
|
||||
if (ret < 0) {
|
||||
dev_dbg(&d->udev->dev,
|
||||
"%s: frontend_detach() failed=%d\n",
|
||||
__func__, ret);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче