forked from Minki/linux
[media] dvb_usb_v2: .read_mac_address() callback changes
Give DVB adapter as a parameter for callback. MAC address is adapter property and it could be (at least in theory) there is devices having multiple adapters and all has own MAC. Also add error handling. If callback fails error is returned which leads device unregister. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
dd5e52cdf9
commit
ddee56943a
@ -181,7 +181,7 @@ struct dvb_usb_device_properties {
|
||||
|
||||
int (*power_ctrl) (struct dvb_usb_device *, int);
|
||||
int (*read_config) (struct dvb_usb_device *d);
|
||||
int (*read_mac_address) (struct dvb_usb_device *, u8 []);
|
||||
int (*read_mac_address) (struct dvb_usb_adapter *, u8 []);
|
||||
int (*frontend_attach) (struct dvb_usb_adapter *);
|
||||
int (*tuner_attach) (struct dvb_usb_adapter *);
|
||||
int (*frontend_ctrl) (struct dvb_frontend *, int);
|
||||
|
@ -203,22 +203,21 @@ int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap)
|
||||
ret);
|
||||
goto err;
|
||||
}
|
||||
|
||||
adap->dvb_adap.priv = adap;
|
||||
|
||||
if (adap->dev->props->read_mac_address) {
|
||||
if (adap->dev->props->read_mac_address(adap->dev,
|
||||
adap->dvb_adap.proposed_mac) == 0)
|
||||
ret = adap->dev->props->read_mac_address(adap,
|
||||
adap->dvb_adap.proposed_mac);
|
||||
if (ret < 0)
|
||||
goto err_dmx;
|
||||
|
||||
pr_info("%s: MAC address: %pM\n", KBUILD_MODNAME,
|
||||
adap->dvb_adap.proposed_mac);
|
||||
else
|
||||
pr_err("%s: MAC address reading failed\n",
|
||||
KBUILD_MODNAME);
|
||||
}
|
||||
|
||||
|
||||
adap->demux.dmx.capabilities = DMX_TS_FILTERING | DMX_SECTION_FILTERING;
|
||||
adap->demux.priv = adap;
|
||||
|
||||
adap->demux.filternum = 0;
|
||||
if (adap->demux.filternum < adap->max_feed_count)
|
||||
adap->demux.filternum = adap->max_feed_count;
|
||||
|
Loading…
Reference in New Issue
Block a user