u8 vp7045_read_reg(struct dvb_usb_device *d, u8 reg) { u8 obuf[2] = { 0 },v; obuf[1] = reg; vp7045_usb_op(d,TUNER_REG_READ,obuf,2,&v,1,30); return v; }
static int vp7045_read_eeprom(struct dvb_usb_device *d,u8 *buf, int len, int offset) { int i = 0; u8 v,br[2]; for (i=0; i < len; i++) { v = offset + i; vp7045_usb_op(d,GET_EE_VALUE,&v,1,br,2,5); buf[i] = br[1]; } deb_info("VP7045 EEPROM read (offs: %d, len: %d) : ",offset, i); debug_dump(buf,i,deb_info); return 0; }
static int vp7045_frontend_attach(struct dvb_usb_adapter *adap) { u8 buf[255] = { 0 }; vp7045_usb_op(adap->dev,VENDOR_STRING_READ,NULL,0,buf,20,0); buf[10] = '\0'; deb_info("firmware says: %s ",buf); vp7045_usb_op(adap->dev,PRODUCT_STRING_READ,NULL,0,buf,20,0); buf[10] = '\0'; deb_info("%s ",buf); vp7045_usb_op(adap->dev,FW_VERSION_READ,NULL,0,buf,20,0); buf[10] = '\0'; deb_info("v%s\n",buf); /* Dump the EEPROM */ /* vp7045_read_eeprom(d,buf, 255, FX2_ID_ADDR); */ adap->fe = vp7045_fe_attach(adap->dev); return 0; }
static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state) { u8 key; int i; vp7045_usb_op(d,RC_VAL_READ,NULL,0,&key,1,20); deb_rc("remote query key: %x %d\n",key,key); if (key == 0x44) { *state = REMOTE_NO_KEY_PRESSED; return 0; } for (i = 0; i < ARRAY_SIZE(vp7045_rc_keys); i++) if (vp7045_rc_keys[i].data == key) { *state = REMOTE_KEY_PRESSED; *event = vp7045_rc_keys[i].event; break; } return 0; }
static int vp7045_rc_query(struct dvb_usb_device *d, u32 *event, int *state) { u8 key; int i; vp7045_usb_op(d,RC_VAL_READ,NULL,0,&key,1,20); deb_rc("remote query key: %x %d\n",key,key); if (key == 0x44) { *state = REMOTE_NO_KEY_PRESSED; return 0; } for (i = 0; i < ARRAY_SIZE(rc_map_vp7045_table); i++) if (rc5_data(&rc_map_vp7045_table[i]) == key) { *state = REMOTE_KEY_PRESSED; *event = rc_map_vp7045_table[i].keycode; break; } return 0; }
static int vp7045_power_ctrl(struct dvb_usb_device *d, int onoff) { u8 v = onoff; return vp7045_usb_op(d,SET_TUNER_POWER,&v,1,NULL,0,150); }