aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2011-07-24 08:25:39 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-01-21 10:45:25 -0500
commitda989e0bc7f2b3db3fea417c0bae3c20c6455995 (patch)
tree4952ca6344a8a6bdff7409ed21a1e1c3743b188b
parentf2ba9e5dda2afd4615dbd3c48afe64fe2ce70d4e (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.c1
-rw-r--r--drivers/media/dvb/dvb-usb/az6007.c8
-rw-r--r--drivers/media/dvb/frontends/drxk_hard.c4
-rw-r--r--drivers/media/dvb/ngene/ngene-cards.c1
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
61static int drxk_gate_ctrl(struct dvb_frontend *fe, int enable) 62static 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
400out_free: 403out_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);