Is it possible to control the loop out of TBS5925?
Here is the same question for TBS6925.
As it is now the loop through works only on the same band and polarity the 6925 is locked on.
Same applies to TBS5925?
Does it make any sence to use SEC_VOLTAGE_OFF? Because with SEC_VOLTAGE_OFF loop is complete dead (instead of passing control to loop out).
- Code: Select All Code
--- a/drivers/media/usb/dvb-usb/tbs5925.c
+++ b/drivers/media/usb/dvb-usb/tbs5925.c
@@ -241,17 +241,25 @@ static int tbs5925_read_mac_address(struct dvb_usb_device *d, u8 mac[6])
static int tbs5925_set_voltage(struct dvb_frontend *fe,
enum fe_sec_voltage voltage)
{
- static u8 command_13v[1] = {0x00};
- static u8 command_18v[1] = {0x01};
+ static u8 cmd[1] = {0x00};
struct i2c_msg msg[] = {
{.addr = TBS5925_VOLTAGE_CTRL, .flags = 0,
- .buf = command_13v, .len = 1},
+ .buf = cmd, .len = 1},
};
struct dvb_usb_adapter *udev_adap =
(struct dvb_usb_adapter *)(fe->dvb->priv);
- if (voltage == SEC_VOLTAGE_18)
- msg[0].buf = command_18v;
+ switch (voltage) {
+ case SEC_VOLTAGE_13:
+ cmd[0] = 0;
+ break;
+ case SEC_VOLTAGE_18:
+ cmd[0] = 1;
+ break;
+ case SEC_VOLTAGE_OFF:
+ cmd[0] = 2;
+ break;
+ }
//info("tbs5925_set_voltage %d",voltage);
i2c_transfer(&udev_adap->dev->i2c_adap, msg, 1);
return 0;
Thanks for your thoughts.