Commit ddee5694 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab
Browse files

[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: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent dd5e52cd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+8 −9
Original line number Diff line number Diff line
@@ -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;