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

[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
...@@ -278,7 +278,7 @@ struct dvb_usb_device_properties { ...@@ -278,7 +278,7 @@ struct dvb_usb_device_properties {
#define RECONNECTS_USB 1 #define RECONNECTS_USB 1
int (*download_firmware) (struct dvb_usb_device *, const struct firmware *); 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; int size_of_priv;
......
...@@ -79,15 +79,20 @@ int dvb_usb_download_firmware(struct dvb_usb_device *d) ...@@ -79,15 +79,20 @@ int dvb_usb_download_firmware(struct dvb_usb_device *d)
{ {
int ret; int ret;
const struct firmware *fw = NULL; 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) " err("did not find the firmware file. (%s) "
"Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)", "Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)",
d->props.firmware,ret); name,ret);
return ret; return ret;
} }
info("downloading firmware from file '%s'", d->props.firmware); info("downloading firmware from file '%s'", name);
switch (d->props.usb_ctrl) { switch (d->props.usb_ctrl) {
case CYPRESS_AN2135: case CYPRESS_AN2135:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment