static int vp702x_set_pid(struct dvb_usb_adapter *adap, u16 pid, u8 id, int onoff) { struct vp702x_adapter_state *st = adap->priv; struct vp702x_device_state *dst = adap->dev->priv; u8 *buf; if (onoff) st->pid_filter_state |= (1 << id); else { st->pid_filter_state &= ~(1 << id); pid = 0xffff; } id = 0x10 + id*2; vp702x_set_pld_state(adap, st->pid_filter_state); mutex_lock(&dst->buf_mutex); buf = dst->buf; memset(buf, 0, 16); vp702x_usb_in_op(adap->dev, 0xe0, (((pid >> 8) & 0xff) << 8) | (id), 0, buf, 16); vp702x_usb_in_op(adap->dev, 0xe0, (((pid ) & 0xff) << 8) | (id+1), 0, buf, 16); mutex_unlock(&dst->buf_mutex); return 0; }
static int vp702x_set_pid(struct dvb_usb_adapter *adap, u16 pid, u8 id, int onoff) { struct vp702x_state *st = adap->priv; u8 buf[16] = { 0 }; if (onoff) st->pid_filter_state |= (1 << id); else { st->pid_filter_state &= ~(1 << id); pid = 0xffff; } id = 0x10 + id*2; vp702x_set_pld_state(adap, st->pid_filter_state); vp702x_usb_in_op(adap->dev, 0xe0, (((pid >> 8) & 0xff) << 8) | (id), 0, buf, 16); vp702x_usb_in_op(adap->dev, 0xe0, (((pid ) & 0xff) << 8) | (id+1), 0, buf, 16); return 0; }