diff options
author | Jean Delvare <khali@linux-fr.org> | 2009-04-26 04:43:59 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-06-16 17:20:56 -0400 |
commit | e9785250ef2eead8bd5e9166679c0be0595df387 (patch) | |
tree | 8bc16b02d4f80206190183e7a9d3224395e9203a | |
parent | f8eaaf4f2a2810d6e486da2916ef07f7e00665c9 (diff) |
V4L/DVB (11723): Link firmware to physical device
Use the physical device rather than the i2c adapter as the reference
device when loading firmwares. This will prevent the sysfs name
collision with i2c-dev that has been reported many times.
I may have missed other drivers which need the same fix.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/common/tuners/tuner-xc2028.c | 2 | ||||
-rw-r--r-- | drivers/media/common/tuners/xc5000.c | 2 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/af9013.c | 2 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/cx24116.c | 2 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/drx397xD.c | 4 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/nxt200x.c | 6 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/or51132.c | 2 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/tda10048.c | 2 |
8 files changed, 12 insertions, 10 deletions
diff --git a/drivers/media/common/tuners/tuner-xc2028.c b/drivers/media/common/tuners/tuner-xc2028.c index 1adce9ff52ce..fd83cc0c134c 100644 --- a/drivers/media/common/tuners/tuner-xc2028.c +++ b/drivers/media/common/tuners/tuner-xc2028.c | |||
@@ -272,7 +272,7 @@ static int load_all_firmwares(struct dvb_frontend *fe) | |||
272 | fname = firmware_name; | 272 | fname = firmware_name; |
273 | 273 | ||
274 | tuner_dbg("Reading firmware %s\n", fname); | 274 | tuner_dbg("Reading firmware %s\n", fname); |
275 | rc = request_firmware(&fw, fname, &priv->i2c_props.adap->dev); | 275 | rc = request_firmware(&fw, fname, priv->i2c_props.adap->dev.parent); |
276 | if (rc < 0) { | 276 | if (rc < 0) { |
277 | if (rc == -ENOENT) | 277 | if (rc == -ENOENT) |
278 | tuner_err("Error: firmware %s not found.\n", | 278 | tuner_err("Error: firmware %s not found.\n", |
diff --git a/drivers/media/common/tuners/xc5000.c b/drivers/media/common/tuners/xc5000.c index b54598550dc4..f3880f8977e0 100644 --- a/drivers/media/common/tuners/xc5000.c +++ b/drivers/media/common/tuners/xc5000.c | |||
@@ -575,7 +575,7 @@ static int xc5000_fwupload(struct dvb_frontend *fe) | |||
575 | XC5000_DEFAULT_FIRMWARE); | 575 | XC5000_DEFAULT_FIRMWARE); |
576 | 576 | ||
577 | ret = request_firmware(&fw, XC5000_DEFAULT_FIRMWARE, | 577 | ret = request_firmware(&fw, XC5000_DEFAULT_FIRMWARE, |
578 | &priv->i2c_props.adap->dev); | 578 | priv->i2c_props.adap->dev.parent); |
579 | if (ret) { | 579 | if (ret) { |
580 | printk(KERN_ERR "xc5000: Upload failed. (file not found?)\n"); | 580 | printk(KERN_ERR "xc5000: Upload failed. (file not found?)\n"); |
581 | ret = XC_RESULT_RESET_FAILURE; | 581 | ret = XC_RESULT_RESET_FAILURE; |
diff --git a/drivers/media/dvb/frontends/af9013.c b/drivers/media/dvb/frontends/af9013.c index b2b50fb4cfd3..136c5863d81b 100644 --- a/drivers/media/dvb/frontends/af9013.c +++ b/drivers/media/dvb/frontends/af9013.c | |||
@@ -1455,7 +1455,7 @@ static int af9013_download_firmware(struct af9013_state *state) | |||
1455 | af9013_ops.info.name); | 1455 | af9013_ops.info.name); |
1456 | 1456 | ||
1457 | /* request the firmware, this will block and timeout */ | 1457 | /* request the firmware, this will block and timeout */ |
1458 | ret = request_firmware(&fw, fw_file, &state->i2c->dev); | 1458 | ret = request_firmware(&fw, fw_file, state->i2c->dev.parent); |
1459 | if (ret) { | 1459 | if (ret) { |
1460 | err("did not find the firmware file. (%s) " | 1460 | err("did not find the firmware file. (%s) " |
1461 | "Please see linux/Documentation/dvb/ for more details" \ | 1461 | "Please see linux/Documentation/dvb/ for more details" \ |
diff --git a/drivers/media/dvb/frontends/cx24116.c b/drivers/media/dvb/frontends/cx24116.c index 9b9f57264cef..2410d8b59b6b 100644 --- a/drivers/media/dvb/frontends/cx24116.c +++ b/drivers/media/dvb/frontends/cx24116.c | |||
@@ -492,7 +492,7 @@ static int cx24116_firmware_ondemand(struct dvb_frontend *fe) | |||
492 | printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", | 492 | printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", |
493 | __func__, CX24116_DEFAULT_FIRMWARE); | 493 | __func__, CX24116_DEFAULT_FIRMWARE); |
494 | ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE, | 494 | ret = request_firmware(&fw, CX24116_DEFAULT_FIRMWARE, |
495 | &state->i2c->dev); | 495 | state->i2c->dev.parent); |
496 | printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", | 496 | printk(KERN_INFO "%s: Waiting for firmware upload(2)...\n", |
497 | __func__); | 497 | __func__); |
498 | if (ret) { | 498 | if (ret) { |
diff --git a/drivers/media/dvb/frontends/drx397xD.c b/drivers/media/dvb/frontends/drx397xD.c index 172f1f928f02..010075535221 100644 --- a/drivers/media/dvb/frontends/drx397xD.c +++ b/drivers/media/dvb/frontends/drx397xD.c | |||
@@ -123,10 +123,10 @@ static int drx_load_fw(struct drx397xD_state *s, enum fw_ix ix) | |||
123 | } | 123 | } |
124 | memset(&fw[ix].data[0], 0, sizeof(fw[0].data)); | 124 | memset(&fw[ix].data[0], 0, sizeof(fw[0].data)); |
125 | 125 | ||
126 | if (request_firmware(&fw[ix].file, fw[ix].name, &s->i2c->dev) != 0) { | 126 | rc = request_firmware(&fw[ix].file, fw[ix].name, s->i2c->dev.parent); |
127 | if (rc != 0) { | ||
127 | printk(KERN_ERR "%s: Firmware \"%s\" not available\n", | 128 | printk(KERN_ERR "%s: Firmware \"%s\" not available\n", |
128 | mod_name, fw[ix].name); | 129 | mod_name, fw[ix].name); |
129 | rc = -ENOENT; | ||
130 | goto exit_err; | 130 | goto exit_err; |
131 | } | 131 | } |
132 | 132 | ||
diff --git a/drivers/media/dvb/frontends/nxt200x.c b/drivers/media/dvb/frontends/nxt200x.c index a8429ebfa8a2..eac20650499f 100644 --- a/drivers/media/dvb/frontends/nxt200x.c +++ b/drivers/media/dvb/frontends/nxt200x.c | |||
@@ -879,7 +879,8 @@ static int nxt2002_init(struct dvb_frontend* fe) | |||
879 | 879 | ||
880 | /* request the firmware, this will block until someone uploads it */ | 880 | /* request the firmware, this will block until someone uploads it */ |
881 | printk("nxt2002: Waiting for firmware upload (%s)...\n", NXT2002_DEFAULT_FIRMWARE); | 881 | printk("nxt2002: Waiting for firmware upload (%s)...\n", NXT2002_DEFAULT_FIRMWARE); |
882 | ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE, &state->i2c->dev); | 882 | ret = request_firmware(&fw, NXT2002_DEFAULT_FIRMWARE, |
883 | state->i2c->dev.parent); | ||
883 | printk("nxt2002: Waiting for firmware upload(2)...\n"); | 884 | printk("nxt2002: Waiting for firmware upload(2)...\n"); |
884 | if (ret) { | 885 | if (ret) { |
885 | printk("nxt2002: No firmware uploaded (timeout or file not found?)\n"); | 886 | printk("nxt2002: No firmware uploaded (timeout or file not found?)\n"); |
@@ -943,7 +944,8 @@ static int nxt2004_init(struct dvb_frontend* fe) | |||
943 | 944 | ||
944 | /* request the firmware, this will block until someone uploads it */ | 945 | /* request the firmware, this will block until someone uploads it */ |
945 | printk("nxt2004: Waiting for firmware upload (%s)...\n", NXT2004_DEFAULT_FIRMWARE); | 946 | printk("nxt2004: Waiting for firmware upload (%s)...\n", NXT2004_DEFAULT_FIRMWARE); |
946 | ret = request_firmware(&fw, NXT2004_DEFAULT_FIRMWARE, &state->i2c->dev); | 947 | ret = request_firmware(&fw, NXT2004_DEFAULT_FIRMWARE, |
948 | state->i2c->dev.parent); | ||
947 | printk("nxt2004: Waiting for firmware upload(2)...\n"); | 949 | printk("nxt2004: Waiting for firmware upload(2)...\n"); |
948 | if (ret) { | 950 | if (ret) { |
949 | printk("nxt2004: No firmware uploaded (timeout or file not found?)\n"); | 951 | printk("nxt2004: No firmware uploaded (timeout or file not found?)\n"); |
diff --git a/drivers/media/dvb/frontends/or51132.c b/drivers/media/dvb/frontends/or51132.c index 5ed32544de39..8133ea3cddd7 100644 --- a/drivers/media/dvb/frontends/or51132.c +++ b/drivers/media/dvb/frontends/or51132.c | |||
@@ -340,7 +340,7 @@ static int or51132_set_parameters(struct dvb_frontend* fe, | |||
340 | } | 340 | } |
341 | printk("or51132: Waiting for firmware upload(%s)...\n", | 341 | printk("or51132: Waiting for firmware upload(%s)...\n", |
342 | fwname); | 342 | fwname); |
343 | ret = request_firmware(&fw, fwname, &state->i2c->dev); | 343 | ret = request_firmware(&fw, fwname, state->i2c->dev.parent); |
344 | if (ret) { | 344 | if (ret) { |
345 | printk(KERN_WARNING "or51132: No firmware up" | 345 | printk(KERN_WARNING "or51132: No firmware up" |
346 | "loaded(timeout or file not found?)\n"); | 346 | "loaded(timeout or file not found?)\n"); |
diff --git a/drivers/media/dvb/frontends/tda10048.c b/drivers/media/dvb/frontends/tda10048.c index 28f580f858c6..dfa3e2ccc741 100644 --- a/drivers/media/dvb/frontends/tda10048.c +++ b/drivers/media/dvb/frontends/tda10048.c | |||
@@ -492,7 +492,7 @@ static int tda10048_firmware_upload(struct dvb_frontend *fe) | |||
492 | TDA10048_DEFAULT_FIRMWARE); | 492 | TDA10048_DEFAULT_FIRMWARE); |
493 | 493 | ||
494 | ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE, | 494 | ret = request_firmware(&fw, TDA10048_DEFAULT_FIRMWARE, |
495 | &state->i2c->dev); | 495 | state->i2c->dev.parent); |
496 | if (ret) { | 496 | if (ret) { |
497 | printk(KERN_ERR "%s: Upload failed. (file not found?)\n", | 497 | printk(KERN_ERR "%s: Upload failed. (file not found?)\n", |
498 | __func__); | 498 | __func__); |