Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 250126
b: refs/heads/master
c: 8f19f27
h: refs/heads/master
v: v3
  • Loading branch information
Devin Heitmueller authored and Mauro Carvalho Chehab committed May 20, 2011
1 parent dcd0257 commit 29aff7e
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 1,505 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: ad9b4bb265cecbfc9b0c495741e331ce199964e0
refs/heads/master: 8f19f27e3e0e055aed877a07198cfbaf9d784105
2 changes: 0 additions & 2 deletions trunk/drivers/media/dvb/frontends/drxd_firm.c
Original file line number Diff line number Diff line change
Expand Up @@ -939,5 +939,3 @@ u8_t DRXD_DiversityDelay6MHZ[] = /* also used ok for 7 MHz */
WR16( B_SC_RA_RAM_DIVERSITY_DELAY_8K_4__A , 3500 - 50 ),
END_OF_TABLE
};

#include "drxd_micro.h"
31 changes: 27 additions & 4 deletions trunk/drivers/media/dvb/frontends/drxd_hard.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@
#include "drxd.h"
#include "drxd_firm.h"

#define DRX_FW_FILENAME_A2 "drxd-a2-1.1.fw"
#define DRX_FW_FILENAME_B1 "drxd-b1-1.1.fw"

#define CHK_ERROR(s) if( (status = s)<0 ) break
#define CHUNK_SIZE 48

Expand Down Expand Up @@ -854,6 +857,26 @@ static int ReadIFAgc(struct drxd_state *state, u32 *pValue)
return status;
}

static int load_firmware(struct drxd_state *state, const char *fw_name)
{
const struct firmware *fw;

if (request_firmware(&fw, fw_name, state->dev) < 0) {
printk(KERN_ERR "drxd: firmware load failure [%s]\n", fw_name);
return -EIO;
}

state->microcode = kzalloc(fw->size, GFP_KERNEL);
if (state->microcode == NULL) {
printk(KERN_ERR "drxd: firmware load failure: nomemory\n");
return -ENOMEM;
}

memcpy(state->microcode, fw->data, fw->size);
state->microcode_length = fw->size;
return 0;
}

static int DownloadMicrocode(struct drxd_state *state,
const u8 *pMCImage, u32 Length)
{
Expand Down Expand Up @@ -1450,8 +1473,8 @@ static int SetDeviceTypeId(struct drxd_state *state)
state->m_InitCE = DRXD_InitCEA2;
state->m_InitEQ = DRXD_InitEQA2;
state->m_InitEC = DRXD_InitECA2;
state->microcode = DRXD_A2_microcode;
state->microcode_length = DRXD_A2_microcode_length;
if (load_firmware(state, DRX_FW_FILENAME_A2))
return -EIO;
} else {
state->m_ResetCEFR = NULL;
state->m_InitFE_1 = DRXD_InitFEB1_1;
Expand All @@ -1460,8 +1483,8 @@ static int SetDeviceTypeId(struct drxd_state *state)
state->m_InitCE = DRXD_InitCEB1;
state->m_InitEQ = DRXD_InitEQB1;
state->m_InitEC = DRXD_InitECB1;
state->microcode = DRXD_B1_microcode;
state->microcode_length = DRXD_B1_microcode_length;
if (load_firmware(state, DRX_FW_FILENAME_B1))
return -EIO;
}
if (state->diversity) {
state->m_InitDiversityFront = DRXD_InitDiversityFront;
Expand Down
Loading

0 comments on commit 29aff7e

Please sign in to comment.