|
Packit Service |
b98cfc |
/*
|
|
Packit Service |
b98cfc |
* EMU10k1 loader
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* Copyright (c) 2003,2004 by Peter Zubaj
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* This program is free software; you can redistribute it and/or modify
|
|
Packit Service |
b98cfc |
* it under the terms of the GNU General Public License as published by
|
|
Packit Service |
b98cfc |
* the Free Software Foundation; either version 2 of the License, or
|
|
Packit Service |
b98cfc |
* (at your option) any later version.
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* This program is distributed in the hope that it will be useful,
|
|
Packit Service |
b98cfc |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
b98cfc |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
Packit Service |
b98cfc |
* GNU General Public License for more details.
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
* You should have received a copy of the GNU General Public License
|
|
Packit Service |
b98cfc |
* along with this program; if not, write to the Free Software
|
|
Packit Service |
b98cfc |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
Packit Service |
b98cfc |
*
|
|
Packit Service |
b98cfc |
*/
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
#include <alsa/asoundlib.h>
|
|
Packit Service |
b98cfc |
#include "ld10k1.h"
|
|
Packit Service |
b98cfc |
#include "ld10k1_fnc.h"
|
|
Packit Service |
b98cfc |
#include "ld10k1_fnc1.h"
|
|
Packit Service |
b98cfc |
#include "ld10k1_debug.h"
|
|
Packit Service |
b98cfc |
#include "ld10k1_error.h"
|
|
Packit Service |
b98cfc |
#include "ld10k1_tram.h"
|
|
Packit Service |
b98cfc |
#include <stdlib.h>
|
|
Packit Service |
b98cfc |
#include <stdio.h>
|
|
Packit Service |
b98cfc |
#include <string.h>
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static char *usage_str[] = {
|
|
Packit Service |
b98cfc |
"NONE",
|
|
Packit Service |
b98cfc |
"NORMAL",
|
|
Packit Service |
b98cfc |
"CONST",
|
|
Packit Service |
b98cfc |
"DYNAMIC"
|
|
Packit Service |
b98cfc |
};
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
char debug_line[1000];
|
|
Packit Service |
b98cfc |
int send_debug_line(int data_conn)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
return send_response(data_conn, FNC_CONTINUE, 0, debug_line, strlen(debug_line) + 1);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_gpr_read_one(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr, unsigned int idx)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int usage;
|
|
Packit Service |
b98cfc |
int value;
|
|
Packit Service |
b98cfc |
int ref_count;
|
|
Packit Service |
b98cfc |
int modified;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
modified = dsp_mgr->regs[idx].modified;
|
|
Packit Service |
b98cfc |
usage = dsp_mgr->regs[idx].gpr_usage;
|
|
Packit Service |
b98cfc |
value = dsp_mgr->regs[idx].val;
|
|
Packit Service |
b98cfc |
ref_count = dsp_mgr->regs[idx].ref;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%c 0x%03x : %-12s 0x%08x %3d\n",
|
|
Packit Service |
b98cfc |
modified ? '*' : ' ',
|
|
Packit Service |
b98cfc |
idx,
|
|
Packit Service |
b98cfc |
usage_str[usage],
|
|
Packit Service |
b98cfc |
value,
|
|
Packit Service |
b98cfc |
ref_count);
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_gpr_read_hdr(int data_conn)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "M Idx Usage Value Ref\n");
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_gpr_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "FX8010 GPR List\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_gpr_read_hdr(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->regs_max_count; i++)
|
|
Packit Service |
b98cfc |
if (dsp_mgr->regs[i].used)
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_gpr_read_one(data_conn, dsp_mgr, i)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_fx_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "FX8010 FX List\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->fx_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03x : %-20s\n",
|
|
Packit Service |
b98cfc |
i,
|
|
Packit Service |
b98cfc |
dsp_mgr->fxs[i].name ? dsp_mgr->fxs[i].name : "");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_in_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "FX8010 IN List\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->in_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03x : %-20s\n",
|
|
Packit Service |
b98cfc |
i,
|
|
Packit Service |
b98cfc |
dsp_mgr->ins[i].name ? dsp_mgr->ins[i].name : "");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_out_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "FX8010 OUT List\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->out_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03x : %-20s\n",
|
|
Packit Service |
b98cfc |
i,
|
|
Packit Service |
b98cfc |
dsp_mgr->outs[i].name ? dsp_mgr->outs[i].name : "");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_const_read_one(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr, unsigned int idx)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int hw;
|
|
Packit Service |
b98cfc |
int value;
|
|
Packit Service |
b98cfc |
int ref_count;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
hw = dsp_mgr->consts[idx].hw;
|
|
Packit Service |
b98cfc |
value = dsp_mgr->consts[idx].const_val;
|
|
Packit Service |
b98cfc |
ref_count = dsp_mgr->consts[idx].ref;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "0x%03x : 0x%08x %c %3d\n",
|
|
Packit Service |
b98cfc |
idx,
|
|
Packit Service |
b98cfc |
value,
|
|
Packit Service |
b98cfc |
hw ? '*' : ' ',
|
|
Packit Service |
b98cfc |
ref_count);
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_const_read_hdr(int data_conn)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "Idx Value HW Ref\n");
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_const_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "CONST List\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_const_read_hdr(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->consts_max_count; i++)
|
|
Packit Service |
b98cfc |
if (dsp_mgr->consts[i].used)
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_const_read_one(data_conn, dsp_mgr, i)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
char *instr_name[] = {
|
|
Packit Service |
b98cfc |
"MACS",
|
|
Packit Service |
b98cfc |
"MACS1",
|
|
Packit Service |
b98cfc |
"MACW",
|
|
Packit Service |
b98cfc |
"MACW1",
|
|
Packit Service |
b98cfc |
"MACINTS",
|
|
Packit Service |
b98cfc |
"MACINTW",
|
|
Packit Service |
b98cfc |
"ACC3",
|
|
Packit Service |
b98cfc |
"MACMV",
|
|
Packit Service |
b98cfc |
"ANDXOR",
|
|
Packit Service |
b98cfc |
"TSTNEG",
|
|
Packit Service |
b98cfc |
"LIMIT",
|
|
Packit Service |
b98cfc |
"LIMIT1",
|
|
Packit Service |
b98cfc |
"LOG",
|
|
Packit Service |
b98cfc |
"EXP",
|
|
Packit Service |
b98cfc |
"INTERP",
|
|
Packit Service |
b98cfc |
"SKIP",
|
|
Packit Service |
b98cfc |
};
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static void ld10k1_debug_decode_preg_idx(char *type, unsigned int reg)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
switch ((reg & EMU10K1_PREG_TYPE_MASK) >> 28) {
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_IN:
|
|
Packit Service |
b98cfc |
sprintf(type, "IN(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_OUT:
|
|
Packit Service |
b98cfc |
sprintf(type, "OUT(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_CONST:
|
|
Packit Service |
b98cfc |
sprintf(type, "CON(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_STA:
|
|
Packit Service |
b98cfc |
sprintf(type, "STA(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_DYN:
|
|
Packit Service |
b98cfc |
sprintf(type, "DYN(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_HW:
|
|
Packit Service |
b98cfc |
sprintf(type, "HW(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_CTL:
|
|
Packit Service |
b98cfc |
sprintf(type, "CTL(%03d, %03d)", (reg & ~EMU10K1_PREG_TYPE_MASK) >> 8, reg & ~EMU10K1_PREG_TYPE_MASK & 0xFF);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_TRAM_DATA:
|
|
Packit Service |
b98cfc |
sprintf(type, "TD(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
case EMU10K1_PREG_TYPE_TRAM_ADDR:
|
|
Packit Service |
b98cfc |
sprintf(type, "TA(%03d)", reg & ~EMU10K1_PREG_TYPE_MASK);
|
|
Packit Service |
b98cfc |
break;
|
|
Packit Service |
b98cfc |
default:
|
|
Packit Service |
b98cfc |
sprintf(type, "??? 0x%08x", reg);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_code_read_one(int data_conn, int preg, ld10k1_instr_t *instr, unsigned int idx)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
char type1[100];
|
|
Packit Service |
b98cfc |
char type2[100];
|
|
Packit Service |
b98cfc |
char type3[100];
|
|
Packit Service |
b98cfc |
char type4[100];
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (instr->used) {
|
|
Packit Service |
b98cfc |
if (preg) {
|
|
Packit Service |
b98cfc |
ld10k1_debug_decode_preg_idx(type1, instr->arg[0]);
|
|
Packit Service |
b98cfc |
ld10k1_debug_decode_preg_idx(type2, instr->arg[1]);
|
|
Packit Service |
b98cfc |
ld10k1_debug_decode_preg_idx(type3, instr->arg[2]);
|
|
Packit Service |
b98cfc |
ld10k1_debug_decode_preg_idx(type4, instr->arg[3]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%c 0x%03x : %-10s %s, %s, %s, %s\n",
|
|
Packit Service |
b98cfc |
instr->modified ? '*' : ' ',
|
|
Packit Service |
b98cfc |
idx,
|
|
Packit Service |
b98cfc |
instr_name[instr->op_code],
|
|
Packit Service |
b98cfc |
type1,
|
|
Packit Service |
b98cfc |
type2,
|
|
Packit Service |
b98cfc |
type3,
|
|
Packit Service |
b98cfc |
type4);
|
|
Packit Service |
b98cfc |
} else {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%c 0x%03x : %-10s 0x%03x, 0x%03x, 0x%03x, 0x%03x\n",
|
|
Packit Service |
b98cfc |
instr->modified ? '*' : ' ',
|
|
Packit Service |
b98cfc |
idx,
|
|
Packit Service |
b98cfc |
instr_name[instr->op_code],
|
|
Packit Service |
b98cfc |
instr->arg[0],
|
|
Packit Service |
b98cfc |
instr->arg[1],
|
|
Packit Service |
b98cfc |
instr->arg[2],
|
|
Packit Service |
b98cfc |
instr->arg[3]);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
} else {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%c 0x%03x : NOT USED\n",
|
|
Packit Service |
b98cfc |
instr->modified ? '*' : ' ',
|
|
Packit Service |
b98cfc |
idx);
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_code_read_hdr(int data_conn)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "M Idx OPCODE\n");
|
|
Packit Service |
b98cfc |
return send_debug_line(data_conn);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_code_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
ld10k1_instr_t *instr;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "FX8010 Code\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_code_read_hdr(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->instr_count; i++) {
|
|
Packit Service |
b98cfc |
instr = &(dsp_mgr->instr[i]);
|
|
Packit Service |
b98cfc |
if (instr->used)
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_code_read_one(data_conn, 0, instr, i)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_tram_info_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i, j;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
char *req_pos_str;
|
|
Packit Service |
b98cfc |
char *pos_str;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ld10k1_tram_acc_t *tram_acc;
|
|
Packit Service |
b98cfc |
unsigned int data, addr;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ifree = dsp_mgr->i_tram.size;
|
|
Packit Service |
b98cfc |
int efree = dsp_mgr->e_tram.size;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "TRAM\n\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "Internal tram size: 0x%08x\n", dsp_mgr->i_tram.size);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "External tram size: 0x%08x\n", dsp_mgr->e_tram.size);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nTram groups:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->max_tram_grp; i++) {
|
|
Packit Service |
b98cfc |
if (dsp_mgr->tram_grp[i].used) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d %10s ", i, dsp_mgr->tram_grp[i].type == TRAM_GRP_DELAY ? "DELAY" : "TABLE");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
req_pos_str = "NONE";
|
|
Packit Service |
b98cfc |
if (dsp_mgr->tram_grp[i].req_pos == TRAM_POS_AUTO)
|
|
Packit Service |
b98cfc |
req_pos_str = "AUTO";
|
|
Packit Service |
b98cfc |
else if (dsp_mgr->tram_grp[i].req_pos == TRAM_POS_INTERNAL)
|
|
Packit Service |
b98cfc |
req_pos_str = "INTERNAL";
|
|
Packit Service |
b98cfc |
else if (dsp_mgr->tram_grp[i].req_pos == TRAM_POS_EXTERNAL)
|
|
Packit Service |
b98cfc |
req_pos_str = "EXTERNAL";
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
pos_str = "NONE";
|
|
Packit Service |
b98cfc |
if (dsp_mgr->tram_grp[i].pos == TRAM_POS_INTERNAL) {
|
|
Packit Service |
b98cfc |
pos_str = "INTERNAL";
|
|
Packit Service |
b98cfc |
ifree -= dsp_mgr->tram_grp[i].size;
|
|
Packit Service |
b98cfc |
} else if (dsp_mgr->tram_grp[i].pos == TRAM_POS_EXTERNAL) {
|
|
Packit Service |
b98cfc |
pos_str = "EXTERNAL";
|
|
Packit Service |
b98cfc |
efree -= dsp_mgr->tram_grp[i].size;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%10s %10s %08x %08x %03d\n", req_pos_str, pos_str,
|
|
Packit Service |
b98cfc |
dsp_mgr->tram_grp[i].size, dsp_mgr->tram_grp[i].offset, dsp_mgr->tram_grp[i].acc_count);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
for (j = 0; j < dsp_mgr->max_tram_acc; j++) {
|
|
Packit Service |
b98cfc |
tram_acc = &(dsp_mgr->tram_acc[j]);
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ld10k1_tram_get_hwacc(dsp_mgr, tram_acc->hwacc, &addr, &data);
|
|
Packit Service |
b98cfc |
if ((tram_acc->used) && (tram_acc->grp == i)) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " %c%c%c Off:0x%08x HWacc:%03d ADDR:0x%08x DATA:0x%08x\n",
|
|
Packit Service |
b98cfc |
(tram_acc->type & TRAM_ACC_READ) ? 'R' : '-',
|
|
Packit Service |
b98cfc |
(tram_acc->type & TRAM_ACC_WRITE) ? 'W' : '-',
|
|
Packit Service |
b98cfc |
(tram_acc->type & TRAM_ACC_ZERO) ? 'Z' : '-',
|
|
Packit Service |
b98cfc |
tram_acc->offset,
|
|
Packit Service |
b98cfc |
tram_acc->hwacc,
|
|
Packit Service |
b98cfc |
addr,
|
|
Packit Service |
b98cfc |
data);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_debug_new_patch_read1(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr, ld10k1_patch_t *patch)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i, j;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
ld10k1_conn_point_t *point;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "Patch name: %s\n\n", patch->patch_name);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* in list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "IN registers:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->in_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d %s -> 0x%08x\n", i,
|
|
Packit Service |
b98cfc |
patch->ins[i].name ? patch->ins[i].name : "",
|
|
Packit Service |
b98cfc |
patch->ins[i].point ? patch->ins[i].point->con_gpr_idx : 0);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
point = patch->ins[i].point;
|
|
Packit Service |
b98cfc |
if (point != NULL)
|
|
Packit Service |
b98cfc |
for (j = 0; j < MAX_CONN_PER_POINT; j++) {
|
|
Packit Service |
b98cfc |
if (point->out_gpr_idx[j] != 0) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " +0x%08x\n", point->out_gpr_idx[j]);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* out list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "OUT registers:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->out_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d %s -> 0x%08x\n", i,
|
|
Packit Service |
b98cfc |
patch->outs[i].name ? patch->outs[i].name : "",
|
|
Packit Service |
b98cfc |
patch->outs[i].point ? patch->outs[i].point->con_gpr_idx : 0);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* const list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "CONST registers:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->const_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d 0x%08x -> 0x%08x\n", i,
|
|
Packit Service |
b98cfc |
patch->consts[i].const_val,
|
|
Packit Service |
b98cfc |
patch->consts[i].gpr_idx);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* sta list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "STA registers:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->sta_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d 0x%08x -> 0x%08x\n", i,
|
|
Packit Service |
b98cfc |
patch->stas[i].const_val,
|
|
Packit Service |
b98cfc |
patch->stas[i].gpr_idx);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* hw list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "HW registers:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->hw_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d 0x%08x -> 0x%08x\n", i,
|
|
Packit Service |
b98cfc |
patch->hws[i].reg_idx,
|
|
Packit Service |
b98cfc |
patch->hws[i].gpr_idx);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* tram list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nUsed tram groups:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->tram_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d 0x%01x 0x%08x 0x%01x -> %03d\n", i,
|
|
Packit Service |
b98cfc |
patch->tram_grp[i].grp_type,
|
|
Packit Service |
b98cfc |
patch->tram_grp[i].grp_size,
|
|
Packit Service |
b98cfc |
patch->tram_grp[i].grp_pos,
|
|
Packit Service |
b98cfc |
patch->tram_grp[i].grp_idx);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* tram acc list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nUsed tram acc:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->tram_acc_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d 0x%01x 0x%08x 0x%03x -> 0x%03x\n", i,
|
|
Packit Service |
b98cfc |
patch->tram_acc[i].acc_type,
|
|
Packit Service |
b98cfc |
patch->tram_acc[i].acc_offset,
|
|
Packit Service |
b98cfc |
patch->tram_acc[i].grp,
|
|
Packit Service |
b98cfc |
patch->tram_acc[i].acc_idx);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* cotrol list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nUsed controls:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->ctl_count; i++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d\n", i);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " Name:%s\n", patch->ctl[i].name);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " Min: 0x%08x\n", patch->ctl[i].min);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " Max: 0x%08x\n", patch->ctl[i].max);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " GPRS:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (j = 0; j < patch->ctl[i].count; j++) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, " %03d 0x%08x -> 0x%08x %c\n", j,
|
|
Packit Service |
b98cfc |
patch->ctl[i].value[j],
|
|
Packit Service |
b98cfc |
patch->ctl[i].gpr_idx[j],
|
|
Packit Service |
b98cfc |
j < patch->ctl[i].vcount ? 'v' : ' ');
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
/* instruction list */
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nCode:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_code_read_hdr(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < patch->instr_count; i++) {
|
|
Packit Service |
b98cfc |
ld10k1_instr_t *instr;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
instr = &(patch->instr[i]);
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_code_read_one(data_conn, 1, instr, i)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_patch_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr, int idx)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
ld10k1_patch_t *patch;
|
|
Packit Service |
b98cfc |
patch = dsp_mgr->patch_ptr[idx];
|
|
Packit Service |
b98cfc |
if (!patch)
|
|
Packit Service |
b98cfc |
return LD10K1_ERR_UNKNOWN_PATCH_NUM;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return ld10k1_debug_new_patch_read1(data_conn, dsp_mgr, patch);
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_patch_list_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i;
|
|
Packit Service |
b98cfc |
ld10k1_patch_t *patch;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nPatch List:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < EMU10K1_PATCH_MAX; i++) {
|
|
Packit Service |
b98cfc |
patch = dsp_mgr->patch_ptr[i];
|
|
Packit Service |
b98cfc |
if (patch) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d %s\n\n", i, patch->patch_name);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
static int ld10k1_debug_new_patch_order_read(int data_conn, ld10k1_dsp_mgr_t *dsp_mgr)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
int i, idx;
|
|
Packit Service |
b98cfc |
ld10k1_patch_t *patch;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "\nPatch order:\n");
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
for (i = 0; i < dsp_mgr->patch_count; i++) {
|
|
Packit Service |
b98cfc |
idx = dsp_mgr->patch_order[i];
|
|
Packit Service |
b98cfc |
patch = dsp_mgr->patch_ptr[idx];
|
|
Packit Service |
b98cfc |
if (patch) {
|
|
Packit Service |
b98cfc |
sprintf(debug_line, "%03d %03d %s\n\n", i, idx, patch->patch_name);
|
|
Packit Service |
b98cfc |
if ((err = send_debug_line(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
int ld10k1_fnc_debug(int data_conn, int op, int size)
|
|
Packit Service |
b98cfc |
{
|
|
Packit Service |
b98cfc |
ld10k1_fnc_debug_t debug_info;
|
|
Packit Service |
b98cfc |
int err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (size != sizeof(ld10k1_fnc_debug_t))
|
|
Packit Service |
b98cfc |
return LD10K1_ERR_PROTOCOL;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if ((err = receive_msg_data(data_conn, &debug_info, sizeof(ld10k1_fnc_debug_t))))
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
if (debug_info.what >= 100 && debug_info.what <= 100 + EMU10K1_PATCH_MAX) {
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_patch_read(data_conn, &dsp_mgr, debug_info.what - 100)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 1) {
|
|
Packit Service |
b98cfc |
/* registers */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_gpr_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 2) {
|
|
Packit Service |
b98cfc |
/* registers */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_const_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 3) {
|
|
Packit Service |
b98cfc |
/* instruction */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_code_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 4) {
|
|
Packit Service |
b98cfc |
/* tram */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_tram_info_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 5) {
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_patch_list_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 6) {
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_patch_order_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 7) {
|
|
Packit Service |
b98cfc |
/* fx */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_fx_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 8) {
|
|
Packit Service |
b98cfc |
/* in */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_in_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else if (debug_info.what == 9) {
|
|
Packit Service |
b98cfc |
/* out */
|
|
Packit Service |
b98cfc |
if ((err = ld10k1_debug_new_out_read(data_conn, &dsp_mgr)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
} else
|
|
Packit Service |
b98cfc |
if ((err = send_response_ok(data_conn)) < 0)
|
|
Packit Service |
b98cfc |
return err;
|
|
Packit Service |
b98cfc |
|
|
Packit Service |
b98cfc |
return 0;
|
|
Packit Service |
b98cfc |
}
|