dsp_code
hpi_dsp_code_close(&dsp_code);
struct dsp_code dsp_code;
&dsp_code, pos_error_code);
error = hpi_dsp_code_read_word(&dsp_code, &length);
error = hpi_dsp_code_read_word(&dsp_code, &address);
error = hpi_dsp_code_read_word(&dsp_code, &type);
error = hpi_dsp_code_read_block(length, &dsp_code,
hpi_dsp_code_close(&dsp_code);
hpi_dsp_code_rewind(&dsp_code);
hpi_dsp_code_read_word(&dsp_code, &length);
hpi_dsp_code_read_word(&dsp_code, &address);
hpi_dsp_code_read_word(&dsp_code, &type);
hpi_dsp_code_read_block(length, &dsp_code, &pcode);
struct dsp_code dsp_code;
&dsp_code, pos_error_code);
err = hpi_dsp_code_read_word(&dsp_code, &length);
err = hpi_dsp_code_read_word(&dsp_code, &address);
err = hpi_dsp_code_read_word(&dsp_code, &type);
err = hpi_dsp_code_read_block(length, &dsp_code,
hpi_dsp_code_close(&dsp_code);
hpi_dsp_code_rewind(&dsp_code);
hpi_dsp_code_read_word(&dsp_code, &length);
hpi_dsp_code_read_word(&dsp_code, &address);
hpi_dsp_code_read_word(&dsp_code, &type);
hpi_dsp_code_read_block(length, &dsp_code, &pcode);
hpi_dsp_code_close(&dsp_code);
void hpi_dsp_code_rewind(struct dsp_code *dsp_code)
dsp_code->word_count = sizeof(struct code_header) / sizeof(u32);
short hpi_dsp_code_read_word(struct dsp_code *dsp_code, u32 *pword)
if (dsp_code->word_count + 1 > dsp_code->block_length)
*pword = ((u32 *)(dsp_code->pvt->firmware->data))[dsp_code->
dsp_code->word_count++;
struct dsp_code *dsp_code, u32 **ppblock)
if (dsp_code->word_count + words_requested > dsp_code->block_length)
((u32 *)(dsp_code->pvt->firmware->data)) +
dsp_code->word_count;
dsp_code->word_count += words_requested;
short hpi_dsp_code_open(u32 adapter, void *os_data, struct dsp_code *dsp_code,
dsp_code->pvt = kmalloc_obj(*dsp_code->pvt);
if (!dsp_code->pvt) {
dsp_code->pvt->dev = dev;
dsp_code->pvt->firmware = firmware;
dsp_code->header = header;
dsp_code->block_length = header.size / sizeof(u32);
dsp_code->word_count = sizeof(header) / sizeof(u32);
dsp_code->block_length = 0;
void hpi_dsp_code_close(struct dsp_code *dsp_code)
release_firmware(dsp_code->pvt->firmware);
kfree(dsp_code->pvt);
struct dsp_code *ps_dsp_code,
void hpi_dsp_code_close(struct dsp_code *ps_dsp_code);
void hpi_dsp_code_rewind(struct dsp_code *ps_dsp_code);
short hpi_dsp_code_read_word(struct dsp_code *ps_dsp_code,
struct dsp_code *ps_dsp_code,
chip->dsp_code = NULL;
u16 *dsp_code; /* Current DSP code loaded,
chip->dsp_code = NULL;
if (chip->dsp_code == code) {
chip->dsp_code = NULL; /* Current DSP code not loaded */
chip->dsp_code = code; /* Show which DSP code loaded */
if (chip->dsp_code) {
chip->dsp_code = NULL;
if (chip->dsp_code) {
chip->dsp_code = NULL;
chip->dsp_code = NULL; /* Current DSP code not loaded */
const struct firmware *dsp_code;
err = request_firmware(&dsp_code, "korg/k1212.dsp", &pci->dev);
dsp_code->size);
release_firmware(dsp_code);
korg1212->dma_dsp->area, korg1212->dma_dsp->addr, dsp_code->size,
memcpy(korg1212->dma_dsp->area, dsp_code->data, dsp_code->size);
release_firmware(dsp_code);