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

[media] dvb_usb_v2: implement .get_firmware_name()



Use callback to return firmware name instead of static firmware name.
There is some chips that needs to select firmware name according to
chip revision.

Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 496e8278
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -278,7 +278,7 @@ struct dvb_usb_device_properties {

#define RECONNECTS_USB                  1
	int        (*download_firmware) (struct dvb_usb_device *, const struct firmware *);
	const char *firmware;
	int (*get_firmware_name) (struct dvb_usb_device *, const char **);

	int size_of_priv;

+8 −3
Original line number Diff line number Diff line
@@ -79,15 +79,20 @@ int dvb_usb_download_firmware(struct dvb_usb_device *d)
{
	int ret;
	const struct firmware *fw = NULL;
	const char *name;

	if ((ret = request_firmware(&fw, d->props.firmware, &d->udev->dev)) != 0) {
	ret = d->props.get_firmware_name(d, &name);
	if (ret < 0)
		return ret;

	if ((ret = request_firmware(&fw, name, &d->udev->dev)) != 0) {
		err("did not find the firmware file. (%s) "
			"Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)",
			d->props.firmware,ret);
			name,ret);
		return ret;
	}

	info("downloading firmware from file '%s'", d->props.firmware);
	info("downloading firmware from file '%s'", name);

	switch (d->props.usb_ctrl) {
		case CYPRESS_AN2135: