Skip to content

Commit

Permalink
[media] dvb_usb_v2: .read_mac_address() callback changes
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Antti Palosaari authored and Mauro Carvalho Chehab committed Aug 4, 2012
1 parent dd5e52c commit ddee569
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
2 changes: 1 addition & 1 deletion drivers/media/dvb/dvb-usb/dvb_usb.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
17 changes: 8 additions & 9 deletions drivers/media/dvb/dvb-usb/dvb_usb_dvb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
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);
}
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);
}

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;
Expand Down

0 comments on commit ddee569

Please sign in to comment.