mirror of
https://github.com/DigitalDevices/dddvb.git
synced 2025-03-01 10:35:23 +00:00
add DDBridge to all message lines
This commit is contained in:
@@ -432,7 +432,7 @@ static int ddb_unredirect(struct ddb_port *port)
|
||||
struct ddb_input *oredi, *iredi = 0;
|
||||
struct ddb_output *iredo = 0;
|
||||
|
||||
/*pr_info("unredirect %d.%d\n", port->dev->nr, port->nr);*/
|
||||
/*pr_info("DDBridge: unredirect %d.%d\n", port->dev->nr, port->nr);*/
|
||||
mutex_lock(&redirect_lock);
|
||||
if (port->output->dma->running) {
|
||||
mutex_unlock(&redirect_lock);
|
||||
@@ -1030,7 +1030,7 @@ static u32 ddb_input_avail(struct ddb_input *input)
|
||||
off = (stat & 0x7ff) << 7;
|
||||
|
||||
if (ctrl & 4) {
|
||||
pr_err("IA %d %d %08x\n", idx, off, ctrl);
|
||||
pr_err("DDBridge: IA %d %d %08x\n", idx, off, ctrl);
|
||||
ddbwritel(dev, stat, DMA_BUFFER_ACK(input->dma));
|
||||
return 0;
|
||||
}
|
||||
@@ -1308,7 +1308,7 @@ static int demod_attach_drxk(struct ddb_input *input)
|
||||
i2c, 0x29 + (input->nr & 1),
|
||||
&dvb->fe2);
|
||||
if (!fe) {
|
||||
pr_err("No DRXK found!\n");
|
||||
pr_err("DDBridge: No DRXK found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
fe->sec_priv = input;
|
||||
@@ -1353,7 +1353,7 @@ static int demod_attach_cxd2843(struct ddb_input *input, int par)
|
||||
(input->nr & 1) ?
|
||||
&cxd2843_1 : &cxd2843_0);
|
||||
if (!dvb->fe) {
|
||||
pr_err("No cxd2837/38/43 found!\n");
|
||||
pr_err("DDBridge: No cxd2837/38/43 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
fe->sec_priv = input;
|
||||
@@ -1376,7 +1376,7 @@ static int demod_attach_stv0367dd(struct ddb_input *input)
|
||||
&cfg,
|
||||
&dvb->fe2);
|
||||
if (!dvb->fe) {
|
||||
pr_err("No stv0367 found!\n");
|
||||
pr_err("DDBridge: No stv0367 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
fe->sec_priv = input;
|
||||
@@ -1397,7 +1397,7 @@ static int tuner_attach_tda18271(struct ddb_input *input)
|
||||
if (dvb->fe->ops.i2c_gate_ctrl)
|
||||
dvb->fe->ops.i2c_gate_ctrl(dvb->fe, 0);
|
||||
if (!fe) {
|
||||
pr_err("No TDA18271 found!\n");
|
||||
pr_err("DDBridge: No TDA18271 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
return 0;
|
||||
@@ -1412,7 +1412,7 @@ static int tuner_attach_tda18212dd(struct ddb_input *input)
|
||||
fe = dvb_attach(tda18212dd_attach, dvb->fe, i2c,
|
||||
(input->nr & 1) ? 0x63 : 0x60);
|
||||
if (!fe) {
|
||||
pr_err("No TDA18212 found!\n");
|
||||
pr_err("DDBridge: No TDA18212 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
return 0;
|
||||
@@ -1437,7 +1437,7 @@ static int tuner_attach_tda18212(struct ddb_input *input)
|
||||
cfg = (input->nr & 1) ? &tda18212_1 : &tda18212_0;
|
||||
fe = dvb_attach(tda18212_attach, dvb->fe, i2c, cfg);
|
||||
if (!fe) {
|
||||
pr_err("No TDA18212 found!\n");
|
||||
pr_err("DDBridge: No TDA18212 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
return 0;
|
||||
@@ -1514,13 +1514,13 @@ static int demod_attach_stv0900(struct ddb_input *input, int type)
|
||||
(input->nr & 1) ? STV090x_DEMODULATOR_1
|
||||
: STV090x_DEMODULATOR_0);
|
||||
if (!dvb->fe) {
|
||||
pr_err("No STV0900 found!\n");
|
||||
pr_err("DDBridge: No STV0900 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
if (!dvb_attach(lnbh24_attach, dvb->fe, i2c, 0,
|
||||
0, (input->nr & 1) ?
|
||||
(0x09 - type) : (0x0b - type))) {
|
||||
pr_err("No LNBH24 found!\n");
|
||||
pr_err("DDBridge: No LNBH24 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
return 0;
|
||||
@@ -1537,10 +1537,10 @@ static int tuner_attach_stv6110(struct ddb_input *input, int type)
|
||||
|
||||
ctl = dvb_attach(stv6110x_attach, dvb->fe, tunerconf, i2c);
|
||||
if (!ctl) {
|
||||
pr_err("No STV6110X found!\n");
|
||||
pr_err("DDBridge: No STV6110X found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
pr_info("attach tuner input %d adr %02x\n",
|
||||
pr_info("DDBridge: attach tuner input %d adr %02x\n",
|
||||
input->nr, tunerconf->addr);
|
||||
|
||||
feconf->tuner_init = ctl->tuner_init;
|
||||
@@ -1580,14 +1580,14 @@ static int demod_attach_stv0910(struct ddb_input *input, int type)
|
||||
&cfg, (input->nr & 1));
|
||||
}
|
||||
if (!dvb->fe) {
|
||||
pr_err("No STV0910 found!\n");
|
||||
pr_err("DDBridge: No STV0910 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
if (!dvb_attach(lnbh25_attach, dvb->fe, i2c,
|
||||
((input->nr & 1) ? 0x0d : 0x0c))) {
|
||||
if (!dvb_attach(lnbh25_attach, dvb->fe, i2c,
|
||||
((input->nr & 1) ? 0x09 : 0x08))) {
|
||||
pr_err("No LNBH25 found!\n");
|
||||
pr_err("DDBridge: No LNBH25 found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
@@ -1605,7 +1605,7 @@ static int tuner_attach_stv6111(struct ddb_input *input, int type)
|
||||
if (!fe) {
|
||||
fe = dvb_attach(stv6111_attach, dvb->fe, i2c, adr & ~4);
|
||||
if (!fe) {
|
||||
pr_err("No STV6111 found at 0x%02x!\n", adr);
|
||||
pr_err("DDBridge: No STV6111 found at 0x%02x!\n", adr);
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
@@ -1627,7 +1627,7 @@ static int lnb_command(struct ddb *dev, u32 link, u32 lnb, u32 cmd)
|
||||
msleep(20);
|
||||
}
|
||||
if (c == 10)
|
||||
pr_info("lnb_command lnb = %08x cmd = %08x\n", lnb, cmd);
|
||||
pr_info("DDBridge: lnb_command lnb = %08x cmd = %08x\n", lnb, cmd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1894,7 +1894,7 @@ static int mxl_fw_read(void *priv, u8 *buf, u32 len)
|
||||
struct ddb_link *link = priv;
|
||||
struct ddb *dev = link->dev;
|
||||
|
||||
pr_info("Read mxl_fw from link %u\n", link->nr);
|
||||
pr_info("DDBridge: Read mxl_fw from link %u\n", link->nr);
|
||||
|
||||
return ddbridge_flashread(dev, link->nr, buf, 0xc0000, len);
|
||||
}
|
||||
@@ -1905,7 +1905,7 @@ static int lnb_init_fmode(struct ddb *dev, struct ddb_link *link, u32 fm)
|
||||
|
||||
if (link->lnb.fmode == fm)
|
||||
return 0;
|
||||
pr_info("Set fmode link %u = %u\n", l, fm);
|
||||
pr_info("DDBridge: Set fmode link %u = %u\n", l, fm);
|
||||
mutex_lock(&link->lnb.lock);
|
||||
if (fm == 2 || fm == 1) {
|
||||
lnb_set_tone(dev, l, 0, SEC_TONE_OFF);
|
||||
@@ -1953,7 +1953,7 @@ static int fe_attach_mxl5xx(struct ddb_input *input)
|
||||
tuner = 0;
|
||||
dvb->fe = dvb_attach(mxl5xx_attach, i2c, &cfg, demod, tuner);
|
||||
if (!dvb->fe) {
|
||||
pr_err("No MXL5XX found!\n");
|
||||
pr_err("DDBridge: No MXL5XX found!\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
if (input->nr < 4) {
|
||||
@@ -2333,7 +2333,7 @@ static int port_has_encti(struct ddb_port *port)
|
||||
int ret = i2c_read_reg(&port->i2c->adap, 0x20, 0, &val);
|
||||
|
||||
if (!ret)
|
||||
pr_info("[0x20]=0x%02x\n", val);
|
||||
pr_info("DDBridge: [0x20]=0x%02x\n", val);
|
||||
return ret ? 0 : 1;
|
||||
}
|
||||
|
||||
@@ -2429,7 +2429,7 @@ static int init_xo2(struct ddb_port *port)
|
||||
return res;
|
||||
|
||||
if (data[0] != 0x01) {
|
||||
pr_info("Port %d: invalid XO2\n", port->nr);
|
||||
pr_info("DDBridge: Port %d: invalid XO2\n", port->nr);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -2448,7 +2448,7 @@ static int init_xo2(struct ddb_port *port)
|
||||
i2c_write_reg(i2c, 0x10, 0x09, xo2_speed);
|
||||
|
||||
if (dev->link[port->lnr].info->con_clock) {
|
||||
pr_info("Setting continuous clock for XO2\n");
|
||||
pr_info("DDBridge: Setting continuous clock for XO2\n");
|
||||
i2c_write_reg(i2c, 0x10, 0x0a, 0x03);
|
||||
i2c_write_reg(i2c, 0x10, 0x0b, 0x03);
|
||||
} else {
|
||||
@@ -2475,11 +2475,11 @@ static int init_xo2_ci(struct ddb_port *port)
|
||||
return res;
|
||||
|
||||
if (data[0] > 1) {
|
||||
pr_info("Port %d: invalid XO2 CI %02x\n",
|
||||
pr_info("DDBridge: Port %d: invalid XO2 CI %02x\n",
|
||||
port->nr, data[0]);
|
||||
return -1;
|
||||
}
|
||||
pr_info("Port %d: DuoFlex CI %u.%u\n", port->nr, data[0], data[1]);
|
||||
pr_info("DDBridge: Port %d: DuoFlex CI %u.%u\n", port->nr, data[0], data[1]);
|
||||
|
||||
i2c_read_reg(i2c, 0x10, 0x08, &val);
|
||||
if (val != 0) {
|
||||
@@ -2498,7 +2498,7 @@ static int init_xo2_ci(struct ddb_port *port)
|
||||
usleep_range(2000, 3000);
|
||||
|
||||
if (dev->link[port->lnr].info->con_clock) {
|
||||
pr_info("Setting continuous clock for DuoFLex CI\n");
|
||||
pr_info("DDBridge: Setting continuous clock for DuoFLex CI\n");
|
||||
i2c_write_reg(i2c, 0x10, 0x0a, 0x03);
|
||||
i2c_write_reg(i2c, 0x10, 0x0b, 0x03);
|
||||
} else {
|
||||
@@ -2607,13 +2607,13 @@ static void ddb_port_probe(struct ddb_port *port)
|
||||
ddbwritel(dev, I2C_SPEED_400,
|
||||
port->i2c->regs + I2C_TIMING);
|
||||
} else {
|
||||
pr_info(KERN_INFO "Port %d: Uninitialized DuoFlex\n",
|
||||
pr_info(KERN_INFO "DDBridge: Port %d: Uninitialized DuoFlex\n",
|
||||
port->nr);
|
||||
return;
|
||||
}
|
||||
} else if (port_has_xo2(port, &type, &id)) {
|
||||
ddbwritel(dev, I2C_SPEED_400, port->i2c->regs + I2C_TIMING);
|
||||
/*pr_info("XO2 ID %02x\n", id);*/
|
||||
/*pr_info("DDBridge: XO2 ID %02x\n", id);*/
|
||||
if (type == 2) {
|
||||
port->name = "DuoFlex CI";
|
||||
port->class = DDB_PORT_CI;
|
||||
@@ -2915,7 +2915,7 @@ static int slot_reset_xo2(struct dvb_ca_en50221 *ca, int slot)
|
||||
{
|
||||
struct ddb_ci *ci = ca->data;
|
||||
|
||||
pr_info("%s\n", __func__);
|
||||
pr_info("DDBridge: %s\n", __func__);
|
||||
write_creg(ci, 0x01, 0x01);
|
||||
write_creg(ci, 0x04, 0x04);
|
||||
msleep(20);
|
||||
@@ -2929,7 +2929,7 @@ static int slot_shutdown_xo2(struct dvb_ca_en50221 *ca, int slot)
|
||||
{
|
||||
struct ddb_ci *ci = ca->data;
|
||||
|
||||
pr_info("%s\n", __func__);
|
||||
pr_info("DDBridge: %s\n", __func__);
|
||||
/*i2c_write_reg(i2c, adr, 0x03, 0x60);*/
|
||||
/*i2c_write_reg(i2c, adr, 0x00, 0xc0);*/
|
||||
write_creg(ci, 0x10, 0xff);
|
||||
@@ -2941,7 +2941,7 @@ static int slot_ts_enable_xo2(struct dvb_ca_en50221 *ca, int slot)
|
||||
{
|
||||
struct ddb_ci *ci = ca->data;
|
||||
|
||||
pr_info("%s\n", __func__);
|
||||
pr_info("DDBridge: %s\n", __func__);
|
||||
write_creg(ci, 0x00, 0x10);
|
||||
return 0;
|
||||
}
|
||||
@@ -3071,7 +3071,7 @@ static int ddb_port_attach(struct ddb_port *port)
|
||||
break;
|
||||
}
|
||||
if (ret < 0)
|
||||
pr_err("port_attach on port %d failed\n", port->nr);
|
||||
pr_err("DDBridge: port_attach on port %d failed\n", port->nr);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -3083,12 +3083,12 @@ static int ddb_ports_attach(struct ddb *dev)
|
||||
dev->ns_num = dev->link[0].info->ns_num;
|
||||
for (i = 0; i < dev->ns_num; i++)
|
||||
dev->ns[i].nr = i;
|
||||
pr_info("%d netstream channels\n", dev->ns_num);
|
||||
pr_info("DDBridge: %d netstream channels\n", dev->ns_num);
|
||||
|
||||
if (dev->port_num) {
|
||||
ret = dvb_register_adapters(dev);
|
||||
if (ret < 0) {
|
||||
pr_err("Registering adapters failed. Check DVB_MAX_ADAPTERS in config.\n");
|
||||
pr_err("DDBridge: Registering adapters failed. Check DVB_MAX_ADAPTERS in config.\n");
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -3172,14 +3172,14 @@ static void input_write_dvb(struct ddb_input *input,
|
||||
while (dma->cbuf != ((dma->stat >> 11) & 0x1f)
|
||||
|| (4 & dma->ctrl)) {
|
||||
if (4 & dma->ctrl) {
|
||||
/*pr_err("Overflow dma %d\n", dma->nr);*/
|
||||
/*pr_err("DDBridge: Overflow dma %d\n", dma->nr);*/
|
||||
ack = 1;
|
||||
}
|
||||
if (alt_dma)
|
||||
dma_sync_single_for_cpu(dev->dev, dma2->pbuf[dma->cbuf],
|
||||
dma2->size, DMA_FROM_DEVICE);
|
||||
#if 0
|
||||
pr_info("%02x %02x %02x %02x \n",
|
||||
pr_info("DDBridge: %02x %02x %02x %02x \n",
|
||||
dma2->vbuf[dma->cbuf][0], dma2->vbuf[dma->cbuf][1],
|
||||
dma2->vbuf[dma->cbuf][2], dma2->vbuf[dma->cbuf][3]);
|
||||
#endif
|
||||
@@ -3219,7 +3219,7 @@ static void input_tasklet(unsigned long data)
|
||||
|
||||
#if 0
|
||||
if (4 & dma->ctrl)
|
||||
pr_err("Overflow dma %d\n", dma->nr);
|
||||
pr_err("DDBridge: Overflow dma %d\n", dma->nr);
|
||||
#endif
|
||||
if (input->redi)
|
||||
input_write_dvb(input, input->redi);
|
||||
@@ -3317,7 +3317,7 @@ static void ddb_dma_init(struct ddb_io *io, int nr, int out)
|
||||
dma->div = INPUT_DMA_IRQ_DIV;
|
||||
}
|
||||
ddbwritel(io->port->dev, 0, DMA_BUFFER_ACK(dma));
|
||||
pr_info("init link %u, io %u, dma %u, dmaregs %08x bufregs %08x\n",
|
||||
pr_info("DDBridge: init link %u, io %u, dma %u, dmaregs %08x bufregs %08x\n",
|
||||
io->port->lnr, io->nr, nr, dma->regs, dma->bufregs);
|
||||
}
|
||||
|
||||
@@ -3333,7 +3333,7 @@ static void ddb_input_init(struct ddb_port *port, int nr, int pnr, int anr)
|
||||
rm = io_regmap(input, 1);
|
||||
input->regs = DDB_LINK_TAG(port->lnr) |
|
||||
(rm->input->base + rm->input->size * nr);
|
||||
pr_info("init link %u, input %u, regs %08x\n", port->lnr, nr, input->regs);
|
||||
pr_info("DDBridge: init link %u, input %u, regs %08x\n", port->lnr, nr, input->regs);
|
||||
if (dev->has_dma) {
|
||||
struct ddb_regmap *rm0 = io_regmap(input, 0);
|
||||
u32 base = rm0->irq_base_idma;
|
||||
@@ -3342,7 +3342,7 @@ static void ddb_input_init(struct ddb_port *port, int nr, int pnr, int anr)
|
||||
if (port->lnr)
|
||||
dma_nr += 32 + (port->lnr - 1) * 8;
|
||||
|
||||
pr_info("init link %u, input %u, handler %u\n", port->lnr, nr, dma_nr + base);
|
||||
pr_info("DDBridge: init link %u, input %u, handler %u\n", port->lnr, nr, dma_nr + base);
|
||||
dev->handler[0][dma_nr + base] = input_handler;
|
||||
dev->handler_data[0][dma_nr + base] = (unsigned long) input;
|
||||
ddb_dma_init(input, dma_nr, 0);
|
||||
@@ -3361,7 +3361,7 @@ static void ddb_output_init(struct ddb_port *port, int nr)
|
||||
rm = io_regmap(output, 1);
|
||||
output->regs = DDB_LINK_TAG(port->lnr) |
|
||||
(rm->output->base + rm->output->size * nr);
|
||||
pr_info("init link %u, output %u, regs %08x\n", port->lnr, nr, output->regs);
|
||||
pr_info("DDBridge: init link %u, output %u, regs %08x\n", port->lnr, nr, output->regs);
|
||||
if (dev->has_dma) {
|
||||
struct ddb_regmap *rm0 = io_regmap(output, 0);
|
||||
u32 base = rm0->irq_base_odma;
|
||||
@@ -3439,7 +3439,7 @@ static void ddb_ports_init(struct ddb *dev)
|
||||
port->name = "DuoFlex CI_B";
|
||||
port->i2c = dev->port[p - 1].i2c;
|
||||
}
|
||||
pr_info("Port %u: Link %u, Link Port %u (TAB %u): %s\n",
|
||||
pr_info("DDBridge: Port %u: Link %u, Link Port %u (TAB %u): %s\n",
|
||||
port->pnr, port->lnr, port->nr,
|
||||
port->nr + 1, port->name);
|
||||
|
||||
@@ -3736,7 +3736,7 @@ static irqreturn_t irq_thread(int irq, void *dev_id)
|
||||
{
|
||||
/* struct ddb *dev = (struct ddb *) dev_id; */
|
||||
|
||||
/*pr_info("%s\n", __func__);*/
|
||||
/*pr_info("DDBridge: %s\n", __func__);*/
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
@@ -3803,9 +3803,9 @@ static int nsd_do_ioctl(struct file *file, unsigned int cmd, void *parg)
|
||||
return -EINVAL;
|
||||
ctrl = (input->port->lnr << 16) | ((input->nr & 7) << 8) |
|
||||
((ts->filter_mask & 3) << 2);
|
||||
/*pr_info("GET_TS %u.%u\n", input->port->lnr, input->nr);*/
|
||||
/*pr_info("DDBridge: GET_TS %u.%u\n", input->port->lnr, input->nr);*/
|
||||
if (ddbreadl(dev, TS_CAPTURE_CONTROL) & 1) {
|
||||
pr_info("ts capture busy\n");
|
||||
pr_info("DDBridge: ts capture busy\n");
|
||||
return -EBUSY;
|
||||
}
|
||||
ddb_dvb_ns_input_start(input);
|
||||
@@ -3839,7 +3839,7 @@ static int nsd_do_ioctl(struct file *file, unsigned int cmd, void *parg)
|
||||
if (ctrl & 1)
|
||||
return -EBUSY;
|
||||
if (ctrl & (1 << 14)) {
|
||||
/*pr_info("ts capture timeout\n");*/
|
||||
/*pr_info("DDBridge: ts capture timeout\n");*/
|
||||
return -EAGAIN;
|
||||
}
|
||||
ddbcpyfrom(dev, dev->tsbuf, TS_CAPTURE_MEMORY,
|
||||
@@ -3853,10 +3853,10 @@ static int nsd_do_ioctl(struct file *file, unsigned int cmd, void *parg)
|
||||
{
|
||||
u32 ctrl = 0;
|
||||
|
||||
/*pr_info("cancel ts capture: 0x%x\n", ctrl);*/
|
||||
/*pr_info("DDBridge: cancel ts capture: 0x%x\n", ctrl);*/
|
||||
ddbwritel(dev, ctrl, TS_CAPTURE_CONTROL);
|
||||
ctrl = ddbreadl(dev, TS_CAPTURE_CONTROL);
|
||||
/*pr_info("control register is 0x%x\n", ctrl);*/
|
||||
/*pr_info("DDBridge: control register is 0x%x\n", ctrl);*/
|
||||
break;
|
||||
}
|
||||
case NSD_STOP_GET_TS:
|
||||
@@ -3868,10 +3868,10 @@ static int nsd_do_ioctl(struct file *file, unsigned int cmd, void *parg)
|
||||
if (!input)
|
||||
return -EINVAL;
|
||||
if (ctrl & 1) {
|
||||
pr_info("cannot stop ts capture, while it was neither finished nor canceled\n");
|
||||
pr_info("DDBridge: cannot stop ts capture, while it was neither finished nor canceled\n");
|
||||
return -EBUSY;
|
||||
}
|
||||
/*pr_info("ts capture stopped\n");*/
|
||||
/*pr_info("DDBridge: ts capture stopped\n");*/
|
||||
ddb_dvb_ns_input_stop(input);
|
||||
break;
|
||||
}
|
||||
@@ -4680,7 +4680,7 @@ static ssize_t redirect_store(struct device *device,
|
||||
res = ddb_redirect(i, p);
|
||||
if (res < 0)
|
||||
return res;
|
||||
pr_info("redirect: %02x, %02x\n", i, p);
|
||||
pr_info("DDBridge: redirect: %02x, %02x\n", i, p);
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -4704,7 +4704,7 @@ static ssize_t redirect2_store(struct device *device,
|
||||
res = ddb_redirect(i, p);
|
||||
if (res < 0)
|
||||
return res;
|
||||
pr_info("redirect: %02x, %02x\n", i, p);
|
||||
pr_info("DDBridge: redirect: %02x, %02x\n", i, p);
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -5023,7 +5023,7 @@ static int ddb_device_create(struct ddb *dev)
|
||||
dev, "ddbridge%d", dev->nr);
|
||||
if (IS_ERR(dev->ddb_dev)) {
|
||||
res = PTR_ERR(dev->ddb_dev);
|
||||
pr_info("Could not create ddbridge%d\n", dev->nr);
|
||||
pr_info("DDBridge: Could not create ddbridge%d\n", dev->nr);
|
||||
goto fail;
|
||||
}
|
||||
res = ddb_device_attrs_add(dev);
|
||||
@@ -5057,7 +5057,7 @@ static void gtl_link_handler(unsigned long priv)
|
||||
struct ddb *dev = (struct ddb *) priv;
|
||||
u32 regs = dev->link[0].info->regmap->gtl->base;
|
||||
|
||||
pr_info("GT link change: %u\n",
|
||||
pr_info("DDBridge: GT link change: %u\n",
|
||||
(1 & ddbreadl(dev, regs)));
|
||||
}
|
||||
|
||||
@@ -5069,7 +5069,7 @@ static void link_tasklet(unsigned long data)
|
||||
u32 l = link->nr;
|
||||
|
||||
s = ddbreadl(dev, tag | INTERRUPT_STATUS);
|
||||
pr_info("gtl_irq %08x = %08x\n", tag | INTERRUPT_STATUS, s);
|
||||
pr_info("DDBridge: gtl_irq %08x = %08x\n", tag | INTERRUPT_STATUS, s);
|
||||
|
||||
if (!s)
|
||||
return;
|
||||
@@ -5090,7 +5090,7 @@ static void gtl_irq_handler(unsigned long priv)
|
||||
|
||||
while ((s = ddbreadl(dev, tag | INTERRUPT_STATUS))) {
|
||||
ddbwritel(dev, s, tag | INTERRUPT_ACK);
|
||||
//pr_info("gtlirq %08x\n", s);
|
||||
//pr_info("DDBridge: gtlirq %08x\n", s);
|
||||
LINK_IRQ_HANDLE(l, 0);
|
||||
LINK_IRQ_HANDLE(l, 1);
|
||||
LINK_IRQ_HANDLE(l, 2);
|
||||
@@ -5107,9 +5107,9 @@ static int ddb_gtl_init_link(struct ddb *dev, u32 l)
|
||||
struct ddb_link *link = &dev->link[l];
|
||||
u32 regs = dev->link[0].info->regmap->gtl->base +
|
||||
(l - 1) * dev->link[0].info->regmap->gtl->size;
|
||||
u32 id, base = dev->link[0].info->regmap->irq_base_gtl;
|
||||
u32 id, subid, base = dev->link[0].info->regmap->irq_base_gtl;
|
||||
|
||||
pr_info("Checking GT link %u: regs = %08x\n", l, regs);
|
||||
pr_info("DDBridge: Checking GT link %u: regs = %08x\n", l, regs);
|
||||
|
||||
spin_lock_init(&link->lock);
|
||||
mutex_init(&link->lnb.lock);
|
||||
@@ -5135,6 +5135,7 @@ static int ddb_gtl_init_link(struct ddb *dev, u32 l)
|
||||
return -1;
|
||||
}
|
||||
id = ddbreadl(dev, DDB_LINK_TAG(l) | 8);
|
||||
subid = ddbreadl(dev, DDB_LINK_TAG(l) | 12);
|
||||
switch (id) {
|
||||
case 0x0007dd01:
|
||||
link->info = &ddb_s2_48;
|
||||
@@ -5156,17 +5157,17 @@ static int ddb_gtl_init_link(struct ddb *dev, u32 l)
|
||||
|
||||
dev->link[l].ids.hwid = ddbreadl(dev, DDB_LINK_TAG(l) | 0);
|
||||
dev->link[l].ids.regmapid = ddbreadl(dev, DDB_LINK_TAG(l) | 4);
|
||||
dev->link[l].ids.vendor = id >> 16;;
|
||||
dev->link[l].ids.device = id & 0xffff;;
|
||||
//dev->link[l].ids.subvendor = id->subvendor;
|
||||
//dev->link[l].ids.subdevice = id->subdevice;
|
||||
dev->link[l].ids.vendor = id & 0xffff;
|
||||
dev->link[l].ids.device = id >> 16;
|
||||
dev->link[l].ids.subvendor = subid & 0xffff;
|
||||
dev->link[l].ids.subdevice = subid >> 16;
|
||||
|
||||
pr_info("GTL %s\n", dev->link[l].info->name);
|
||||
pr_info("DDBridge: GTL %s\n", dev->link[l].info->name);
|
||||
|
||||
pr_info("GTL HW %08x REGMAP %08x\n",
|
||||
pr_info("DDBridge: GTL HW %08x REGMAP %08x\n",
|
||||
dev->link[l].ids.hwid,
|
||||
dev->link[l].ids.regmapid);
|
||||
pr_info("GTL ID %08x\n",
|
||||
pr_info("DDBridge: GTL ID %08x\n",
|
||||
ddbreadl(dev, DDB_LINK_TAG(l) | 8));
|
||||
|
||||
tasklet_init(&link->tasklet, link_tasklet, (unsigned long) link);
|
||||
@@ -5196,7 +5197,7 @@ static void tempmon_setfan(struct ddb_link *link)
|
||||
u32 temp, temp2, pwm;
|
||||
|
||||
if ((ddblreadl(link, TEMPMON_CONTROL) & TEMPMON_CONTROL_OVERTEMP ) != 0) {
|
||||
pr_info("Over temperature condition\n");
|
||||
pr_info("DDBridge: Over temperature condition\n");
|
||||
link->OverTemperatureError = 1;
|
||||
}
|
||||
temp = (ddblreadl(link, TEMPMON_SENSOR0) >> 8) & 0xFF;
|
||||
@@ -5254,7 +5255,7 @@ static int tempmon_init(struct ddb_link *link, int FirstTime)
|
||||
link->OverTemperatureError =
|
||||
((ddblreadl(link, TEMPMON_CONTROL) & TEMPMON_CONTROL_OVERTEMP ) != 0);
|
||||
if (link->OverTemperatureError) {
|
||||
pr_info("Over temperature condition\n");
|
||||
pr_info("DDBridge: Over temperature condition\n");
|
||||
status = -1;
|
||||
}
|
||||
tempmon_setfan(link);
|
||||
@@ -5293,6 +5294,11 @@ static int ddb_init_boards(struct ddb *dev)
|
||||
info = link->info;
|
||||
if (!info)
|
||||
continue;
|
||||
pr_info("DDBridge: link %u vendor %04x device %04x subvendor %04x subdevice %04x\n",
|
||||
l,
|
||||
dev->link[l].ids.vendor, dev->link[l].ids.device,
|
||||
dev->link[l].ids.subvendor, dev->link[l].ids.subdevice);
|
||||
|
||||
if (info->board_control) {
|
||||
ddbwritel(dev, 0, DDB_LINK_TAG(l) | BOARD_CONTROL);
|
||||
msleep(100);
|
||||
@@ -5332,7 +5338,7 @@ static int ddb_init(struct ddb *dev)
|
||||
goto fail;
|
||||
ddb_ports_init(dev);
|
||||
if (ddb_buffers_alloc(dev) < 0) {
|
||||
pr_info(": Could not allocate buffer memory\n");
|
||||
pr_info("DDBridge: Could not allocate buffer memory\n");
|
||||
goto fail2;
|
||||
}
|
||||
#if 0
|
||||
@@ -5355,14 +5361,14 @@ static int ddb_init(struct ddb *dev)
|
||||
|
||||
fail3:
|
||||
ddb_ports_detach(dev);
|
||||
pr_err("fail3\n");
|
||||
pr_err("DDBridge: fail3\n");
|
||||
ddb_ports_release(dev);
|
||||
fail2:
|
||||
pr_err("fail2\n");
|
||||
pr_err("DDBridge: fail2\n");
|
||||
ddb_buffers_free(dev);
|
||||
ddb_i2c_release(dev);
|
||||
fail:
|
||||
pr_err("fail1\n");
|
||||
pr_err("DDBridge: fail1\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user