Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 294935
b: refs/heads/master
c: 6fab81d
h: refs/heads/master
i:
  294933: f5f2f7b
  294931: 691b076
  294927: f6d1d12
v: v3
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Feb 14, 2012
1 parent cc7c0bf commit 44a5d0e
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ddea427fb3e64d817d4432e5efd2abbfc4ddb02e
refs/heads/master: 6fab81dfdc7b48c2e30ab05e9b30afb0c418bbbe
27 changes: 14 additions & 13 deletions trunk/drivers/media/common/tuners/xc5000.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct xc5000_priv {
u8 rf_mode;
u8 radio_input;

struct xc5000_fw_cfg *fw;
int chip_id;
};

/* Misc Defines */
Expand Down Expand Up @@ -219,13 +219,13 @@ static struct xc5000_fw_cfg xc5000c_41_024_5_31875 = {
.size = 16503,
};

static inline struct xc5000_fw_cfg *xc5000_assign_firmware(int fw)
static inline struct xc5000_fw_cfg *xc5000_assign_firmware(int chip_id)
{
switch (fw) {
switch (chip_id) {
default:
case XC5000_FW_A_1_6_114:
case XC5000A:
return &xc5000a_1_6_114;
case XC5000_FW_C_41_024_5_31875:
case XC5000C:
return &xc5000c_41_024_5_31875;
}
}
Expand Down Expand Up @@ -578,12 +578,13 @@ static int xc5000_fwupload(struct dvb_frontend *fe)
struct xc5000_priv *priv = fe->tuner_priv;
const struct firmware *fw;
int ret;
struct xc5000_fw_cfg *desired_fw = xc5000_assign_firmware(priv->chip_id);

/* request the firmware, this will block and timeout */
printk(KERN_INFO "xc5000: waiting for firmware upload (%s)...\n",
priv->fw->name);
desired_fw->name);

ret = request_firmware(&fw, priv->fw->name,
ret = request_firmware(&fw, desired_fw->name,
priv->i2c_props.adap->dev.parent);
if (ret) {
printk(KERN_ERR "xc5000: Upload failed. (file not found?)\n");
Expand All @@ -595,7 +596,7 @@ static int xc5000_fwupload(struct dvb_frontend *fe)
ret = XC_RESULT_SUCCESS;
}

if (fw->size != priv->fw->size) {
if (fw->size != desired_fw->size) {
printk(KERN_ERR "xc5000: firmware incorrect size\n");
ret = XC_RESULT_RESET_FAILURE;
} else {
Expand Down Expand Up @@ -1165,12 +1166,12 @@ struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
if (priv->radio_input == 0)
priv->radio_input = cfg->radio_input;

/* don't override firmware filename if it's already been set
/* don't override chip id if it's already been set
unless explicitly specified */
if ((priv->fw == NULL) || (cfg->fw))
/* use default firmware if none specified */
priv->fw = xc5000_assign_firmware((cfg->fw) ?
cfg->fw : XC5000_DEFAULT_FIRMWARE);
if ((priv->chip_id == 0) || (cfg->chip_id))
/* use default chip id if none specified, set to 0 so
it can be overridden if this is a hybrid driver */
priv->chip_id = (cfg->chip_id) ? cfg->chip_id : 0;

/* Check if firmware has been loaded. It is possible that another
instance of the driver has loaded the firmware.
Expand Down
9 changes: 3 additions & 6 deletions trunk/drivers/media/common/tuners/xc5000.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,15 @@
struct dvb_frontend;
struct i2c_adapter;

#define XC5000_FW_A_1_6_114 1
#define XC5000_FW_C_41_024_5_31875 2

#define XC5000_DEFAULT_FIRMWARE XC5000_FW_A_1_6_114
#define XC5000C_DEFAULT_FIRMWARE XC5000_FW_C_41_024_5_31875
#define XC5000A 1
#define XC5000C 2

struct xc5000_config {
u8 i2c_address;
u32 if_khz;
u8 radio_input;

int fw;
int chip_id;
};

/* xc5000 callback command */
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/media/video/tuner-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ static void set_type(struct i2c_client *c, unsigned int type,
.i2c_address = t->i2c->addr,
/* if_khz will be set at dvb_attach() */
.if_khz = 0,
.fw = XC5000C_DEFAULT_FIRMWARE,
.chip_id = XC5000C,
};

if (!dvb_attach(xc5000_attach,
Expand Down

0 comments on commit 44a5d0e

Please sign in to comment.