Lines Matching full:link

58 static int lnb_command(struct ddb *dev, u32 link, u32 lnb, u32 cmd)  in lnb_command()  argument
60 u32 c, v = 0, tag = DDB_LINK_TAG(link); in lnb_command()
62 v = LNB_TONE & (dev->link[link].lnb.tone << (15 - lnb)); in lnb_command()
85 u32 fmode = dev->link[port->lnr].lnb.fmode; in max_send_master_cmd()
92 mutex_lock(&dev->link[port->lnr].lnb.lock); in max_send_master_cmd()
97 mutex_unlock(&dev->link[port->lnr].lnb.lock); in max_send_master_cmd()
101 static int lnb_send_diseqc(struct ddb *dev, u32 link, u32 input, in lnb_send_diseqc() argument
104 u32 tag = DDB_LINK_TAG(link); in lnb_send_diseqc()
110 lnb_command(dev, link, input, LNB_CMD_DISEQC); in lnb_send_diseqc()
114 static int lnb_set_sat(struct ddb *dev, u32 link, u32 input, u32 sat, u32 band, in lnb_set_sat() argument
123 return lnb_send_diseqc(dev, link, input, &cmd); in lnb_set_sat()
126 static int lnb_set_tone(struct ddb *dev, u32 link, u32 input, in lnb_set_tone() argument
134 if (!(dev->link[link].lnb.tone & mask)) in lnb_set_tone()
136 dev->link[link].lnb.tone &= ~(1ULL << input); in lnb_set_tone()
139 if (dev->link[link].lnb.tone & mask) in lnb_set_tone()
141 dev->link[link].lnb.tone |= (1ULL << input); in lnb_set_tone()
148 s = lnb_command(dev, link, input, LNB_CMD_NOP); in lnb_set_tone()
152 static int lnb_set_voltage(struct ddb *dev, u32 link, u32 input, in lnb_set_voltage() argument
157 if (dev->link[link].lnb.oldvoltage[input] == voltage) in lnb_set_voltage()
161 if (dev->link[link].lnb.voltage[input]) in lnb_set_voltage()
163 lnb_command(dev, link, input, LNB_CMD_OFF); in lnb_set_voltage()
166 lnb_command(dev, link, input, LNB_CMD_LOW); in lnb_set_voltage()
169 lnb_command(dev, link, input, LNB_CMD_HIGH); in lnb_set_voltage()
175 dev->link[link].lnb.oldvoltage[input] = voltage; in lnb_set_voltage()
192 dev->link[port->lnr].lnb.voltage[dvb->input & 3] & bit; in max_set_input_unlocked()
194 dev->link[port->lnr].lnb.voltage[dvb->input & 3] &= ~bit; in max_set_input_unlocked()
196 dev->link[port->lnr].lnb.voltage[dvb->input & 3] |= obit; in max_set_input_unlocked()
210 u32 fmode = dev->link[port->lnr].lnb.fmode; in max_set_tone()
212 mutex_lock(&dev->link[port->lnr].lnb.lock); in max_set_tone()
236 mutex_unlock(&dev->link[port->lnr].lnb.lock); in max_set_tone()
247 u32 nv, ov = dev->link[port->lnr].lnb.voltages; in max_set_voltage()
249 u32 fmode = dev->link[port->lnr].lnb.fmode; in max_set_voltage()
251 mutex_lock(&dev->link[port->lnr].lnb.lock); in max_set_voltage()
261 dev->link[port->lnr].lnb.voltage[dvb->input] &= in max_set_voltage()
264 dev->link[port->lnr].lnb.voltage[dvb->input] |= in max_set_voltage()
272 dev->link[port->lnr].lnb.voltages &= in max_set_voltage()
275 dev->link[port->lnr].lnb.voltages |= in max_set_voltage()
278 nv = dev->link[port->lnr].lnb.voltages; in max_set_voltage()
340 mutex_unlock(&dev->link[port->lnr].lnb.lock); in max_set_voltage()
356 struct ddb_link *link = priv; in mxl_fw_read() local
357 struct ddb *dev = link->dev; in mxl_fw_read()
359 dev_info(dev->dev, "Read mxl_fw from link %u\n", link->nr); in mxl_fw_read()
361 return ddbridge_flashread(dev, link->nr, buf, 0xc0000, len); in mxl_fw_read()
364 int ddb_lnb_init_fmode(struct ddb *dev, struct ddb_link *link, u32 fm) in ddb_lnb_init_fmode() argument
366 u32 l = link->nr; in ddb_lnb_init_fmode()
368 if (link->lnb.fmode == fm) in ddb_lnb_init_fmode()
370 dev_info(dev->dev, "Set fmode link %u = %u\n", l, fm); in ddb_lnb_init_fmode()
371 mutex_lock(&link->lnb.lock); in ddb_lnb_init_fmode()
394 link->lnb.fmode = fm; in ddb_lnb_init_fmode()
395 mutex_unlock(&link->lnb.lock); in ddb_lnb_init_fmode()
414 struct ddb_link *link = &dev->link[port->lnr]; in ddb_fe_attach_mxl5xx() local
419 cfg.fw_priv = link; in ddb_fe_attach_mxl5xx()
444 ddb_lnb_init_fmode(dev, link, fmode); in ddb_fe_attach_mxl5xx()
465 struct ddb_link *link = &dev->link[port->lnr]; in ddb_fe_attach_mci() local
493 ddb_lnb_init_fmode(dev, link, fmode); in ddb_fe_attach_mci()