Lines Matching +full:cold +full:- +full:temp

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * USB1.1 DVB-T receiver.
9 * see Documentation/driver-api/media/drivers/dvb-usb.rst for more information
17 "set debugging level (1=info,xfer=2,rc=4,reg=8,i2c=16,fw=32 (or-able))."
48 struct af9005_device_state *st = d->priv;
54 return -EINVAL;
58 return -EINVAL;
61 mutex_lock(&d->data_mutex);
62 st->data[0] = 14; /* rest of buffer length low */
63 st->data[1] = 0; /* rest of buffer length high */
65 st->data[2] = AF9005_REGISTER_RW; /* register operation */
66 st->data[3] = 12; /* rest of buffer length */
68 st->data[4] = seq = st->sequence++; /* sequence number */
70 st->data[5] = (u8) (reg >> 8); /* register address */
71 st->data[6] = (u8) (reg & 0xff);
81 AF9005_CMD_BURST | AF9005_CMD_AUTOINC | (len - 1) << 3;
85 st->data[8 + i] = values[i];
88 st->data[8] = values[0];
89 st->data[7] = command;
91 ret = dvb_usb_generic_rw(d, st->data, 16, st->data, 17, 0);
96 if (st->data[2] != AF9005_REGISTER_RW_ACK) {
98 ret = -EIO;
101 if (st->data[3] != 0x0d) {
103 ret = -EIO;
106 if (st->data[4] != seq) {
108 ret = -EIO;
113 * identical values for st->data[5] to st->data[8].
118 if (st->data[16] != 0x01) {
120 ret = -EIO;
126 values[i] = st->data[8 + i];
129 mutex_unlock(&d->data_mutex);
166 u8 temp = value;
170 &temp, 1);
198 u8 temp;
201 ret = af9005_read_ofdm_register(d, reg, &temp);
206 *value = (temp >> pos) & regmask[len - 1];
215 u8 temp, mask;
220 ret = af9005_read_ofdm_register(d, reg, &temp);
223 mask = regmask[len - 1] << pos;
224 temp = (temp & ~mask) | ((value << pos) & mask);
225 return af9005_write_ofdm_register(d, reg, temp);
252 u8 temp;
262 &temp);
265 done = temp & (regmask[i2c_m_status_wdat_done_len - 1]
269 fail = temp & (regmask[i2c_m_status_wdat_fail_len - 1]
276 return -ETIMEDOUT;
284 return -EIO;
305 u8 temp, buf[2];
326 ret = af9005_read_ofdm_register(d, 0xa408, &temp);
329 if (temp & 0x01)
334 return -ETIMEDOUT;
343 ret = af9005_read_ofdm_register(d, 0xa400 + i, &temp);
346 values[i] = temp;
381 u8 temp;
384 temp = reg + i;
388 i2caddr, &temp, 1);
393 data[i] = temp;
410 if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
411 return -EAGAIN;
426 ret = -EOPNOTSUPP;
433 ret = af9005_i2c_write(d, addr, reg, value, msg[0].len - 1);
439 mutex_unlock(&d->i2c_mutex);
456 struct af9005_device_state *st = d->priv;
463 return -EINVAL;
467 return -EINVAL;
471 return -EINVAL;
475 mutex_lock(&d->data_mutex);
477 st->data[0] = (u8) (packet_len & 0xff);
478 st->data[1] = (u8) ((packet_len & 0xff00) >> 8);
480 st->data[2] = 0x26; /* packet type */
481 st->data[3] = wlen + 3;
482 st->data[4] = seq = st->sequence++;
483 st->data[5] = command;
484 st->data[6] = wlen;
486 st->data[7 + i] = wbuf[i];
487 ret = dvb_usb_generic_rw(d, st->data, wlen + 7, st->data, rlen + 7, 0);
488 if (st->data[2] != 0x27) {
490 ret = -EIO;
491 } else if (st->data[4] != seq) {
493 ret = -EIO;
494 } else if (st->data[5] != 0x01) {
496 ret = -EIO;
497 } else if (st->data[6] != rlen) {
499 ret = -EIO;
503 rbuf[i] = st->data[i + 7];
506 mutex_unlock(&d->data_mutex);
513 struct af9005_device_state *st = d->priv;
517 mutex_lock(&d->data_mutex);
519 memset(st->data, 0, sizeof(st->data));
521 st->data[0] = 14; /* length of rest of packet low */
522 st->data[1] = 0; /* length of rest of packer high */
524 st->data[2] = 0x2a; /* read/write eeprom */
526 st->data[3] = 12; /* size */
528 st->data[4] = seq = st->sequence++;
530 st->data[5] = 0; /* read */
532 st->data[6] = len;
533 st->data[7] = address;
534 ret = dvb_usb_generic_rw(d, st->data, 16, st->data, 14, 0);
535 if (st->data[2] != 0x2b) {
537 ret = -EIO;
538 } else if (st->data[3] != 10) {
540 ret = -EIO;
541 } else if (st->data[4] != seq) {
543 ret = -EIO;
544 } else if (st->data[5] != 1) {
546 ret = -EIO;
551 values[i] = st->data[6 + i];
553 mutex_unlock(&d->data_mutex);
603 return -EINVAL;
615 ret = act_len != FW_BULKOUT_SIZE + 2 ? -1 : 0;
632 return -EIO;
636 return -EIO;
640 return -EIO;
644 return -EIO;
650 return -EIO;
657 return -EIO;
661 return -EIO;
665 return -EIO;
669 return -EIO;
675 return -EIO;
682 return -EIO;
686 return -EIO;
690 return -EIO;
694 return -EIO;
698 return -EIO;
704 return -EIO;
722 return -ENOMEM;
730 ret = -EIO;
733 packets = fw->size / FW_BULKOUT_SIZE;
737 memcpy(&buf[2], fw->data + i * FW_BULKOUT_SIZE,
755 ret = -EIO;
768 ret = -EIO;
780 struct af9005_device_state *st = d->priv;
781 int temp, ret;
784 temp = 1;
786 temp = 0;
787 if (st->led_state != temp) {
791 reg_top_locken1_len, temp);
797 reg_top_lock1_len, temp);
800 st->led_state = temp;
812 what it is done in dvb-usb-init.c.
814 struct usb_device *udev = adap->dev->udev;
820 af9005_read_eeprom(adap->dev, i, buf, 8);
824 adap->fe_adap[0].fe = af9005_fe_attach(adap->dev);
830 struct af9005_device_state *st = d->priv;
840 mutex_lock(&d->data_mutex);
843 st->data[0] = 3; /* rest of packet length low */
844 st->data[1] = 0; /* rest of packet length high */
845 st->data[2] = 0x40; /* read remote */
846 st->data[3] = 1; /* rest of packet length */
847 st->data[4] = seq = st->sequence++; /* sequence number */
848 ret = dvb_usb_generic_rw(d, st->data, 5, st->data, 256, 0);
853 if (st->data[2] != 0x41) {
855 ret = -EIO;
857 } else if (st->data[4] != seq) {
859 ret = -EIO;
862 len = st->data[5];
865 ret = -EIO;
870 debug_dump((st->data + 6), len, deb_rc);
871 ret = rc_decode(d, &st->data[6], len, event, state);
878 *event = d->last_event;
883 mutex_unlock(&d->data_mutex);
899 af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 1);
903 af9005_write_register_bits(adap->dev,
908 af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 1);
911 af9005_write_ofdm_register(adap->dev, XD_MP2IF_DMX_CTRL, 0);
928 if (adap->feedcount == 1) {
935 af9005_write_ofdm_register(adap->dev,
941 af9005_write_ofdm_register(adap->dev,
948 if (adap->feedcount == 0) {
955 ret = af9005_write_ofdm_register(adap->dev, XD_MP2IF_PID_IDX, cmd);
965 int *cold)
972 return -ENOMEM;
980 *cold = 1;
982 *cold = 0;
984 ret = -EIO;
986 deb_info("Identify state cold = %d\n", *cold);
1040 /* parameter for the MPEG2-data transfer */
1071 {.name = "Afatech DVB-T USB1.1 stick",
1079 {.name = "Ansonic DVB-T USB1.1 stick",
1137 MODULE_DESCRIPTION("Driver for Afatech 9005 DVB-T USB1.1 stick");