From 262c13acda1e4baed773148a9a0c7c85791d75db Mon Sep 17 00:00:00 2001 From: Antti Palosaari Date: Thu, 24 May 2012 09:31:45 -0300 Subject: [PATCH] --- yaml --- r: 330565 b: refs/heads/master c: 8b9dff5828cc91abddf8f4a44c8a38b1012052af h: refs/heads/master i: 330563: 7c11e84389240211bee97473bba4c9212bcf79b0 v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-usb/dvb_usb.h | 2 +- trunk/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c | 11 ++++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 10e01b4762ad..df7aff9a0f53 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 496e82789935df7a9b13ce58807973004e443847 +refs/heads/master: 8b9dff5828cc91abddf8f4a44c8a38b1012052af diff --git a/trunk/drivers/media/dvb/dvb-usb/dvb_usb.h b/trunk/drivers/media/dvb/dvb-usb/dvb_usb.h index e3d55525dec5..c538e113bd58 100644 --- a/trunk/drivers/media/dvb/dvb-usb/dvb_usb.h +++ b/trunk/drivers/media/dvb/dvb-usb/dvb_usb.h @@ -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; diff --git a/trunk/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c b/trunk/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c index dd9f8220adea..b9b169c8f0da 100644 --- a/trunk/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c +++ b/trunk/drivers/media/dvb/dvb-usb/dvb_usb_firmware.c @@ -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: