diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-07-24 08:25:39 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-01-21 10:45:25 -0500 |
commit | da989e0bc7f2b3db3fea417c0bae3c20c6455995 (patch) | |
tree | 4952ca6344a8a6bdff7409ed21a1e1c3743b188b | |
parent | f2ba9e5dda2afd4615dbd3c48afe64fe2ce70d4e (diff) |
[media] drxk: Don't assume a default firmware name
Move the ngene/ddbridge firmware into their drivers.
There are two reasons for that:
1) The firmware used there didn't work for a few devices
I tested here (Terratec H5, H6 and H7);
2) At least Terratec H7 doesn't seem to require a firmware
for it to work.
After this change, if firmware is not specified, the driver will
use a rom-based firmware (this seems to be the case for Terratec
H7, although I need to better check the USB dumps to be sure about
that).
In any case, the firmware seems to be optional, as the DRX-K driver
don't return the firmware load error.
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/dvb/ddbridge/ddbridge-core.c | 1 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/az6007.c | 8 | ||||
-rw-r--r-- | drivers/media/dvb/frontends/drxk_hard.c | 4 | ||||
-rw-r--r-- | drivers/media/dvb/ngene/ngene-cards.c | 1 |
4 files changed, 8 insertions, 6 deletions
diff --git a/drivers/media/dvb/ddbridge/ddbridge-core.c b/drivers/media/dvb/ddbridge/ddbridge-core.c index 2f31648bba90..243dbb37bd5a 100644 --- a/drivers/media/dvb/ddbridge/ddbridge-core.c +++ b/drivers/media/dvb/ddbridge/ddbridge-core.c | |||
@@ -578,6 +578,7 @@ static int demod_attach_drxk(struct ddb_input *input) | |||
578 | struct drxk_config config; | 578 | struct drxk_config config; |
579 | 579 | ||
580 | memset(&config, 0, sizeof(config)); | 580 | memset(&config, 0, sizeof(config)); |
581 | config.microcode_name = "drxk_a3.mc"; | ||
581 | config.adr = 0x29 + (input->nr & 1); | 582 | config.adr = 0x29 + (input->nr & 1); |
582 | 583 | ||
583 | fe = input->fe = dvb_attach(drxk_attach, &config, i2c); | 584 | fe = input->fe = dvb_attach(drxk_attach, &config, i2c); |
diff --git a/drivers/media/dvb/dvb-usb/az6007.c b/drivers/media/dvb/dvb-usb/az6007.c index bb597c67cc9f..523972f9ef56 100644 --- a/drivers/media/dvb/dvb-usb/az6007.c +++ b/drivers/media/dvb/dvb-usb/az6007.c | |||
@@ -55,7 +55,8 @@ static struct drxk_config terratec_h7_drxk = { | |||
55 | .adr = 0x29, | 55 | .adr = 0x29, |
56 | .single_master = 1, | 56 | .single_master = 1, |
57 | .no_i2c_bridge = 0, | 57 | .no_i2c_bridge = 0, |
58 | .microcode_name = "dvb-usb-terratec-h5-drxk.fw", | 58 | .max_size = 64, |
59 | // .microcode_name = "dvb-usb-terratec-h5-drxk.fw", | ||
59 | }; | 60 | }; |
60 | 61 | ||
61 | static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable) | 62 | static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable) |
@@ -127,7 +128,8 @@ static int az6007_usb_out_op(struct dvb_usb_device *d, u8 req, u16 value, | |||
127 | debug_dump(b, blen, deb_xfer); | 128 | debug_dump(b, blen, deb_xfer); |
128 | 129 | ||
129 | if (blen > 64) { | 130 | if (blen > 64) { |
130 | err("az6007: doesn't suport I2C transactions longer than 64 bytes\n"); | 131 | err("az6007: tried to write %d bytes, but I2C max size is 64 bytes\n", |
132 | blen); | ||
131 | return -EOPNOTSUPP; | 133 | return -EOPNOTSUPP; |
132 | } | 134 | } |
133 | 135 | ||
@@ -395,6 +397,7 @@ static int az6007_frontend_attach(struct dvb_usb_adapter *adap) | |||
395 | adap->fe2->tuner_priv = adap->fe->tuner_priv; | 397 | adap->fe2->tuner_priv = adap->fe->tuner_priv; |
396 | memcpy(&adap->fe2->ops.tuner_ops, | 398 | memcpy(&adap->fe2->ops.tuner_ops, |
397 | &adap->fe->ops.tuner_ops, sizeof(adap->fe->ops.tuner_ops)); | 399 | &adap->fe->ops.tuner_ops, sizeof(adap->fe->ops.tuner_ops)); |
400 | |||
398 | return 0; | 401 | return 0; |
399 | 402 | ||
400 | out_free: | 403 | out_free: |
@@ -572,7 +575,6 @@ static struct dvb_usb_device_properties az6007_properties = { | |||
572 | .num_adapters = 1, | 575 | .num_adapters = 1, |
573 | .adapter = { | 576 | .adapter = { |
574 | { | 577 | { |
575 | /* .caps = DVB_USB_ADAP_RECEIVES_204_BYTE_TS, */ | ||
576 | .streaming_ctrl = az6007_streaming_ctrl, | 578 | .streaming_ctrl = az6007_streaming_ctrl, |
577 | .frontend_attach = az6007_frontend_attach, | 579 | .frontend_attach = az6007_frontend_attach, |
578 | 580 | ||
diff --git a/drivers/media/dvb/frontends/drxk_hard.c b/drivers/media/dvb/frontends/drxk_hard.c index 6980ed7b8786..4b99255f7ba0 100644 --- a/drivers/media/dvb/frontends/drxk_hard.c +++ b/drivers/media/dvb/frontends/drxk_hard.c | |||
@@ -6070,9 +6070,7 @@ static int init_drxk(struct drxk_state *state) | |||
6070 | if (status < 0) | 6070 | if (status < 0) |
6071 | goto error; | 6071 | goto error; |
6072 | 6072 | ||
6073 | if (!state->microcode_name) | 6073 | if (state->microcode_name) |
6074 | load_microcode(state, "drxk_a3.mc"); | ||
6075 | else | ||
6076 | load_microcode(state, state->microcode_name); | 6074 | load_microcode(state, state->microcode_name); |
6077 | 6075 | ||
6078 | /* disable token-ring bus through OFDM block for possible ucode upload */ | 6076 | /* disable token-ring bus through OFDM block for possible ucode upload */ |
diff --git a/drivers/media/dvb/ngene/ngene-cards.c b/drivers/media/dvb/ngene/ngene-cards.c index 8418c02bcefe..7539a5d71029 100644 --- a/drivers/media/dvb/ngene/ngene-cards.c +++ b/drivers/media/dvb/ngene/ngene-cards.c | |||
@@ -216,6 +216,7 @@ static int demod_attach_drxk(struct ngene_channel *chan, | |||
216 | struct drxk_config config; | 216 | struct drxk_config config; |
217 | 217 | ||
218 | memset(&config, 0, sizeof(config)); | 218 | memset(&config, 0, sizeof(config)); |
219 | config.microcode_name = "drxk_a3.mc"; | ||
219 | config.adr = 0x29 + (chan->number ^ 2); | 220 | config.adr = 0x29 + (chan->number ^ 2); |
220 | 221 | ||
221 | chan->fe = dvb_attach(drxk_attach, &config, i2c); | 222 | chan->fe = dvb_attach(drxk_attach, &config, i2c); |