summaryrefslogtreecommitdiff
path: root/drivers/media/dvb
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2012-05-25 12:28:43 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-08-04 07:56:22 -0300
commit005bc3fce76b3bd7c0a583cf3e89ce11c87077cd (patch)
tree3e0f4cc1f5927e1eb7473d273629654293454d5e /drivers/media/dvb
parent649216704aaa1148c638346ec4c0dc71b164f521 (diff)
[media] dvb_usb_v2: restore .firmware - pointer to name
Most commonly only one firmware is used by the driver and it is not needed to selected run time. So restore old functionality but allow .get_firmware_name() callback to override it. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb')
-rw-r--r--drivers/media/dvb/dvb-usb/dvb_usb.h7
-rw-r--r--drivers/media/dvb/dvb-usb/dvb_usb_firmware.c10
2 files changed, 11 insertions, 6 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb.h b/drivers/media/dvb/dvb-usb/dvb_usb.h
index 974337ddc5c4..716f17455669 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb.h
+++ b/drivers/media/dvb/dvb-usb/dvb_usb.h
@@ -219,12 +219,13 @@ struct dvb_usb_device_properties {
#define CYPRESS_FX2 3
int usb_ctrl;
+ int size_of_priv;
+
+ const char *firmware;
+ int (*get_firmware_name) (struct dvb_usb_device *, const char **);
#define RECONNECTS_USB 1
int (*download_firmware) (struct dvb_usb_device *,
const struct firmware *);
- int (*get_firmware_name) (struct dvb_usb_device *, const char **);
-
- int size_of_priv;
int num_adapters;
int (*get_adapter_count) (struct dvb_usb_device *);
diff --git a/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c b/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c
index 62bd865a6462..e0b43139c0c4 100644
--- a/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c
+++ b/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c
@@ -96,9 +96,13 @@ int dvb_usb_download_firmware(struct dvb_usb_device *d)
const struct firmware *fw = NULL;
const char *name;
- ret = d->props.get_firmware_name(d, &name);
- if (ret < 0)
- return ret;
+ /* resolve firmware name */
+ name = d->props.firmware;
+ if (d->props.get_firmware_name) {
+ ret = d->props.get_firmware_name(d, &name);
+ if (ret < 0)
+ return ret;
+ }
ret = request_firmware(&fw, name, &d->udev->dev);
if (ret != 0) {