Bobben_no
Member
- Joined
- Dec 12, 2009
- Messages
- 21
- Reaction score
- 4
- Points
- 3
- Age
- 52
- My Satellite Setup
- Topfield 7700 HDPVR,Fibo120cm and a lot of other receivers and antennas.
- My Location
- Norway
This solved diseqc issues for my Si2183 based cards:
Code:
static int si2183_diseqc_send_msg(struct dvb_frontend *fe,
struct dvb_diseqc_master_cmd *d)
{
struct i2c_client *client = fe->demodulator_priv;
int ret;
u8 remaining = d->msg_len;
u8 *p = d->msg;
u8 len = 0;
char msg[256];
char*ps = &msg[0];
int i;
ps += sprintf(ps, "Diseqc message[%d]: ", d->msg_len);
for(i=0; i< d->msg_len; ++i)
ps += sprintf(ps, "0x%x ", d->msg[i]);
vprintk("%s", msg);
while (remaining > 0) {
p += len;
len = (remaining > 6) ? 6 : remaining;
remaining -= len;
if(remaining!=0)
dprintk("REMAIN= %d/%d", remaining, d->msg_len);
msleep(100); //## added 24 September 2023 ##
ret = send_diseqc_cmd(fe, 0, 0, 0,
(remaining == 0) ? 1 : 0, len, p);
if (ret)
goto err;
msleep(10);
}
return 0;
err:
dev_err(&client->dev, "set_tone failed=%d", ret);
return ret;
}