Searched refs:st (Results 1 - 200 of 1408) sorted by relevance

12345678

/linux-4.1.27/drivers/macintosh/
H A Dwindfarm_pid.c26 void wf_pid_init(struct wf_pid_state *st, struct wf_pid_param *param) wf_pid_init() argument
28 memset(st, 0, sizeof(struct wf_pid_state)); wf_pid_init()
29 st->param = *param; wf_pid_init()
30 st->first = 1; wf_pid_init()
34 s32 wf_pid_run(struct wf_pid_state *st, s32 new_sample) wf_pid_run() argument
38 int i, hlen = st->param.history_len; wf_pid_run()
41 error = new_sample - st->param.itarget; wf_pid_run()
44 if (st->first) { wf_pid_run()
46 st->samples[i] = new_sample; wf_pid_run()
47 st->errors[i] = error; wf_pid_run()
49 st->first = 0; wf_pid_run()
50 st->index = 0; wf_pid_run()
52 st->index = (st->index + 1) % hlen; wf_pid_run()
53 st->samples[st->index] = new_sample; wf_pid_run()
54 st->errors[st->index] = error; wf_pid_run()
59 integ += st->errors[(st->index + hlen - i) % hlen]; wf_pid_run()
60 integ *= st->param.interval; wf_pid_run()
63 deriv = st->errors[st->index] - wf_pid_run()
64 st->errors[(st->index + hlen - 1) % hlen]; wf_pid_run()
65 deriv /= st->param.interval; wf_pid_run()
68 target = (s32)((integ * (s64)st->param.gr + deriv * (s64)st->param.gd + wf_pid_run()
69 error * (s64)st->param.gp) >> 36); wf_pid_run()
70 if (st->param.additive) wf_pid_run()
71 target += st->target; wf_pid_run()
72 target = max(target, st->param.min); wf_pid_run()
73 target = min(target, st->param.max); wf_pid_run()
74 st->target = target; wf_pid_run()
76 return st->target; wf_pid_run()
80 void wf_cpu_pid_init(struct wf_cpu_pid_state *st, wf_cpu_pid_init() argument
83 memset(st, 0, sizeof(struct wf_cpu_pid_state)); wf_cpu_pid_init()
84 st->param = *param; wf_cpu_pid_init()
85 st->first = 1; wf_cpu_pid_init()
89 s32 wf_cpu_pid_run(struct wf_cpu_pid_state *st, s32 new_power, s32 new_temp) wf_cpu_pid_run() argument
93 int i, hlen = st->param.history_len; wf_cpu_pid_run()
96 error = st->param.pmaxadj - new_power; wf_cpu_pid_run()
99 if (st->first) { wf_cpu_pid_run()
101 st->powers[i] = new_power; wf_cpu_pid_run()
102 st->errors[i] = error; wf_cpu_pid_run()
104 st->temps[0] = st->temps[1] = new_temp; wf_cpu_pid_run()
105 st->first = 0; wf_cpu_pid_run()
106 st->index = st->tindex = 0; wf_cpu_pid_run()
108 st->index = (st->index + 1) % hlen; wf_cpu_pid_run()
109 st->powers[st->index] = new_power; wf_cpu_pid_run()
110 st->errors[st->index] = error; wf_cpu_pid_run()
111 st->tindex = (st->tindex + 1) % 2; wf_cpu_pid_run()
112 st->temps[st->tindex] = new_temp; wf_cpu_pid_run()
117 integ += st->errors[(st->index + hlen - i) % hlen]; wf_cpu_pid_run()
118 integ *= st->param.interval; wf_cpu_pid_run()
119 integ *= st->param.gr; wf_cpu_pid_run()
120 sval = st->param.tmax - (s32)(integ >> 20); wf_cpu_pid_run()
121 adj = min(st->param.ttarget, sval); wf_cpu_pid_run()
126 deriv = st->temps[st->tindex] - wf_cpu_pid_run()
127 st->temps[(st->tindex + 2 - 1) % 2]; wf_cpu_pid_run()
128 deriv /= st->param.interval; wf_cpu_pid_run()
129 deriv *= st->param.gd; wf_cpu_pid_run()
132 prop = st->last_delta = (new_temp - adj); wf_cpu_pid_run()
133 prop *= st->param.gp; wf_cpu_pid_run()
138 target = st->target + (s32)((deriv + prop) >> 36); wf_cpu_pid_run()
139 target = max(target, st->param.min); wf_cpu_pid_run()
140 target = min(target, st->param.max); wf_cpu_pid_run()
141 st->target = target; wf_cpu_pid_run()
143 return st->target; wf_cpu_pid_run()
/linux-4.1.27/arch/x86/math-emu/
H A Dfpu_arith.c20 /* fadd st,st(i) */ fadd__()
23 FPU_add(&st(i), FPU_gettagi(i), 0, control_word); fadd__()
28 /* fmul st,st(i) */ fmul__()
31 FPU_mul(&st(i), FPU_gettagi(i), 0, control_word); fmul__()
36 /* fsub st,st(i) */ fsub__()
43 /* fsubr st,st(i) */ fsubr_()
50 /* fdiv st,st(i) */ fdiv__()
57 /* fdivr st,st(i) */ fdivr_()
64 /* fadd st(i),st */ fadd_i()
67 FPU_add(&st(i), FPU_gettagi(i), i, control_word); fadd_i()
72 /* fmul st(i),st */ fmul_i()
74 FPU_mul(&st(0), FPU_gettag0(), FPU_rm, control_word); fmul_i()
79 /* fsubr st(i),st */ fsubri()
86 /* fsub st(i),st */ fsub_i()
93 /* fdivr st(i),st */ fdivri()
100 /* fdiv st(i),st */ fdiv_i()
107 /* faddp st(i),st */ faddp_()
110 if (FPU_add(&st(i), FPU_gettagi(i), i, control_word) >= 0) faddp_()
116 /* fmulp st(i),st */ fmulp_()
118 if (FPU_mul(&st(0), FPU_gettag0(), FPU_rm, control_word) >= 0) fmulp_()
124 /* fsubrp st(i),st */ fsubrp()
132 /* fsubp st(i),st */ fsubp_()
140 /* fdivrp st(i),st */ fdivrp()
148 /* fdivp st(i),st */ fdivp_()
H A Dfpu_aux.c112 /* fld st(i) */ fld_i_()
115 reg_copy(&st(i), st_new_ptr); fld_i_()
131 /* fxch st(i) */ fxch_i()
134 FPU_REG *st0_ptr = &st(0), *sti_ptr = &st(i); fxch_i()
174 /* ffree st(i) */ ffree_()
180 /* ffree st(i) + pop - unofficial code */ ffreep()
187 /* fst st(i) */ fst_i_()
188 FPU_copy_to_regi(&st(0), FPU_gettag0(), FPU_rm); fst_i_()
193 /* fstp st(i) */ fstp_i()
194 FPU_copy_to_regi(&st(0), FPU_gettag0(), FPU_rm); fstp_i()
H A Dreg_divide.c41 b = &st(0); FPU_div()
48 a = &st(rm); FPU_div()
53 a = &st(0); FPU_div()
60 b = &st(rm); FPU_div()
71 dest = &st(deststnr); FPU_div()
141 (flags & REV) ? st0_ptr : &st(rm)); FPU_div()
146 tag = FPU_Special(&st(rm)); FPU_div()
147 return real_2op_NaN(&st(rm), tag, 0, FPU_div()
148 (flags & REV) ? st0_ptr : &st(rm)); FPU_div()
H A Dfpu_tags.c89 *st_new_ptr = &st(-1); FPU_stackoverflow()
96 reg_copy(r, &st(stnr)); FPU_copy_to_regi()
102 reg_copy(r, &st(1)); FPU_copy_to_reg1()
111 reg_copy(r, &st(0)); FPU_copy_to_reg0()
/linux-4.1.27/drivers/staging/iio/meter/
H A Dade7854-i2c.c24 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_write_reg_8() local
26 mutex_lock(&st->buf_lock); ade7854_i2c_write_reg_8()
27 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_write_reg_8()
28 st->tx[1] = reg_address & 0xFF; ade7854_i2c_write_reg_8()
29 st->tx[2] = value; ade7854_i2c_write_reg_8()
31 ret = i2c_master_send(st->i2c, st->tx, 3); ade7854_i2c_write_reg_8()
32 mutex_unlock(&st->buf_lock); ade7854_i2c_write_reg_8()
43 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_write_reg_16() local
45 mutex_lock(&st->buf_lock); ade7854_i2c_write_reg_16()
46 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_write_reg_16()
47 st->tx[1] = reg_address & 0xFF; ade7854_i2c_write_reg_16()
48 st->tx[2] = (value >> 8) & 0xFF; ade7854_i2c_write_reg_16()
49 st->tx[3] = value & 0xFF; ade7854_i2c_write_reg_16()
51 ret = i2c_master_send(st->i2c, st->tx, 4); ade7854_i2c_write_reg_16()
52 mutex_unlock(&st->buf_lock); ade7854_i2c_write_reg_16()
63 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_write_reg_24() local
65 mutex_lock(&st->buf_lock); ade7854_i2c_write_reg_24()
66 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_write_reg_24()
67 st->tx[1] = reg_address & 0xFF; ade7854_i2c_write_reg_24()
68 st->tx[2] = (value >> 16) & 0xFF; ade7854_i2c_write_reg_24()
69 st->tx[3] = (value >> 8) & 0xFF; ade7854_i2c_write_reg_24()
70 st->tx[4] = value & 0xFF; ade7854_i2c_write_reg_24()
72 ret = i2c_master_send(st->i2c, st->tx, 5); ade7854_i2c_write_reg_24()
73 mutex_unlock(&st->buf_lock); ade7854_i2c_write_reg_24()
84 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_write_reg_32() local
86 mutex_lock(&st->buf_lock); ade7854_i2c_write_reg_32()
87 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_write_reg_32()
88 st->tx[1] = reg_address & 0xFF; ade7854_i2c_write_reg_32()
89 st->tx[2] = (value >> 24) & 0xFF; ade7854_i2c_write_reg_32()
90 st->tx[3] = (value >> 16) & 0xFF; ade7854_i2c_write_reg_32()
91 st->tx[4] = (value >> 8) & 0xFF; ade7854_i2c_write_reg_32()
92 st->tx[5] = value & 0xFF; ade7854_i2c_write_reg_32()
94 ret = i2c_master_send(st->i2c, st->tx, 6); ade7854_i2c_write_reg_32()
95 mutex_unlock(&st->buf_lock); ade7854_i2c_write_reg_32()
105 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_read_reg_8() local
108 mutex_lock(&st->buf_lock); ade7854_i2c_read_reg_8()
109 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_read_reg_8()
110 st->tx[1] = reg_address & 0xFF; ade7854_i2c_read_reg_8()
112 ret = i2c_master_send(st->i2c, st->tx, 2); ade7854_i2c_read_reg_8()
116 ret = i2c_master_recv(st->i2c, st->rx, 1); ade7854_i2c_read_reg_8()
120 *val = st->rx[0]; ade7854_i2c_read_reg_8()
122 mutex_unlock(&st->buf_lock); ade7854_i2c_read_reg_8()
131 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_read_reg_16() local
134 mutex_lock(&st->buf_lock); ade7854_i2c_read_reg_16()
135 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_read_reg_16()
136 st->tx[1] = reg_address & 0xFF; ade7854_i2c_read_reg_16()
138 ret = i2c_master_send(st->i2c, st->tx, 2); ade7854_i2c_read_reg_16()
142 ret = i2c_master_recv(st->i2c, st->rx, 2); ade7854_i2c_read_reg_16()
146 *val = (st->rx[0] << 8) | st->rx[1]; ade7854_i2c_read_reg_16()
148 mutex_unlock(&st->buf_lock); ade7854_i2c_read_reg_16()
157 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_read_reg_24() local
160 mutex_lock(&st->buf_lock); ade7854_i2c_read_reg_24()
161 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_read_reg_24()
162 st->tx[1] = reg_address & 0xFF; ade7854_i2c_read_reg_24()
164 ret = i2c_master_send(st->i2c, st->tx, 2); ade7854_i2c_read_reg_24()
168 ret = i2c_master_recv(st->i2c, st->rx, 3); ade7854_i2c_read_reg_24()
172 *val = (st->rx[0] << 16) | (st->rx[1] << 8) | st->rx[2]; ade7854_i2c_read_reg_24()
174 mutex_unlock(&st->buf_lock); ade7854_i2c_read_reg_24()
183 struct ade7854_state *st = iio_priv(indio_dev); ade7854_i2c_read_reg_32() local
186 mutex_lock(&st->buf_lock); ade7854_i2c_read_reg_32()
187 st->tx[0] = (reg_address >> 8) & 0xFF; ade7854_i2c_read_reg_32()
188 st->tx[1] = reg_address & 0xFF; ade7854_i2c_read_reg_32()
190 ret = i2c_master_send(st->i2c, st->tx, 2); ade7854_i2c_read_reg_32()
194 ret = i2c_master_recv(st->i2c, st->rx, 3); ade7854_i2c_read_reg_32()
198 *val = (st->rx[0] << 24) | (st->rx[1] << 16) | ade7854_i2c_read_reg_32()
199 (st->rx[2] << 8) | st->rx[3]; ade7854_i2c_read_reg_32()
201 mutex_unlock(&st->buf_lock); ade7854_i2c_read_reg_32()
208 struct ade7854_state *st; ade7854_i2c_probe() local
211 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); ade7854_i2c_probe()
214 st = iio_priv(indio_dev); ade7854_i2c_probe()
216 st->read_reg_8 = ade7854_i2c_read_reg_8; ade7854_i2c_probe()
217 st->read_reg_16 = ade7854_i2c_read_reg_16; ade7854_i2c_probe()
218 st->read_reg_24 = ade7854_i2c_read_reg_24; ade7854_i2c_probe()
219 st->read_reg_32 = ade7854_i2c_read_reg_32; ade7854_i2c_probe()
220 st->write_reg_8 = ade7854_i2c_write_reg_8; ade7854_i2c_probe()
221 st->write_reg_16 = ade7854_i2c_write_reg_16; ade7854_i2c_probe()
222 st->write_reg_24 = ade7854_i2c_write_reg_24; ade7854_i2c_probe()
223 st->write_reg_32 = ade7854_i2c_write_reg_32; ade7854_i2c_probe()
224 st->i2c = client; ade7854_i2c_probe()
225 st->irq = client->irq; ade7854_i2c_probe()
H A Dade7854-spi.c24 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_write_reg_8() local
26 .tx_buf = st->tx, ade7854_spi_write_reg_8()
31 mutex_lock(&st->buf_lock); ade7854_spi_write_reg_8()
32 st->tx[0] = ADE7854_WRITE_REG; ade7854_spi_write_reg_8()
33 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_write_reg_8()
34 st->tx[2] = reg_address & 0xFF; ade7854_spi_write_reg_8()
35 st->tx[3] = value & 0xFF; ade7854_spi_write_reg_8()
37 ret = spi_sync_transfer(st->spi, &xfer, 1); ade7854_spi_write_reg_8()
38 mutex_unlock(&st->buf_lock); ade7854_spi_write_reg_8()
49 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_write_reg_16() local
51 .tx_buf = st->tx, ade7854_spi_write_reg_16()
56 mutex_lock(&st->buf_lock); ade7854_spi_write_reg_16()
57 st->tx[0] = ADE7854_WRITE_REG; ade7854_spi_write_reg_16()
58 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_write_reg_16()
59 st->tx[2] = reg_address & 0xFF; ade7854_spi_write_reg_16()
60 st->tx[3] = (value >> 8) & 0xFF; ade7854_spi_write_reg_16()
61 st->tx[4] = value & 0xFF; ade7854_spi_write_reg_16()
63 ret = spi_sync_transfer(st->spi, &xfer, 1); ade7854_spi_write_reg_16()
64 mutex_unlock(&st->buf_lock); ade7854_spi_write_reg_16()
75 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_write_reg_24() local
77 .tx_buf = st->tx, ade7854_spi_write_reg_24()
82 mutex_lock(&st->buf_lock); ade7854_spi_write_reg_24()
83 st->tx[0] = ADE7854_WRITE_REG; ade7854_spi_write_reg_24()
84 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_write_reg_24()
85 st->tx[2] = reg_address & 0xFF; ade7854_spi_write_reg_24()
86 st->tx[3] = (value >> 16) & 0xFF; ade7854_spi_write_reg_24()
87 st->tx[4] = (value >> 8) & 0xFF; ade7854_spi_write_reg_24()
88 st->tx[5] = value & 0xFF; ade7854_spi_write_reg_24()
90 ret = spi_sync_transfer(st->spi, &xfer, 1); ade7854_spi_write_reg_24()
91 mutex_unlock(&st->buf_lock); ade7854_spi_write_reg_24()
102 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_write_reg_32() local
104 .tx_buf = st->tx, ade7854_spi_write_reg_32()
109 mutex_lock(&st->buf_lock); ade7854_spi_write_reg_32()
110 st->tx[0] = ADE7854_WRITE_REG; ade7854_spi_write_reg_32()
111 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_write_reg_32()
112 st->tx[2] = reg_address & 0xFF; ade7854_spi_write_reg_32()
113 st->tx[3] = (value >> 24) & 0xFF; ade7854_spi_write_reg_32()
114 st->tx[4] = (value >> 16) & 0xFF; ade7854_spi_write_reg_32()
115 st->tx[5] = (value >> 8) & 0xFF; ade7854_spi_write_reg_32()
116 st->tx[6] = value & 0xFF; ade7854_spi_write_reg_32()
118 ret = spi_sync_transfer(st->spi, &xfer, 1); ade7854_spi_write_reg_32()
119 mutex_unlock(&st->buf_lock); ade7854_spi_write_reg_32()
129 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_read_reg_8() local
133 .tx_buf = st->tx, ade7854_spi_read_reg_8()
137 .rx_buf = st->rx, ade7854_spi_read_reg_8()
143 mutex_lock(&st->buf_lock); ade7854_spi_read_reg_8()
145 st->tx[0] = ADE7854_READ_REG; ade7854_spi_read_reg_8()
146 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_read_reg_8()
147 st->tx[2] = reg_address & 0xFF; ade7854_spi_read_reg_8()
149 ret = spi_sync_transfer(st->spi, xfers, ARRAY_SIZE(xfers)); ade7854_spi_read_reg_8()
151 dev_err(&st->spi->dev, "problem when reading 8 bit register 0x%02X", ade7854_spi_read_reg_8()
155 *val = st->rx[0]; ade7854_spi_read_reg_8()
158 mutex_unlock(&st->buf_lock); ade7854_spi_read_reg_8()
167 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_read_reg_16() local
171 .tx_buf = st->tx, ade7854_spi_read_reg_16()
175 .rx_buf = st->rx, ade7854_spi_read_reg_16()
181 mutex_lock(&st->buf_lock); ade7854_spi_read_reg_16()
182 st->tx[0] = ADE7854_READ_REG; ade7854_spi_read_reg_16()
183 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_read_reg_16()
184 st->tx[2] = reg_address & 0xFF; ade7854_spi_read_reg_16()
186 ret = spi_sync_transfer(st->spi, xfers, ARRAY_SIZE(xfers)); ade7854_spi_read_reg_16()
188 dev_err(&st->spi->dev, "problem when reading 16 bit register 0x%02X", ade7854_spi_read_reg_16()
192 *val = be16_to_cpup((const __be16 *)st->rx); ade7854_spi_read_reg_16()
195 mutex_unlock(&st->buf_lock); ade7854_spi_read_reg_16()
204 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_read_reg_24() local
208 .tx_buf = st->tx, ade7854_spi_read_reg_24()
212 .rx_buf = st->rx, ade7854_spi_read_reg_24()
218 mutex_lock(&st->buf_lock); ade7854_spi_read_reg_24()
220 st->tx[0] = ADE7854_READ_REG; ade7854_spi_read_reg_24()
221 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_read_reg_24()
222 st->tx[2] = reg_address & 0xFF; ade7854_spi_read_reg_24()
224 ret = spi_sync_transfer(st->spi, xfers, ARRAY_SIZE(xfers)); ade7854_spi_read_reg_24()
226 dev_err(&st->spi->dev, "problem when reading 24 bit register 0x%02X", ade7854_spi_read_reg_24()
230 *val = (st->rx[0] << 16) | (st->rx[1] << 8) | st->rx[2]; ade7854_spi_read_reg_24()
233 mutex_unlock(&st->buf_lock); ade7854_spi_read_reg_24()
242 struct ade7854_state *st = iio_priv(indio_dev); ade7854_spi_read_reg_32() local
246 .tx_buf = st->tx, ade7854_spi_read_reg_32()
250 .rx_buf = st->rx, ade7854_spi_read_reg_32()
256 mutex_lock(&st->buf_lock); ade7854_spi_read_reg_32()
258 st->tx[0] = ADE7854_READ_REG; ade7854_spi_read_reg_32()
259 st->tx[1] = (reg_address >> 8) & 0xFF; ade7854_spi_read_reg_32()
260 st->tx[2] = reg_address & 0xFF; ade7854_spi_read_reg_32()
262 ret = spi_sync_transfer(st->spi, xfers, ARRAY_SIZE(xfers)); ade7854_spi_read_reg_32()
264 dev_err(&st->spi->dev, "problem when reading 32 bit register 0x%02X", ade7854_spi_read_reg_32()
268 *val = be32_to_cpup((const __be32 *)st->rx); ade7854_spi_read_reg_32()
271 mutex_unlock(&st->buf_lock); ade7854_spi_read_reg_32()
277 struct ade7854_state *st; ade7854_spi_probe() local
280 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ade7854_spi_probe()
283 st = iio_priv(indio_dev); ade7854_spi_probe()
285 st->read_reg_8 = ade7854_spi_read_reg_8; ade7854_spi_probe()
286 st->read_reg_16 = ade7854_spi_read_reg_16; ade7854_spi_probe()
287 st->read_reg_24 = ade7854_spi_read_reg_24; ade7854_spi_probe()
288 st->read_reg_32 = ade7854_spi_read_reg_32; ade7854_spi_probe()
289 st->write_reg_8 = ade7854_spi_write_reg_8; ade7854_spi_probe()
290 st->write_reg_16 = ade7854_spi_write_reg_16; ade7854_spi_probe()
291 st->write_reg_24 = ade7854_spi_write_reg_24; ade7854_spi_probe()
292 st->write_reg_32 = ade7854_spi_write_reg_32; ade7854_spi_probe()
293 st->irq = spi->irq; ade7854_spi_probe()
294 st->spi = spi; ade7854_spi_probe()
H A Dade7758_ring.c26 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_read_burst() local
29 ret = spi_sync(st->us, &st->ring_msg); ade7758_spi_read_burst()
31 dev_err(&st->us->dev, "problem when reading WFORM value\n"); ade7758_spi_read_burst()
64 struct ade7758_state *st = iio_priv(indio_dev); ade7758_trigger_handler() local
70 *dat32 = get_unaligned_be32(&st->rx_buf[5]) & 0xFFFFFF; ade7758_trigger_handler()
117 struct ade7758_state *st = iio_priv(indio_dev); ade7758_configure_ring() local
142 st->tx_buf[0] = ADE7758_READ_REG(ADE7758_RSTATUS); ade7758_configure_ring()
143 st->tx_buf[1] = 0; ade7758_configure_ring()
144 st->tx_buf[2] = 0; ade7758_configure_ring()
145 st->tx_buf[3] = 0; ade7758_configure_ring()
146 st->tx_buf[4] = ADE7758_READ_REG(ADE7758_WFORM); ade7758_configure_ring()
147 st->tx_buf[5] = 0; ade7758_configure_ring()
148 st->tx_buf[6] = 0; ade7758_configure_ring()
149 st->tx_buf[7] = 0; ade7758_configure_ring()
152 st->ring_xfer[0].tx_buf = &st->tx_buf[0]; ade7758_configure_ring()
153 st->ring_xfer[0].len = 1; ade7758_configure_ring()
154 st->ring_xfer[0].bits_per_word = 8; ade7758_configure_ring()
155 st->ring_xfer[0].delay_usecs = 4; ade7758_configure_ring()
156 st->ring_xfer[1].rx_buf = &st->rx_buf[1]; ade7758_configure_ring()
157 st->ring_xfer[1].len = 3; ade7758_configure_ring()
158 st->ring_xfer[1].bits_per_word = 8; ade7758_configure_ring()
159 st->ring_xfer[1].cs_change = 1; ade7758_configure_ring()
161 st->ring_xfer[2].tx_buf = &st->tx_buf[4]; ade7758_configure_ring()
162 st->ring_xfer[2].len = 1; ade7758_configure_ring()
163 st->ring_xfer[2].bits_per_word = 8; ade7758_configure_ring()
164 st->ring_xfer[2].delay_usecs = 1; ade7758_configure_ring()
165 st->ring_xfer[3].rx_buf = &st->rx_buf[5]; ade7758_configure_ring()
166 st->ring_xfer[3].len = 3; ade7758_configure_ring()
167 st->ring_xfer[3].bits_per_word = 8; ade7758_configure_ring()
169 spi_message_init(&st->ring_msg); ade7758_configure_ring()
170 spi_message_add_tail(&st->ring_xfer[0], &st->ring_msg); ade7758_configure_ring()
171 spi_message_add_tail(&st->ring_xfer[1], &st->ring_msg); ade7758_configure_ring()
172 spi_message_add_tail(&st->ring_xfer[2], &st->ring_msg); ade7758_configure_ring()
173 spi_message_add_tail(&st->ring_xfer[3], &st->ring_msg); ade7758_configure_ring()
H A Dade7758_trigger.c48 struct ade7758_state *st = iio_priv(indio_dev); ade7758_trig_try_reen() local
50 enable_irq(st->us->irq); ade7758_trig_try_reen()
63 struct ade7758_state *st = iio_priv(indio_dev); ade7758_probe_trigger() local
66 st->trig = iio_trigger_alloc("%s-dev%d", ade7758_probe_trigger()
67 spi_get_device_id(st->us)->name, ade7758_probe_trigger()
69 if (!st->trig) { ade7758_probe_trigger()
74 ret = request_irq(st->us->irq, ade7758_probe_trigger()
77 spi_get_device_id(st->us)->name, ade7758_probe_trigger()
78 st->trig); ade7758_probe_trigger()
82 st->trig->dev.parent = &st->us->dev; ade7758_probe_trigger()
83 st->trig->ops = &ade7758_trigger_ops; ade7758_probe_trigger()
84 iio_trigger_set_drvdata(st->trig, indio_dev); ade7758_probe_trigger()
85 ret = iio_trigger_register(st->trig); ade7758_probe_trigger()
88 indio_dev->trig = iio_trigger_get(st->trig); ade7758_probe_trigger()
95 free_irq(st->us->irq, st->trig); ade7758_probe_trigger()
97 iio_trigger_free(st->trig); ade7758_probe_trigger()
104 struct ade7758_state *st = iio_priv(indio_dev); ade7758_remove_trigger() local
106 iio_trigger_unregister(st->trig); ade7758_remove_trigger()
107 free_irq(st->us->irq, st->trig); ade7758_remove_trigger()
108 iio_trigger_free(st->trig); ade7758_remove_trigger()
H A Dade7758_core.c33 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_write_reg_8() local
35 mutex_lock(&st->buf_lock); ade7758_spi_write_reg_8()
36 st->tx[0] = ADE7758_WRITE_REG(reg_address); ade7758_spi_write_reg_8()
37 st->tx[1] = val; ade7758_spi_write_reg_8()
39 ret = spi_write(st->us, st->tx, 2); ade7758_spi_write_reg_8()
40 mutex_unlock(&st->buf_lock); ade7758_spi_write_reg_8()
51 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_write_reg_16() local
54 .tx_buf = st->tx, ade7758_spi_write_reg_16()
60 mutex_lock(&st->buf_lock); ade7758_spi_write_reg_16()
61 st->tx[0] = ADE7758_WRITE_REG(reg_address); ade7758_spi_write_reg_16()
62 st->tx[1] = (value >> 8) & 0xFF; ade7758_spi_write_reg_16()
63 st->tx[2] = value & 0xFF; ade7758_spi_write_reg_16()
65 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7758_spi_write_reg_16()
66 mutex_unlock(&st->buf_lock); ade7758_spi_write_reg_16()
77 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_write_reg_24() local
80 .tx_buf = st->tx, ade7758_spi_write_reg_24()
86 mutex_lock(&st->buf_lock); ade7758_spi_write_reg_24()
87 st->tx[0] = ADE7758_WRITE_REG(reg_address); ade7758_spi_write_reg_24()
88 st->tx[1] = (value >> 16) & 0xFF; ade7758_spi_write_reg_24()
89 st->tx[2] = (value >> 8) & 0xFF; ade7758_spi_write_reg_24()
90 st->tx[3] = value & 0xFF; ade7758_spi_write_reg_24()
92 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7758_spi_write_reg_24()
93 mutex_unlock(&st->buf_lock); ade7758_spi_write_reg_24()
103 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_read_reg_8() local
107 .tx_buf = st->tx, ade7758_spi_read_reg_8()
113 .tx_buf = &st->tx[1], ade7758_spi_read_reg_8()
114 .rx_buf = st->rx, ade7758_spi_read_reg_8()
120 mutex_lock(&st->buf_lock); ade7758_spi_read_reg_8()
121 st->tx[0] = ADE7758_READ_REG(reg_address); ade7758_spi_read_reg_8()
122 st->tx[1] = 0; ade7758_spi_read_reg_8()
124 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7758_spi_read_reg_8()
126 dev_err(&st->us->dev, "problem when reading 8 bit register 0x%02X", ade7758_spi_read_reg_8()
130 *val = st->rx[0]; ade7758_spi_read_reg_8()
133 mutex_unlock(&st->buf_lock); ade7758_spi_read_reg_8()
142 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_read_reg_16() local
146 .tx_buf = st->tx, ade7758_spi_read_reg_16()
152 .tx_buf = &st->tx[1], ade7758_spi_read_reg_16()
153 .rx_buf = st->rx, ade7758_spi_read_reg_16()
160 mutex_lock(&st->buf_lock); ade7758_spi_read_reg_16()
161 st->tx[0] = ADE7758_READ_REG(reg_address); ade7758_spi_read_reg_16()
162 st->tx[1] = 0; ade7758_spi_read_reg_16()
163 st->tx[2] = 0; ade7758_spi_read_reg_16()
165 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7758_spi_read_reg_16()
167 dev_err(&st->us->dev, "problem when reading 16 bit register 0x%02X", ade7758_spi_read_reg_16()
172 *val = (st->rx[0] << 8) | st->rx[1]; ade7758_spi_read_reg_16()
175 mutex_unlock(&st->buf_lock); ade7758_spi_read_reg_16()
184 struct ade7758_state *st = iio_priv(indio_dev); ade7758_spi_read_reg_24() local
188 .tx_buf = st->tx, ade7758_spi_read_reg_24()
194 .tx_buf = &st->tx[1], ade7758_spi_read_reg_24()
195 .rx_buf = st->rx, ade7758_spi_read_reg_24()
201 mutex_lock(&st->buf_lock); ade7758_spi_read_reg_24()
202 st->tx[0] = ADE7758_READ_REG(reg_address); ade7758_spi_read_reg_24()
203 st->tx[1] = 0; ade7758_spi_read_reg_24()
204 st->tx[2] = 0; ade7758_spi_read_reg_24()
205 st->tx[3] = 0; ade7758_spi_read_reg_24()
207 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7758_spi_read_reg_24()
209 dev_err(&st->us->dev, "problem when reading 24 bit register 0x%02X", ade7758_spi_read_reg_24()
213 *val = (st->rx[0] << 16) | (st->rx[1] << 8) | st->rx[2]; ade7758_spi_read_reg_24()
216 mutex_unlock(&st->buf_lock); ade7758_spi_read_reg_24()
462 struct ade7758_state *st = iio_priv(indio_dev); ade7758_initial_setup() local
467 st->us->mode = SPI_MODE_1; ade7758_initial_setup()
468 spi_setup(st->us); ade7758_initial_setup()
820 struct ade7758_state *st; ade7758_probe() local
823 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ade7758_probe()
827 st = iio_priv(indio_dev); ade7758_probe()
832 st->rx = kcalloc(ADE7758_MAX_RX, sizeof(*st->rx), GFP_KERNEL); ade7758_probe()
833 if (!st->rx) ade7758_probe()
835 st->tx = kcalloc(ADE7758_MAX_TX, sizeof(*st->tx), GFP_KERNEL); ade7758_probe()
836 if (!st->tx) { ade7758_probe()
840 st->us = spi; ade7758_probe()
841 mutex_init(&st->buf_lock); ade7758_probe()
877 kfree(st->tx); ade7758_probe()
879 kfree(st->rx); ade7758_probe()
886 struct ade7758_state *st = iio_priv(indio_dev); ade7758_remove() local
892 kfree(st->tx); ade7758_remove()
893 kfree(st->rx); ade7758_remove()
H A Dade7754.c32 struct ade7754_state *st = iio_priv(indio_dev); ade7754_spi_write_reg_8() local
34 mutex_lock(&st->buf_lock); ade7754_spi_write_reg_8()
35 st->tx[0] = ADE7754_WRITE_REG(reg_address); ade7754_spi_write_reg_8()
36 st->tx[1] = val; ade7754_spi_write_reg_8()
38 ret = spi_write(st->us, st->tx, 2); ade7754_spi_write_reg_8()
39 mutex_unlock(&st->buf_lock); ade7754_spi_write_reg_8()
50 struct ade7754_state *st = iio_priv(indio_dev); ade7754_spi_write_reg_16() local
52 mutex_lock(&st->buf_lock); ade7754_spi_write_reg_16()
53 st->tx[0] = ADE7754_WRITE_REG(reg_address); ade7754_spi_write_reg_16()
54 st->tx[1] = (value >> 8) & 0xFF; ade7754_spi_write_reg_16()
55 st->tx[2] = value & 0xFF; ade7754_spi_write_reg_16()
56 ret = spi_write(st->us, st->tx, 3); ade7754_spi_write_reg_16()
57 mutex_unlock(&st->buf_lock); ade7754_spi_write_reg_16()
67 struct ade7754_state *st = iio_priv(indio_dev); ade7754_spi_read_reg_8() local
70 ret = spi_w8r8(st->us, ADE7754_READ_REG(reg_address)); ade7754_spi_read_reg_8()
72 dev_err(&st->us->dev, "problem when reading 8 bit register 0x%02X", ade7754_spi_read_reg_8()
86 struct ade7754_state *st = iio_priv(indio_dev); ade7754_spi_read_reg_16() local
89 ret = spi_w8r16be(st->us, ADE7754_READ_REG(reg_address)); ade7754_spi_read_reg_16()
91 dev_err(&st->us->dev, "problem when reading 16 bit register 0x%02X", ade7754_spi_read_reg_16()
106 struct ade7754_state *st = iio_priv(indio_dev); ade7754_spi_read_reg_24() local
110 .tx_buf = st->tx, ade7754_spi_read_reg_24()
111 .rx_buf = st->rx, ade7754_spi_read_reg_24()
117 mutex_lock(&st->buf_lock); ade7754_spi_read_reg_24()
118 st->tx[0] = ADE7754_READ_REG(reg_address); ade7754_spi_read_reg_24()
119 st->tx[1] = 0; ade7754_spi_read_reg_24()
120 st->tx[2] = 0; ade7754_spi_read_reg_24()
121 st->tx[3] = 0; ade7754_spi_read_reg_24()
123 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7754_spi_read_reg_24()
125 dev_err(&st->us->dev, "problem when reading 24 bit register 0x%02X", ade7754_spi_read_reg_24()
129 *val = (st->rx[1] << 16) | (st->rx[2] << 8) | st->rx[3]; ade7754_spi_read_reg_24()
132 mutex_unlock(&st->buf_lock); ade7754_spi_read_reg_24()
386 struct ade7754_state *st = iio_priv(indio_dev); ade7754_initial_setup() local
390 st->us->mode = SPI_MODE_3; ade7754_initial_setup()
391 spi_setup(st->us); ade7754_initial_setup()
433 struct ade7754_state *st = iio_priv(indio_dev); ade7754_write_frequency() local
451 st->us->max_speed_hz = ADE7754_SPI_SLOW; ade7754_write_frequency()
453 st->us->max_speed_hz = ADE7754_SPI_FAST; ade7754_write_frequency()
531 struct ade7754_state *st; ade7754_probe() local
535 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ade7754_probe()
541 st = iio_priv(indio_dev); ade7754_probe()
542 st->us = spi; ade7754_probe()
543 mutex_init(&st->buf_lock); ade7754_probe()
H A Dade7759.c32 struct ade7759_state *st = iio_priv(indio_dev); ade7759_spi_write_reg_8() local
34 mutex_lock(&st->buf_lock); ade7759_spi_write_reg_8()
35 st->tx[0] = ADE7759_WRITE_REG(reg_address); ade7759_spi_write_reg_8()
36 st->tx[1] = val; ade7759_spi_write_reg_8()
38 ret = spi_write(st->us, st->tx, 2); ade7759_spi_write_reg_8()
39 mutex_unlock(&st->buf_lock); ade7759_spi_write_reg_8()
50 struct ade7759_state *st = iio_priv(indio_dev); ade7759_spi_write_reg_16() local
52 mutex_lock(&st->buf_lock); ade7759_spi_write_reg_16()
53 st->tx[0] = ADE7759_WRITE_REG(reg_address); ade7759_spi_write_reg_16()
54 st->tx[1] = (value >> 8) & 0xFF; ade7759_spi_write_reg_16()
55 st->tx[2] = value & 0xFF; ade7759_spi_write_reg_16()
56 ret = spi_write(st->us, st->tx, 3); ade7759_spi_write_reg_16()
57 mutex_unlock(&st->buf_lock); ade7759_spi_write_reg_16()
67 struct ade7759_state *st = iio_priv(indio_dev); ade7759_spi_read_reg_8() local
70 ret = spi_w8r8(st->us, ADE7759_READ_REG(reg_address)); ade7759_spi_read_reg_8()
72 dev_err(&st->us->dev, "problem when reading 8 bit register 0x%02X", ade7759_spi_read_reg_8()
86 struct ade7759_state *st = iio_priv(indio_dev); ade7759_spi_read_reg_16() local
89 ret = spi_w8r16be(st->us, ADE7759_READ_REG(reg_address)); ade7759_spi_read_reg_16()
91 dev_err(&st->us->dev, "problem when reading 16 bit register 0x%02X", ade7759_spi_read_reg_16()
106 struct ade7759_state *st = iio_priv(indio_dev); ade7759_spi_read_reg_40() local
110 .tx_buf = st->tx, ade7759_spi_read_reg_40()
111 .rx_buf = st->rx, ade7759_spi_read_reg_40()
117 mutex_lock(&st->buf_lock); ade7759_spi_read_reg_40()
118 st->tx[0] = ADE7759_READ_REG(reg_address); ade7759_spi_read_reg_40()
119 memset(&st->tx[1], 0, 5); ade7759_spi_read_reg_40()
121 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7759_spi_read_reg_40()
123 dev_err(&st->us->dev, "problem when reading 40 bit register 0x%02X", ade7759_spi_read_reg_40()
127 *val = ((u64)st->rx[1] << 32) | (st->rx[2] << 24) | ade7759_spi_read_reg_40()
128 (st->rx[3] << 16) | (st->rx[4] << 8) | st->rx[5]; ade7759_spi_read_reg_40()
131 mutex_unlock(&st->buf_lock); ade7759_spi_read_reg_40()
325 struct ade7759_state *st = iio_priv(indio_dev); ade7759_initial_setup() local
329 st->us->mode = SPI_MODE_3; ade7759_initial_setup()
330 spi_setup(st->us); ade7759_initial_setup()
372 struct ade7759_state *st = iio_priv(indio_dev); ade7759_write_frequency() local
390 st->us->max_speed_hz = ADE7759_SPI_SLOW; ade7759_write_frequency()
392 st->us->max_speed_hz = ADE7759_SPI_FAST; ade7759_write_frequency()
453 struct ade7759_state *st; ade7759_probe() local
457 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ade7759_probe()
463 st = iio_priv(indio_dev); ade7759_probe()
464 st->us = spi; ade7759_probe()
465 mutex_init(&st->buf_lock); ade7759_probe()
H A Dade7753.c32 struct ade7753_state *st = iio_priv(indio_dev); ade7753_spi_write_reg_8() local
34 mutex_lock(&st->buf_lock); ade7753_spi_write_reg_8()
35 st->tx[0] = ADE7753_WRITE_REG(reg_address); ade7753_spi_write_reg_8()
36 st->tx[1] = val; ade7753_spi_write_reg_8()
38 ret = spi_write(st->us, st->tx, 2); ade7753_spi_write_reg_8()
39 mutex_unlock(&st->buf_lock); ade7753_spi_write_reg_8()
50 struct ade7753_state *st = iio_priv(indio_dev); ade7753_spi_write_reg_16() local
52 mutex_lock(&st->buf_lock); ade7753_spi_write_reg_16()
53 st->tx[0] = ADE7753_WRITE_REG(reg_address); ade7753_spi_write_reg_16()
54 st->tx[1] = (value >> 8) & 0xFF; ade7753_spi_write_reg_16()
55 st->tx[2] = value & 0xFF; ade7753_spi_write_reg_16()
56 ret = spi_write(st->us, st->tx, 3); ade7753_spi_write_reg_16()
57 mutex_unlock(&st->buf_lock); ade7753_spi_write_reg_16()
67 struct ade7753_state *st = iio_priv(indio_dev); ade7753_spi_read_reg_8() local
70 ret = spi_w8r8(st->us, ADE7753_READ_REG(reg_address)); ade7753_spi_read_reg_8()
72 dev_err(&st->us->dev, "problem when reading 8 bit register 0x%02X", ade7753_spi_read_reg_8()
86 struct ade7753_state *st = iio_priv(indio_dev); ade7753_spi_read_reg_16() local
89 ret = spi_w8r16be(st->us, ADE7753_READ_REG(reg_address)); ade7753_spi_read_reg_16()
91 dev_err(&st->us->dev, "problem when reading 16 bit register 0x%02X", ade7753_spi_read_reg_16()
106 struct ade7753_state *st = iio_priv(indio_dev); ade7753_spi_read_reg_24() local
110 .tx_buf = st->tx, ade7753_spi_read_reg_24()
114 .rx_buf = st->tx, ade7753_spi_read_reg_24()
120 mutex_lock(&st->buf_lock); ade7753_spi_read_reg_24()
121 st->tx[0] = ADE7753_READ_REG(reg_address); ade7753_spi_read_reg_24()
123 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); ade7753_spi_read_reg_24()
125 dev_err(&st->us->dev, "problem when reading 24 bit register 0x%02X", ade7753_spi_read_reg_24()
129 *val = (st->rx[0] << 16) | (st->rx[1] << 8) | st->rx[2]; ade7753_spi_read_reg_24()
132 mutex_unlock(&st->buf_lock); ade7753_spi_read_reg_24()
357 struct ade7753_state *st = iio_priv(indio_dev); ade7753_initial_setup() local
360 st->us->mode = SPI_MODE_3; ade7753_initial_setup()
361 spi_setup(st->us); ade7753_initial_setup()
401 struct ade7753_state *st = iio_priv(indio_dev); ade7753_write_frequency() local
419 st->us->max_speed_hz = ADE7753_SPI_SLOW; ade7753_write_frequency()
421 st->us->max_speed_hz = ADE7753_SPI_FAST; ade7753_write_frequency()
496 struct ade7753_state *st; ade7753_probe() local
500 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ade7753_probe()
506 st = iio_priv(indio_dev); ade7753_probe()
507 st->us = spi; ade7753_probe()
508 mutex_init(&st->buf_lock); ade7753_probe()
H A Dade7854.c32 struct ade7854_state *st = iio_priv(indio_dev); ade7854_read_8bit() local
35 ret = st->read_reg_8(dev, this_attr->address, &val); ade7854_read_8bit()
49 struct ade7854_state *st = iio_priv(indio_dev); ade7854_read_16bit() local
52 ret = st->read_reg_16(dev, this_attr->address, &val); ade7854_read_16bit()
66 struct ade7854_state *st = iio_priv(indio_dev); ade7854_read_24bit() local
69 ret = st->read_reg_24(dev, this_attr->address, &val); ade7854_read_24bit()
84 struct ade7854_state *st = iio_priv(indio_dev); ade7854_read_32bit() local
86 ret = st->read_reg_32(dev, this_attr->address, &val); ade7854_read_32bit()
100 struct ade7854_state *st = iio_priv(indio_dev); ade7854_write_8bit() local
108 ret = st->write_reg_8(dev, this_attr->address, val); ade7854_write_8bit()
121 struct ade7854_state *st = iio_priv(indio_dev); ade7854_write_16bit() local
129 ret = st->write_reg_16(dev, this_attr->address, val); ade7854_write_16bit()
142 struct ade7854_state *st = iio_priv(indio_dev); ade7854_write_24bit() local
150 ret = st->write_reg_24(dev, this_attr->address, val); ade7854_write_24bit()
163 struct ade7854_state *st = iio_priv(indio_dev); ade7854_write_32bit() local
171 ret = st->write_reg_32(dev, this_attr->address, val); ade7854_write_32bit()
180 struct ade7854_state *st = iio_priv(indio_dev); ade7854_reset() local
183 st->read_reg_16(dev, ADE7854_CONFIG, &val); ade7854_reset()
186 return st->write_reg_16(dev, ADE7854_CONFIG, val); ade7854_reset()
413 struct ade7854_state *st = iio_priv(indio_dev); ade7854_set_irq() local
418 ret = st->read_reg_32(dev, ADE7854_MASK0, &irqen); ade7854_set_irq()
428 ret = st->write_reg_32(dev, ADE7854_MASK0, irqen); ade7854_set_irq()
543 struct ade7854_state *st = iio_priv(indio_dev); ade7854_probe() local
545 mutex_init(&st->buf_lock); ade7854_probe()
/linux-4.1.27/drivers/isdn/hisax/
H A Disdnl2.c148 freewin(struct PStack *st) freewin() argument
150 freewin1(&st->l2); freewin()
163 cansend(struct PStack *st) cansend() argument
167 if (test_bit(FLG_MOD128, &st->l2.flag)) cansend()
168 p1 = (st->l2.vs - st->l2.va) % 128; cansend()
170 p1 = (st->l2.vs - st->l2.va) % 8; cansend()
171 return ((p1 < st->l2.window) && !test_bit(FLG_PEER_BUSY, &st->l2.flag)); cansend()
218 enqueue_super(struct PStack *st, enqueue_super() argument
221 if (test_bit(FLG_LAPB, &st->l2.flag)) enqueue_super()
222 st->l1.bcs->tx_cnt += skb->len; enqueue_super()
223 st->l2.l2l1(st, PH_DATA | REQUEST, skb); enqueue_super()
253 IsSFrame(u_char *data, struct PStack *st) IsSFrame() argument
257 if (!test_bit(FLG_MOD128, &st->l2.flag)) IsSFrame()
263 IsSABME(u_char *data, struct PStack *st) IsSABME() argument
267 return (test_bit(FLG_MOD128, &st->l2.flag) ? d == SABME : d == SABM); IsSABME()
271 IsREJ(u_char *data, struct PStack *st) IsREJ() argument
273 return (test_bit(FLG_MOD128, &st->l2.flag) ? data[0] == REJ : (data[0] & 0xf) == REJ); IsREJ()
283 IsRNR(u_char *data, struct PStack *st) IsRNR() argument
285 return (test_bit(FLG_MOD128, &st->l2.flag) ? data[0] == RNR : (data[0] & 0xf) == RNR); IsRNR()
289 iframe_error(struct PStack *st, struct sk_buff *skb) iframe_error() argument
291 int i = l2addrsize(&st->l2) + (test_bit(FLG_MOD128, &st->l2.flag) ? 2 : 1); iframe_error()
294 if (test_bit(FLG_ORIG, &st->l2.flag)) iframe_error()
304 if ((skb->len - i) > st->l2.maxlen) iframe_error()
312 super_error(struct PStack *st, struct sk_buff *skb) super_error() argument
314 if (skb->len != l2addrsize(&st->l2) + super_error()
315 (test_bit(FLG_MOD128, &st->l2.flag) ? 2 : 1)) super_error()
322 unnum_error(struct PStack *st, struct sk_buff *skb, int wantrsp) unnum_error() argument
325 if (test_bit(FLG_ORIG, &st->l2.flag)) unnum_error()
331 if (skb->len != l2addrsize(&st->l2) + 1) unnum_error()
338 UI_error(struct PStack *st, struct sk_buff *skb) UI_error() argument
341 if (test_bit(FLG_ORIG, &st->l2.flag)) UI_error()
347 if (skb->len > st->l2.maxlen + l2addrsize(&st->l2) + 1) UI_error()
354 FRMR_error(struct PStack *st, struct sk_buff *skb) FRMR_error() argument
356 int headers = l2addrsize(&st->l2) + 1; FRMR_error()
360 if (test_bit(FLG_ORIG, &st->l2.flag)) FRMR_error()
366 if (test_bit(FLG_MOD128, &st->l2.flag)) { FRMR_error()
370 l2m_debug(&st->l2.l2m, "FRMR information %2x %2x %2x %2x %2x", FRMR_error()
377 l2m_debug(&st->l2.l2m, "FRMR information %2x %2x %2x", FRMR_error()
385 legalnr(struct PStack *st, unsigned int nr) legalnr() argument
387 struct Layer2 *l2 = &st->l2; legalnr()
396 setva(struct PStack *st, unsigned int nr) setva() argument
398 struct Layer2 *l2 = &st->l2; setva()
416 if (test_bit(FLG_LLI_L2WAKEUP, &st->lli.flag) && (len >= 0)) setva()
417 lli_writewakeup(st, len); setva()
424 send_uframe(struct PStack *st, u_char cmd, u_char cr) send_uframe() argument
430 i = sethdraddr(&st->l2, tmp, cr); send_uframe()
437 enqueue_super(st, skb); send_uframe()
441 get_PollFlag(struct PStack *st, struct sk_buff *skb) get_PollFlag() argument
443 return (skb->data[l2addrsize(&(st->l2))] & 0x10); get_PollFlag()
447 get_PollFlagFree(struct PStack *st, struct sk_buff *skb) get_PollFlagFree() argument
451 PF = get_PollFlag(st, skb); get_PollFlagFree()
457 start_t200(struct PStack *st, int i) start_t200() argument
459 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, i); start_t200()
460 test_and_set_bit(FLG_T200_RUN, &st->l2.flag); start_t200()
464 restart_t200(struct PStack *st, int i) restart_t200() argument
466 FsmRestartTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, i); restart_t200()
467 test_and_set_bit(FLG_T200_RUN, &st->l2.flag); restart_t200()
471 stop_t200(struct PStack *st, int i) stop_t200() argument
473 if (test_and_clear_bit(FLG_T200_RUN, &st->l2.flag)) stop_t200()
474 FsmDelTimer(&st->l2.t200, i); stop_t200()
478 st5_dl_release_l2l3(struct PStack *st) st5_dl_release_l2l3() argument
482 if (test_and_clear_bit(FLG_PEND_REL, &st->l2.flag)) st5_dl_release_l2l3()
487 st->l2.l2l3(st, pr, NULL); st5_dl_release_l2l3()
491 lapb_dl_release_l2l3(struct PStack *st, int f) lapb_dl_release_l2l3() argument
493 if (test_bit(FLG_LAPB, &st->l2.flag)) lapb_dl_release_l2l3()
494 st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL); lapb_dl_release_l2l3()
495 st->l2.l2l3(st, DL_RELEASE | f, NULL); lapb_dl_release_l2l3()
501 struct PStack *st = fi->userdata; establishlink() local
504 clear_exception(&st->l2); establishlink()
505 st->l2.rc = 0; establishlink()
506 cmd = (test_bit(FLG_MOD128, &st->l2.flag) ? SABME : SABM) | 0x10; establishlink()
507 send_uframe(st, cmd, CMD); establishlink()
508 FsmDelTimer(&st->l2.t203, 1); establishlink()
509 restart_t200(st, 1); establishlink()
510 test_and_clear_bit(FLG_PEND_REL, &st->l2.flag); establishlink()
511 freewin(st); establishlink()
519 struct PStack *st = fi->userdata; l2_mdl_error_ua() local
521 if (get_PollFlagFree(st, skb)) l2_mdl_error_ua()
522 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'C'); l2_mdl_error_ua()
524 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'D'); l2_mdl_error_ua()
531 struct PStack *st = fi->userdata; l2_mdl_error_dm() local
533 if (get_PollFlagFree(st, skb)) l2_mdl_error_dm()
534 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'B'); l2_mdl_error_dm()
536 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'E'); l2_mdl_error_dm()
538 test_and_clear_bit(FLG_L3_INIT, &st->l2.flag); l2_mdl_error_dm()
546 struct PStack *st = fi->userdata; l2_st8_mdl_error_dm() local
548 if (get_PollFlagFree(st, skb)) l2_st8_mdl_error_dm()
549 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'B'); l2_st8_mdl_error_dm()
551 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'E'); l2_st8_mdl_error_dm()
554 test_and_clear_bit(FLG_L3_INIT, &st->l2.flag); l2_st8_mdl_error_dm()
566 struct PStack *st = fi->userdata; l2_mdl_assign() local
569 st->l2.l2tei(st, MDL_ASSIGN | INDICATION, NULL); l2_mdl_assign()
575 struct PStack *st = fi->userdata; l2_queue_ui_assign() local
578 skb_queue_tail(&st->l2.ui_queue, skb); l2_queue_ui_assign()
580 st->l2.l2tei(st, MDL_ASSIGN | INDICATION, NULL); l2_queue_ui_assign()
586 struct PStack *st = fi->userdata; l2_queue_ui() local
589 skb_queue_tail(&st->l2.ui_queue, skb); l2_queue_ui()
593 tx_ui(struct PStack *st) tx_ui() argument
599 i = sethdraddr(&(st->l2), header, CMD); tx_ui()
601 while ((skb = skb_dequeue(&st->l2.ui_queue))) { tx_ui()
603 enqueue_ui(st, skb); tx_ui()
610 struct PStack *st = fi->userdata; l2_send_ui() local
613 skb_queue_tail(&st->l2.ui_queue, skb); l2_send_ui()
614 tx_ui(st); l2_send_ui()
620 struct PStack *st = fi->userdata; l2_got_ui() local
623 skb_pull(skb, l2headersize(&st->l2, 1)); l2_got_ui()
624 st->l2.l2l3(st, DL_UNIT_DATA | INDICATION, skb); l2_got_ui()
635 struct PStack *st = fi->userdata; l2_establish() local
638 test_and_set_bit(FLG_L3_INIT, &st->l2.flag); l2_establish()
644 struct PStack *st = fi->userdata; l2_discard_i_setl3() local
646 skb_queue_purge(&st->l2.i_queue); l2_discard_i_setl3()
647 test_and_set_bit(FLG_L3_INIT, &st->l2.flag); l2_discard_i_setl3()
648 test_and_clear_bit(FLG_PEND_REL, &st->l2.flag); l2_discard_i_setl3()
654 struct PStack *st = fi->userdata; l2_l3_reestablish() local
656 skb_queue_purge(&st->l2.i_queue); l2_l3_reestablish()
658 test_and_set_bit(FLG_L3_INIT, &st->l2.flag); l2_l3_reestablish()
664 struct PStack *st = fi->userdata; l2_release() local
666 st->l2.l2l3(st, DL_RELEASE | CONFIRM, NULL); l2_release()
672 struct PStack *st = fi->userdata; l2_pend_rel() local
674 test_and_set_bit(FLG_PEND_REL, &st->l2.flag); l2_pend_rel()
680 struct PStack *st = fi->userdata; l2_disconnect() local
682 skb_queue_purge(&st->l2.i_queue); l2_disconnect()
683 freewin(st); l2_disconnect()
685 st->l2.rc = 0; l2_disconnect()
686 send_uframe(st, DISC | 0x10, CMD); l2_disconnect()
687 FsmDelTimer(&st->l2.t203, 1); l2_disconnect()
688 restart_t200(st, 2); l2_disconnect()
694 struct PStack *st = fi->userdata; l2_start_multi() local
697 send_uframe(st, UA | get_PollFlagFree(st, skb), RSP); l2_start_multi()
699 clear_exception(&st->l2); l2_start_multi()
700 st->l2.vs = 0; l2_start_multi()
701 st->l2.va = 0; l2_start_multi()
702 st->l2.vr = 0; l2_start_multi()
703 st->l2.sow = 0; l2_start_multi()
705 FsmAddTimer(&st->l2.t203, st->l2.T203, EV_L2_T203, NULL, 3); l2_start_multi()
707 st->l2.l2l3(st, DL_ESTABLISH | INDICATION, NULL); l2_start_multi()
713 struct PStack *st = fi->userdata; l2_send_UA() local
716 send_uframe(st, UA | get_PollFlagFree(st, skb), RSP); l2_send_UA()
722 struct PStack *st = fi->userdata; l2_send_DM() local
725 send_uframe(st, DM | get_PollFlagFree(st, skb), RSP); l2_send_DM()
731 struct PStack *st = fi->userdata; l2_restart_multi() local
737 send_uframe(st, UA | get_PollFlagFree(st, skb), RSP); l2_restart_multi()
739 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'F'); l2_restart_multi()
741 if (st->l2.vs != st->l2.va) { l2_restart_multi()
742 skb_queue_purge(&st->l2.i_queue); l2_restart_multi()
746 clear_exception(&st->l2); l2_restart_multi()
747 st->l2.vs = 0; l2_restart_multi()
748 st->l2.va = 0; l2_restart_multi()
749 st->l2.vr = 0; l2_restart_multi()
750 st->l2.sow = 0; l2_restart_multi()
752 stop_t200(st, 3); l2_restart_multi()
753 FsmRestartTimer(&st->l2.t203, st->l2.T203, EV_L2_T203, NULL, 3); l2_restart_multi()
756 st->l2.l2l3(st, DL_ESTABLISH | INDICATION, NULL); l2_restart_multi()
759 if (!skb_queue_empty(&st->l2.i_queue) && cansend(st)) l2_restart_multi()
760 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_restart_multi()
766 struct PStack *st = fi->userdata; l2_stop_multi() local
770 FsmDelTimer(&st->l2.t203, 3); l2_stop_multi()
771 stop_t200(st, 4); l2_stop_multi()
773 send_uframe(st, UA | get_PollFlagFree(st, skb), RSP); l2_stop_multi()
775 skb_queue_purge(&st->l2.i_queue); l2_stop_multi()
776 freewin(st); l2_stop_multi()
777 lapb_dl_release_l2l3(st, INDICATION); l2_stop_multi()
783 struct PStack *st = fi->userdata; l2_connected() local
787 if (!get_PollFlag(st, skb)) { l2_connected()
793 if (test_and_clear_bit(FLG_PEND_REL, &st->l2.flag)) l2_connected()
796 if (test_and_clear_bit(FLG_L3_INIT, &st->l2.flag)) { l2_connected()
798 } else if (st->l2.vs != st->l2.va) { l2_connected()
799 skb_queue_purge(&st->l2.i_queue); l2_connected()
803 stop_t200(st, 5); l2_connected()
805 st->l2.vr = 0; l2_connected()
806 st->l2.vs = 0; l2_connected()
807 st->l2.va = 0; l2_connected()
808 st->l2.sow = 0; l2_connected()
810 FsmAddTimer(&st->l2.t203, st->l2.T203, EV_L2_T203, NULL, 4); l2_connected()
813 st->l2.l2l3(st, pr, NULL); l2_connected()
815 if (!skb_queue_empty(&st->l2.i_queue) && cansend(st)) l2_connected()
816 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_connected()
822 struct PStack *st = fi->userdata; l2_released() local
825 if (!get_PollFlag(st, skb)) { l2_released()
831 stop_t200(st, 6); l2_released()
832 lapb_dl_release_l2l3(st, CONFIRM); l2_released()
839 struct PStack *st = fi->userdata; l2_reestablish() local
842 if (!get_PollFlagFree(st, skb)) { l2_reestablish()
844 test_and_set_bit(FLG_L3_INIT, &st->l2.flag); l2_reestablish()
851 struct PStack *st = fi->userdata; l2_st5_dm_release() local
854 if (get_PollFlagFree(st, skb)) { l2_st5_dm_release()
855 stop_t200(st, 7); l2_st5_dm_release()
856 if (!test_bit(FLG_L3_INIT, &st->l2.flag)) l2_st5_dm_release()
857 skb_queue_purge(&st->l2.i_queue); l2_st5_dm_release()
858 if (test_bit(FLG_LAPB, &st->l2.flag)) l2_st5_dm_release()
859 st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL); l2_st5_dm_release()
860 st5_dl_release_l2l3(st); l2_st5_dm_release()
868 struct PStack *st = fi->userdata; l2_st6_dm_release() local
871 if (get_PollFlagFree(st, skb)) { l2_st6_dm_release()
872 stop_t200(st, 8); l2_st6_dm_release()
873 lapb_dl_release_l2l3(st, CONFIRM); l2_st6_dm_release()
879 enquiry_cr(struct PStack *st, u_char typ, u_char cr, u_char pf) enquiry_cr() argument
886 l2 = &st->l2; enquiry_cr()
898 enqueue_super(st, skb); enquiry_cr()
902 enquiry_response(struct PStack *st) enquiry_response() argument
904 if (test_bit(FLG_OWN_BUSY, &st->l2.flag)) enquiry_response()
905 enquiry_cr(st, RNR, RSP, 1); enquiry_response()
907 enquiry_cr(st, RR, RSP, 1); enquiry_response()
908 test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag); enquiry_response()
912 transmit_enquiry(struct PStack *st) transmit_enquiry() argument
914 if (test_bit(FLG_OWN_BUSY, &st->l2.flag)) transmit_enquiry()
915 enquiry_cr(st, RNR, CMD, 1); transmit_enquiry()
917 enquiry_cr(st, RR, CMD, 1); transmit_enquiry()
918 test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag); transmit_enquiry()
919 start_t200(st, 9); transmit_enquiry()
926 struct PStack *st = fi->userdata; nrerrorrecovery() local
928 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'J'); nrerrorrecovery()
930 test_and_clear_bit(FLG_L3_INIT, &st->l2.flag); nrerrorrecovery()
934 invoke_retransmission(struct PStack *st, unsigned int nr) invoke_retransmission() argument
936 struct Layer2 *l2 = &st->l2; invoke_retransmission()
953 st->l1.bcs->tx_cnt += l2->windowar[p1]->len + l2headersize(l2, 0); invoke_retransmission()
958 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); invoke_retransmission()
967 struct PStack *st = fi->userdata; l2_st7_got_super() local
971 struct Layer2 *l2 = &st->l2; l2_st7_got_super()
978 if (IsRNR(skb->data, st)) { l2_st7_got_super()
983 if (IsREJ(skb->data, st)) l2_st7_got_super()
997 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'A'); l2_st7_got_super()
999 enquiry_response(st); l2_st7_got_super()
1001 if (legalnr(st, nr)) { l2_st7_got_super()
1003 setva(st, nr); l2_st7_got_super()
1004 invoke_retransmission(st, nr); l2_st7_got_super()
1005 stop_t200(st, 10); l2_st7_got_super()
1006 if (FsmAddTimer(&st->l2.t203, st->l2.T203, l2_st7_got_super()
1008 l2m_debug(&st->l2.l2m, "Restart T203 ST7 REJ"); l2_st7_got_super()
1010 setva(st, nr); l2_st7_got_super()
1011 stop_t200(st, 11); l2_st7_got_super()
1012 FsmRestartTimer(&st->l2.t203, st->l2.T203, l2_st7_got_super()
1015 setva(st, nr); l2_st7_got_super()
1016 if (typ != RR) FsmDelTimer(&st->l2.t203, 9); l2_st7_got_super()
1017 restart_t200(st, 12); l2_st7_got_super()
1019 if (!skb_queue_empty(&st->l2.i_queue) && (typ == RR)) l2_st7_got_super()
1020 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_st7_got_super()
1028 struct PStack *st = fi->userdata; l2_feed_i_if_reest() local
1031 if (test_bit(FLG_LAPB, &st->l2.flag)) l2_feed_i_if_reest()
1032 st->l1.bcs->tx_cnt += skb->len + l2headersize(&st->l2, 0); l2_feed_i_if_reest()
1033 if (!test_bit(FLG_L3_INIT, &st->l2.flag)) l2_feed_i_if_reest()
1034 skb_queue_tail(&st->l2.i_queue, skb); l2_feed_i_if_reest()
1042 struct PStack *st = fi->userdata; l2_feed_i_pull() local
1045 if (test_bit(FLG_LAPB, &st->l2.flag)) l2_feed_i_pull()
1046 st->l1.bcs->tx_cnt += skb->len + l2headersize(&st->l2, 0); l2_feed_i_pull()
1047 skb_queue_tail(&st->l2.i_queue, skb); l2_feed_i_pull()
1048 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_feed_i_pull()
1054 struct PStack *st = fi->userdata; l2_feed_iqueue() local
1057 if (test_bit(FLG_LAPB, &st->l2.flag)) l2_feed_iqueue()
1058 st->l1.bcs->tx_cnt += skb->len + l2headersize(&st->l2, 0); l2_feed_iqueue()
1059 skb_queue_tail(&st->l2.i_queue, skb); l2_feed_iqueue()
1065 struct PStack *st = fi->userdata; l2_got_iframe() local
1067 struct Layer2 *l2 = &(st->l2); l2_got_iframe()
1083 if (PollFlag) enquiry_response(st); l2_got_iframe()
1093 enquiry_response(st); l2_got_iframe()
1097 st->l2.l2l3(st, DL_DATA | INDICATION, skb); l2_got_iframe()
1103 enquiry_response(st); l2_got_iframe()
1105 enquiry_cr(st, REJ, RSP, PollFlag); l2_got_iframe()
1110 if (legalnr(st, nr)) { l2_got_iframe()
1111 if (!test_bit(FLG_PEER_BUSY, &st->l2.flag) && (fi->state == ST_L2_7)) { l2_got_iframe()
1112 if (nr == st->l2.vs) { l2_got_iframe()
1113 stop_t200(st, 13); l2_got_iframe()
1114 FsmRestartTimer(&st->l2.t203, st->l2.T203, l2_got_iframe()
1116 } else if (nr != st->l2.va) l2_got_iframe()
1117 restart_t200(st, 14); l2_got_iframe()
1119 setva(st, nr); l2_got_iframe()
1125 if (!skb_queue_empty(&st->l2.i_queue) && (fi->state == ST_L2_7)) l2_got_iframe()
1126 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_got_iframe()
1127 if (test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag)) l2_got_iframe()
1128 enquiry_cr(st, RR, RSP, 0); l2_got_iframe()
1134 struct PStack *st = fi->userdata; l2_got_tei() local
1136 st->l2.tei = (long) arg; l2_got_tei()
1140 test_and_set_bit(FLG_L3_INIT, &st->l2.flag); l2_got_tei()
1143 if (!skb_queue_empty(&st->l2.ui_queue)) l2_got_tei()
1144 tx_ui(st); l2_got_tei()
1150 struct PStack *st = fi->userdata; l2_st5_tout_200() local
1152 if (test_bit(FLG_LAPD, &st->l2.flag) && l2_st5_tout_200()
1153 test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) { l2_st5_tout_200()
1154 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9); l2_st5_tout_200()
1155 } else if (st->l2.rc == st->l2.N200) { l2_st5_tout_200()
1157 test_and_clear_bit(FLG_T200_RUN, &st->l2.flag); l2_st5_tout_200()
1158 skb_queue_purge(&st->l2.i_queue); l2_st5_tout_200()
1159 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'G'); l2_st5_tout_200()
1160 if (test_bit(FLG_LAPB, &st->l2.flag)) l2_st5_tout_200()
1161 st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL); l2_st5_tout_200()
1162 st5_dl_release_l2l3(st); l2_st5_tout_200()
1164 st->l2.rc++; l2_st5_tout_200()
1165 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9); l2_st5_tout_200()
1166 send_uframe(st, (test_bit(FLG_MOD128, &st->l2.flag) ? SABME : SABM) l2_st5_tout_200()
1174 struct PStack *st = fi->userdata; l2_st6_tout_200() local
1176 if (test_bit(FLG_LAPD, &st->l2.flag) && l2_st6_tout_200()
1177 test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) { l2_st6_tout_200()
1178 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9); l2_st6_tout_200()
1179 } else if (st->l2.rc == st->l2.N200) { l2_st6_tout_200()
1181 test_and_clear_bit(FLG_T200_RUN, &st->l2.flag); l2_st6_tout_200()
1182 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'H'); l2_st6_tout_200()
1183 lapb_dl_release_l2l3(st, CONFIRM); l2_st6_tout_200()
1185 st->l2.rc++; l2_st6_tout_200()
1186 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, l2_st6_tout_200()
1188 send_uframe(st, DISC | 0x10, CMD); l2_st6_tout_200()
1195 struct PStack *st = fi->userdata; l2_st7_tout_200() local
1197 if (test_bit(FLG_LAPD, &st->l2.flag) && l2_st7_tout_200()
1198 test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) { l2_st7_tout_200()
1199 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9); l2_st7_tout_200()
1202 test_and_clear_bit(FLG_T200_RUN, &st->l2.flag); l2_st7_tout_200()
1203 st->l2.rc = 0; l2_st7_tout_200()
1206 transmit_enquiry(st); l2_st7_tout_200()
1207 st->l2.rc++; l2_st7_tout_200()
1213 struct PStack *st = fi->userdata; l2_st8_tout_200() local
1215 if (test_bit(FLG_LAPD, &st->l2.flag) && l2_st8_tout_200()
1216 test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) { l2_st8_tout_200()
1217 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 9); l2_st8_tout_200()
1220 test_and_clear_bit(FLG_T200_RUN, &st->l2.flag); l2_st8_tout_200()
1221 if (st->l2.rc == st->l2.N200) { l2_st8_tout_200()
1222 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'I'); l2_st8_tout_200()
1224 test_and_clear_bit(FLG_L3_INIT, &st->l2.flag); l2_st8_tout_200()
1226 transmit_enquiry(st); l2_st8_tout_200()
1227 st->l2.rc++; l2_st8_tout_200()
1234 struct PStack *st = fi->userdata; l2_st7_tout_203() local
1236 if (test_bit(FLG_LAPD, &st->l2.flag) && l2_st7_tout_203()
1237 test_bit(FLG_DCHAN_BUSY, &st->l2.flag)) { l2_st7_tout_203()
1238 FsmAddTimer(&st->l2.t203, st->l2.T203, EV_L2_T203, NULL, 9); l2_st7_tout_203()
1242 transmit_enquiry(st); l2_st7_tout_203()
1243 st->l2.rc = 0; l2_st7_tout_203()
1249 struct PStack *st = fi->userdata; l2_pull_iqueue() local
1251 struct Layer2 *l2 = &st->l2; l2_pull_iqueue()
1257 if (!cansend(st)) l2_pull_iqueue()
1287 i = sethdraddr(&st->l2, header, CMD); l2_pull_iqueue()
1299 st->l2.l2l1(st, PH_PULL | INDICATION, skb); l2_pull_iqueue()
1300 test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag); l2_pull_iqueue()
1301 if (!test_and_set_bit(FLG_T200_RUN, &st->l2.flag)) { l2_pull_iqueue()
1302 FsmDelTimer(&st->l2.t203, 13); l2_pull_iqueue()
1303 FsmAddTimer(&st->l2.t200, st->l2.T200, EV_L2_T200, NULL, 11); l2_pull_iqueue()
1305 if (!skb_queue_empty(&l2->i_queue) && cansend(st)) l2_pull_iqueue()
1306 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_pull_iqueue()
1312 struct PStack *st = fi->userdata; l2_st8_got_super() local
1316 struct Layer2 *l2 = &st->l2; l2_st8_got_super()
1324 if (IsRNR(skb->data, st)) { l2_st8_got_super()
1340 if (legalnr(st, nr)) { l2_st8_got_super()
1342 restart_t200(st, 15); l2_st8_got_super()
1344 stop_t200(st, 16); l2_st8_got_super()
1347 setva(st, nr); l2_st8_got_super()
1349 invoke_retransmission(st, nr); l2_st8_got_super()
1351 if (!skb_queue_empty(&l2->i_queue) && cansend(st)) l2_st8_got_super()
1352 st->l2.l2l1(st, PH_PULL | REQUEST, NULL); l2_st8_got_super()
1357 enquiry_response(st); l2_st8_got_super()
1358 if (legalnr(st, nr)) { l2_st8_got_super()
1359 setva(st, nr); l2_st8_got_super()
1368 struct PStack *st = fi->userdata; l2_got_FRMR() local
1371 skb_pull(skb, l2addrsize(&st->l2) + 1); l2_got_FRMR()
1375 st->ma.layer(st, MDL_ERROR | INDICATION, (void *) 'K'); l2_got_FRMR()
1377 test_and_clear_bit(FLG_L3_INIT, &st->l2.flag); l2_got_FRMR()
1385 struct PStack *st = fi->userdata; l2_st24_tei_remove() local
1387 skb_queue_purge(&st->l2.ui_queue); l2_st24_tei_remove()
1388 st->l2.tei = -1; l2_st24_tei_remove()
1395 struct PStack *st = fi->userdata; l2_st3_tei_remove() local
1397 skb_queue_purge(&st->l2.ui_queue); l2_st3_tei_remove()
1398 st->l2.tei = -1; l2_st3_tei_remove()
1399 st->l2.l2l3(st, DL_RELEASE | INDICATION, NULL); l2_st3_tei_remove()
1406 struct PStack *st = fi->userdata; l2_st5_tei_remove() local
1408 skb_queue_purge(&st->l2.i_queue); l2_st5_tei_remove()
1409 skb_queue_purge(&st->l2.ui_queue); l2_st5_tei_remove()
1410 freewin(st); l2_st5_tei_remove()
1411 st->l2.tei = -1; l2_st5_tei_remove()
1412 stop_t200(st, 17); l2_st5_tei_remove()
1413 st5_dl_release_l2l3(st); l2_st5_tei_remove()
1420 struct PStack *st = fi->userdata; l2_st6_tei_remove() local
1422 skb_queue_purge(&st->l2.ui_queue); l2_st6_tei_remove()
1423 st->l2.tei = -1; l2_st6_tei_remove()
1424 stop_t200(st, 18); l2_st6_tei_remove()
1425 st->l2.l2l3(st, DL_RELEASE | CONFIRM, NULL); l2_st6_tei_remove()
1432 struct PStack *st = fi->userdata; l2_tei_remove() local
1434 skb_queue_purge(&st->l2.i_queue); l2_tei_remove()
1435 skb_queue_purge(&st->l2.ui_queue); l2_tei_remove()
1436 freewin(st); l2_tei_remove()
1437 st->l2.tei = -1; l2_tei_remove()
1438 stop_t200(st, 17); l2_tei_remove()
1439 FsmDelTimer(&st->l2.t203, 19); l2_tei_remove()
1440 st->l2.l2l3(st, DL_RELEASE | INDICATION, NULL); l2_tei_remove()
1447 struct PStack *st = fi->userdata; l2_st14_persistent_da() local
1449 skb_queue_purge(&st->l2.i_queue); l2_st14_persistent_da()
1450 skb_queue_purge(&st->l2.ui_queue); l2_st14_persistent_da()
1451 if (test_and_clear_bit(FLG_ESTAB_PEND, &st->l2.flag)) l2_st14_persistent_da()
1452 st->l2.l2l3(st, DL_RELEASE | INDICATION, NULL); l2_st14_persistent_da()
1458 struct PStack *st = fi->userdata; l2_st5_persistent_da() local
1460 skb_queue_purge(&st->l2.i_queue); l2_st5_persistent_da()
1461 skb_queue_purge(&st->l2.ui_queue); l2_st5_persistent_da()
1462 freewin(st); l2_st5_persistent_da()
1463 stop_t200(st, 19); l2_st5_persistent_da()
1464 st5_dl_release_l2l3(st); l2_st5_persistent_da()
1471 struct PStack *st = fi->userdata; l2_st6_persistent_da() local
1473 skb_queue_purge(&st->l2.ui_queue); l2_st6_persistent_da()
1474 stop_t200(st, 20); l2_st6_persistent_da()
1475 st->l2.l2l3(st, DL_RELEASE | CONFIRM, NULL); l2_st6_persistent_da()
1482 struct PStack *st = fi->userdata; l2_persistent_da() local
1484 skb_queue_purge(&st->l2.i_queue); l2_persistent_da()
1485 skb_queue_purge(&st->l2.ui_queue); l2_persistent_da()
1486 freewin(st); l2_persistent_da()
1487 stop_t200(st, 19); l2_persistent_da()
1488 FsmDelTimer(&st->l2.t203, 19); l2_persistent_da()
1489 st->l2.l2l3(st, DL_RELEASE | INDICATION, NULL); l2_persistent_da()
1496 struct PStack *st = fi->userdata; l2_set_own_busy() local
1498 if (!test_and_set_bit(FLG_OWN_BUSY, &st->l2.flag)) { l2_set_own_busy()
1499 enquiry_cr(st, RNR, RSP, 0); l2_set_own_busy()
1500 test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag); l2_set_own_busy()
1507 struct PStack *st = fi->userdata; l2_clear_own_busy() local
1509 if (!test_and_clear_bit(FLG_OWN_BUSY, &st->l2.flag)) { l2_clear_own_busy()
1510 enquiry_cr(st, RR, RSP, 0); l2_clear_own_busy()
1511 test_and_clear_bit(FLG_ACK_PEND, &st->l2.flag); l2_clear_own_busy()
1518 struct PStack *st = fi->userdata; l2_frame_error() local
1520 st->ma.layer(st, MDL_ERROR | INDICATION, arg); l2_frame_error()
1526 struct PStack *st = fi->userdata; l2_frame_error_reest() local
1528 st->ma.layer(st, MDL_ERROR | INDICATION, arg); l2_frame_error_reest()
1530 test_and_clear_bit(FLG_L3_INIT, &st->l2.flag); l2_frame_error_reest()
1626 isdnl2_l1l2(struct PStack *st, int pr, void *arg) isdnl2_l1l2() argument
1636 len = l2addrsize(&st->l2); isdnl2_l1l2()
1640 FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *) 'N'); isdnl2_l1l2()
1645 if (!(c = iframe_error(st, skb))) isdnl2_l1l2()
1646 ret = FsmEvent(&st->l2.l2m, EV_L2_I, skb); isdnl2_l1l2()
1647 } else if (IsSFrame(datap, st)) { /* S-Frame */ isdnl2_l1l2()
1648 if (!(c = super_error(st, skb))) isdnl2_l1l2()
1649 ret = FsmEvent(&st->l2.l2m, EV_L2_SUPER, skb); isdnl2_l1l2()
1651 if (!(c = UI_error(st, skb))) isdnl2_l1l2()
1652 ret = FsmEvent(&st->l2.l2m, EV_L2_UI, skb); isdnl2_l1l2()
1653 } else if (IsSABME(datap, st)) { isdnl2_l1l2()
1654 if (!(c = unnum_error(st, skb, CMD))) isdnl2_l1l2()
1655 ret = FsmEvent(&st->l2.l2m, EV_L2_SABME, skb); isdnl2_l1l2()
1657 if (!(c = unnum_error(st, skb, RSP))) isdnl2_l1l2()
1658 ret = FsmEvent(&st->l2.l2m, EV_L2_UA, skb); isdnl2_l1l2()
1660 if (!(c = unnum_error(st, skb, CMD))) isdnl2_l1l2()
1661 ret = FsmEvent(&st->l2.l2m, EV_L2_DISC, skb); isdnl2_l1l2()
1663 if (!(c = unnum_error(st, skb, RSP))) isdnl2_l1l2()
1664 ret = FsmEvent(&st->l2.l2m, EV_L2_DM, skb); isdnl2_l1l2()
1666 if (!(c = FRMR_error(st, skb))) isdnl2_l1l2()
1667 ret = FsmEvent(&st->l2.l2m, EV_L2_FRMR, skb); isdnl2_l1l2()
1669 FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *) 'L'); isdnl2_l1l2()
1675 FsmEvent(&st->l2.l2m, EV_L2_FRAME_ERROR, (void *)(long)c); isdnl2_l1l2()
1682 FsmEvent(&st->l2.l2m, EV_L2_ACK_PULL, arg); isdnl2_l1l2()
1685 test_and_set_bit(FLG_DCHAN_BUSY, &st->l2.flag); isdnl2_l1l2()
1688 test_and_clear_bit(FLG_DCHAN_BUSY, &st->l2.flag); isdnl2_l1l2()
1692 test_and_set_bit(FLG_L1_ACTIV, &st->l2.flag); isdnl2_l1l2()
1693 if (test_and_clear_bit(FLG_ESTAB_PEND, &st->l2.flag)) isdnl2_l1l2()
1694 FsmEvent(&st->l2.l2m, EV_L2_DL_ESTABLISH_REQ, arg); isdnl2_l1l2()
1698 test_and_clear_bit(FLG_L1_ACTIV, &st->l2.flag); isdnl2_l1l2()
1699 FsmEvent(&st->l2.l2m, EV_L1_DEACTIVATE, arg); isdnl2_l1l2()
1702 l2m_debug(&st->l2.l2m, "l2 unknown pr %04x", pr); isdnl2_l1l2()
1708 isdnl2_l3l2(struct PStack *st, int pr, void *arg) isdnl2_l3l2() argument
1712 if (FsmEvent(&st->l2.l2m, EV_L2_DL_DATA, arg)) { isdnl2_l3l2()
1717 if (FsmEvent(&st->l2.l2m, EV_L2_DL_UNIT_DATA, arg)) { isdnl2_l3l2()
1722 if (test_bit(FLG_L1_ACTIV, &st->l2.flag)) { isdnl2_l3l2()
1723 if (test_bit(FLG_LAPD, &st->l2.flag) || isdnl2_l3l2()
1724 test_bit(FLG_ORIG, &st->l2.flag)) { isdnl2_l3l2()
1725 FsmEvent(&st->l2.l2m, EV_L2_DL_ESTABLISH_REQ, arg); isdnl2_l3l2()
1728 if (test_bit(FLG_LAPD, &st->l2.flag) || isdnl2_l3l2()
1729 test_bit(FLG_ORIG, &st->l2.flag)) { isdnl2_l3l2()
1730 test_and_set_bit(FLG_ESTAB_PEND, &st->l2.flag); isdnl2_l3l2()
1732 st->l2.l2l1(st, PH_ACTIVATE, NULL); isdnl2_l3l2()
1736 if (test_bit(FLG_LAPB, &st->l2.flag)) { isdnl2_l3l2()
1737 st->l2.l2l1(st, PH_DEACTIVATE, NULL); isdnl2_l3l2()
1739 FsmEvent(&st->l2.l2m, EV_L2_DL_RELEASE_REQ, arg); isdnl2_l3l2()
1742 FsmEvent(&st->l2.l2m, EV_L2_MDL_ASSIGN, arg); isdnl2_l3l2()
1745 FsmEvent(&st->l2.l2m, EV_L2_MDL_REMOVE, arg); isdnl2_l3l2()
1748 FsmEvent(&st->l2.l2m, EV_L2_MDL_ERROR, arg); isdnl2_l3l2()
1754 releasestack_isdnl2(struct PStack *st) releasestack_isdnl2() argument
1756 FsmDelTimer(&st->l2.t200, 21); releasestack_isdnl2()
1757 FsmDelTimer(&st->l2.t203, 16); releasestack_isdnl2()
1758 skb_queue_purge(&st->l2.i_queue); releasestack_isdnl2()
1759 skb_queue_purge(&st->l2.ui_queue); releasestack_isdnl2()
1760 ReleaseWin(&st->l2); releasestack_isdnl2()
1767 struct PStack *st = fi->userdata; l2m_debug() local
1770 VHiSax_putstatus(st->l1.hardware, st->l2.debug_id, fmt, args); l2m_debug()
1775 setstack_isdnl2(struct PStack *st, char *debug_id) setstack_isdnl2() argument
1777 spin_lock_init(&st->l2.lock); setstack_isdnl2()
1778 st->l1.l1l2 = isdnl2_l1l2; setstack_isdnl2()
1779 st->l3.l3l2 = isdnl2_l3l2; setstack_isdnl2()
1781 skb_queue_head_init(&st->l2.i_queue); setstack_isdnl2()
1782 skb_queue_head_init(&st->l2.ui_queue); setstack_isdnl2()
1783 InitWin(&st->l2); setstack_isdnl2()
1784 st->l2.debug = 0; setstack_isdnl2()
1786 st->l2.l2m.fsm = &l2fsm; setstack_isdnl2()
1787 if (test_bit(FLG_LAPB, &st->l2.flag)) setstack_isdnl2()
1788 st->l2.l2m.state = ST_L2_4; setstack_isdnl2()
1790 st->l2.l2m.state = ST_L2_1; setstack_isdnl2()
1791 st->l2.l2m.debug = 0; setstack_isdnl2()
1792 st->l2.l2m.userdata = st; setstack_isdnl2()
1793 st->l2.l2m.userint = 0; setstack_isdnl2()
1794 st->l2.l2m.printdebug = l2m_debug; setstack_isdnl2()
1795 strcpy(st->l2.debug_id, debug_id); setstack_isdnl2()
1797 FsmInitTimer(&st->l2.l2m, &st->l2.t200); setstack_isdnl2()
1798 FsmInitTimer(&st->l2.l2m, &st->l2.t203); setstack_isdnl2()
1802 transl2_l3l2(struct PStack *st, int pr, void *arg) transl2_l3l2() argument
1807 st->l2.l2l1(st, PH_DATA | REQUEST, arg); transl2_l3l2()
1810 st->l2.l2l1(st, PH_ACTIVATE | REQUEST, NULL); transl2_l3l2()
1813 st->l2.l2l1(st, PH_DEACTIVATE | REQUEST, NULL); transl2_l3l2()
1819 setstack_transl2(struct PStack *st) setstack_transl2() argument
1821 st->l3.l3l2 = transl2_l3l2; setstack_transl2()
1825 releasestack_transl2(struct PStack *st) releasestack_transl2() argument
H A Dtei.c38 void tei_handler(struct PStack *st, u_char pr, struct sk_buff *skb);
88 findtei(struct PStack *st, int tei) findtei() argument
90 struct PStack *ptr = *(st->l1.stlistp); findtei()
104 put_tei_msg(struct PStack *st, u_char m_id, unsigned int ri, u_char tei) put_tei_msg() argument
123 st->l2.l2l1(st, PH_DATA | REQUEST, skb); put_tei_msg()
129 struct PStack *st = fi->userdata; tei_id_request() local
131 if (st->l2.tei != -1) { tei_id_request()
132 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_request()
134 st->l2.tei); tei_id_request()
137 st->ma.ri = random_ri(); tei_id_request()
138 if (st->ma.debug) tei_id_request()
139 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_request()
140 "assign request ri %d", st->ma.ri); tei_id_request()
141 put_tei_msg(st, ID_REQUEST, st->ma.ri, 127); tei_id_request()
142 FsmChangeState(&st->ma.tei_m, ST_TEI_IDREQ); tei_id_request()
143 FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 1); tei_id_request()
144 st->ma.N202 = 3; tei_id_request()
150 struct PStack *ost, *st = fi->userdata; tei_id_assign() local
157 if (st->ma.debug) tei_id_assign()
158 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_assign()
160 if ((ost = findtei(st, tei))) { /* same tei is in use */ tei_id_assign()
162 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_assign()
166 } else if (ri == st->ma.ri) { tei_id_assign()
167 FsmDelTimer(&st->ma.t202, 1); tei_id_assign()
168 FsmChangeState(&st->ma.tei_m, ST_TEI_NOP); tei_id_assign()
169 st->l3.l3l2(st, MDL_ASSIGN | REQUEST, (void *) (long) tei); tei_id_assign()
170 cs = (struct IsdnCardState *) st->l1.hardware; tei_id_assign()
178 struct PStack *ost, *st = fi->userdata; tei_id_test_dup() local
184 if (st->ma.debug) tei_id_test_dup()
185 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_test_dup()
187 if ((ost = findtei(st, tei))) { /* same tei is in use */ tei_id_test_dup()
189 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_test_dup()
199 struct PStack *st = fi->userdata; tei_id_denied() local
205 if (st->ma.debug) tei_id_denied()
206 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_denied()
213 struct PStack *st = fi->userdata; tei_id_chk_req() local
218 if (st->ma.debug) tei_id_chk_req()
219 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_chk_req()
221 if ((st->l2.tei != -1) && ((tei == GROUP_TEI) || (tei == st->l2.tei))) { tei_id_chk_req()
222 FsmDelTimer(&st->ma.t202, 4); tei_id_chk_req()
223 FsmChangeState(&st->ma.tei_m, ST_TEI_NOP); tei_id_chk_req()
224 put_tei_msg(st, ID_CHK_RES, random_ri(), st->l2.tei); tei_id_chk_req()
231 struct PStack *st = fi->userdata; tei_id_remove() local
237 if (st->ma.debug) tei_id_remove()
238 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_remove()
240 if ((st->l2.tei != -1) && ((tei == GROUP_TEI) || (tei == st->l2.tei))) { tei_id_remove()
241 FsmDelTimer(&st->ma.t202, 5); tei_id_remove()
242 FsmChangeState(&st->ma.tei_m, ST_TEI_NOP); tei_id_remove()
243 st->l3.l3l2(st, MDL_REMOVE | REQUEST, NULL); tei_id_remove()
244 cs = (struct IsdnCardState *) st->l1.hardware; tei_id_remove()
252 struct PStack *st = fi->userdata; tei_id_verify() local
254 if (st->ma.debug) tei_id_verify()
255 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_verify()
256 "id verify request for tei %d", st->l2.tei); tei_id_verify()
257 put_tei_msg(st, ID_VERIFY, 0, st->l2.tei); tei_id_verify()
258 FsmChangeState(&st->ma.tei_m, ST_TEI_IDVERIFY); tei_id_verify()
259 FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 2); tei_id_verify()
260 st->ma.N202 = 2; tei_id_verify()
266 struct PStack *st = fi->userdata; tei_id_req_tout() local
269 if (--st->ma.N202) { tei_id_req_tout()
270 st->ma.ri = random_ri(); tei_id_req_tout()
271 if (st->ma.debug) tei_id_req_tout()
272 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_req_tout()
273 "assign req(%d) ri %d", 4 - st->ma.N202, tei_id_req_tout()
274 st->ma.ri); tei_id_req_tout()
275 put_tei_msg(st, ID_REQUEST, st->ma.ri, 127); tei_id_req_tout()
276 FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 3); tei_id_req_tout()
278 st->ma.tei_m.printdebug(&st->ma.tei_m, "assign req failed"); tei_id_req_tout()
279 st->l3.l3l2(st, MDL_ERROR | RESPONSE, NULL); tei_id_req_tout()
280 cs = (struct IsdnCardState *) st->l1.hardware; tei_id_req_tout()
289 struct PStack *st = fi->userdata; tei_id_ver_tout() local
292 if (--st->ma.N202) { tei_id_ver_tout()
293 if (st->ma.debug) tei_id_ver_tout()
294 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_ver_tout()
296 3 - st->ma.N202, st->l2.tei); tei_id_ver_tout()
297 put_tei_msg(st, ID_VERIFY, 0, st->l2.tei); tei_id_ver_tout()
298 FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 4); tei_id_ver_tout()
300 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_id_ver_tout()
301 "verify req for tei %d failed", st->l2.tei); tei_id_ver_tout()
302 st->l3.l3l2(st, MDL_REMOVE | REQUEST, NULL); tei_id_ver_tout()
303 cs = (struct IsdnCardState *) st->l1.hardware; tei_id_ver_tout()
310 tei_l1l2(struct PStack *st, int pr, void *arg) tei_l1l2() argument
315 if (test_bit(FLG_FIXED_TEI, &st->l2.flag)) { tei_l1l2()
322 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
326 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
330 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
335 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
339 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
345 FsmEvent(&st->ma.tei_m, EV_ASSIGN, skb); tei_l1l2()
347 FsmEvent(&st->ma.tei_m, EV_DENIED, skb); tei_l1l2()
349 FsmEvent(&st->ma.tei_m, EV_CHKREQ, skb); tei_l1l2()
351 FsmEvent(&st->ma.tei_m, EV_REMOVE, skb); tei_l1l2()
353 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
359 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l1l2()
366 tei_l2tei(struct PStack *st, int pr, void *arg) tei_l2tei() argument
370 if (test_bit(FLG_FIXED_TEI, &st->l2.flag)) { tei_l2tei()
372 if (st->ma.debug) tei_l2tei()
373 st->ma.tei_m.printdebug(&st->ma.tei_m, tei_l2tei()
374 "fixed assign tei %d", st->l2.tei); tei_l2tei()
375 st->l3.l3l2(st, MDL_ASSIGN | REQUEST, (void *) (long) st->l2.tei); tei_l2tei()
376 cs = (struct IsdnCardState *) st->l1.hardware; tei_l2tei()
383 FsmEvent(&st->ma.tei_m, EV_IDREQ, arg); tei_l2tei()
386 FsmEvent(&st->ma.tei_m, EV_VERIFY, arg); tei_l2tei()
397 struct PStack *st = fi->userdata; tei_debug() local
400 VHiSax_putstatus(st->l1.hardware, "tei ", fmt, args); tei_debug()
405 setstack_tei(struct PStack *st) setstack_tei() argument
407 st->l2.l2tei = tei_l2tei; setstack_tei()
408 st->ma.T202 = 2000; /* T202 2000 milliseconds */ setstack_tei()
409 st->l1.l1tei = tei_l1l2; setstack_tei()
410 st->ma.debug = 1; setstack_tei()
411 st->ma.tei_m.fsm = &teifsm; setstack_tei()
412 st->ma.tei_m.state = ST_TEI_NOP; setstack_tei()
413 st->ma.tei_m.debug = 1; setstack_tei()
414 st->ma.tei_m.userdata = st; setstack_tei()
415 st->ma.tei_m.userint = 0; setstack_tei()
416 st->ma.tei_m.printdebug = tei_debug; setstack_tei()
417 FsmInitTimer(&st->ma.tei_m, &st->ma.t202); setstack_tei()
428 struct PStack *st = cs->stlist; release_tei() local
430 while (st) { release_tei()
431 FsmDelTimer(&st->ma.t202, 1); release_tei()
432 st = st->next; release_tei()
H A Disdnl3.c73 struct PStack *st = fi->userdata; l3m_debug() local
76 VHiSax_putstatus(st->l1.hardware, st->l3.debug_id, fmt, args); l3m_debug()
156 l3_debug(pc->st, "%s cr %d %d --> %d", __func__, newl3state()
165 t->pc->st->lli.l4l3(t->pc->st, t->event, t->pc); L3ExpireTimer()
218 no_l3_proto(struct PStack *st, int pr, void *arg) no_l3_proto() argument
222 HiSax_putstatus(st->l1.hardware, "L3", "no D protocol"); no_l3_proto()
229 no_l3_proto_spec(struct PStack *st, isdn_ctrl *ic) no_l3_proto_spec() argument
236 *getl3proc(struct PStack *st, int cr) getl3proc() argument
238 struct l3_process *p = st->l3.proc; getl3proc()
249 *new_l3_process(struct PStack *st, int cr) new_l3_process() argument
257 if (!st->l3.proc) new_l3_process()
258 st->l3.proc = p; new_l3_process()
260 np = st->l3.proc; new_l3_process()
266 p->debug = st->l3.debug; new_l3_process()
270 p->st = st; new_l3_process()
271 p->N303 = st->l3.N303; new_l3_process()
283 np = p->st->l3.proc; release_l3_process()
289 else if (!(p->st->l3.proc = np->next) && release_l3_process()
290 !test_bit(FLG_PTP, &p->st->l2.flag)) { release_l3_process()
292 l3_debug(p->st, "release_l3_process: last process"); release_l3_process()
293 if (skb_queue_empty(&p->st->l3.squeue)) { release_l3_process()
295 l3_debug(p->st, "release_l3_process: release link"); release_l3_process()
296 if (p->st->protocol != ISDN_PTYPE_NI1) release_l3_process()
297 FsmEvent(&p->st->l3.l3m, EV_RELEASE_REQ, NULL); release_l3_process()
299 FsmEvent(&p->st->l3.l3m, EV_RELEASE_IND, NULL); release_l3_process()
302 l3_debug(p->st, "release_l3_process: not release link"); release_l3_process()
312 l3_debug(p->st, "HiSax internal L3 error CR(%d) not in list", p->callref); release_l3_process()
316 l3ml3p(struct PStack *st, int pr) l3ml3p() argument
318 struct l3_process *p = st->l3.proc; l3ml3p()
324 st->l3.l3ml3(st, pr, p); l3ml3p()
330 setstack_l3dc(struct PStack *st, struct Channel *chanp) setstack_l3dc() argument
334 st->l3.proc = NULL; setstack_l3dc()
335 st->l3.global = NULL; setstack_l3dc()
336 skb_queue_head_init(&st->l3.squeue); setstack_l3dc()
337 st->l3.l3m.fsm = &l3fsm; setstack_l3dc()
338 st->l3.l3m.state = ST_L3_LC_REL; setstack_l3dc()
339 st->l3.l3m.debug = 1; setstack_l3dc()
340 st->l3.l3m.userdata = st; setstack_l3dc()
341 st->l3.l3m.userint = 0; setstack_l3dc()
342 st->l3.l3m.printdebug = l3m_debug; setstack_l3dc()
343 FsmInitTimer(&st->l3.l3m, &st->l3.l3m_timer); setstack_l3dc()
344 strcpy(st->l3.debug_id, "L3DC "); setstack_l3dc()
345 st->lli.l4l3_proto = no_l3_proto_spec; setstack_l3dc()
348 if (st->protocol == ISDN_PTYPE_EURO) { setstack_l3dc()
349 setstack_dss1(st); setstack_l3dc()
353 if (st->protocol == ISDN_PTYPE_NI1) { setstack_l3dc()
354 setstack_ni1(st); setstack_l3dc()
358 if (st->protocol == ISDN_PTYPE_1TR6) { setstack_l3dc()
359 setstack_1tr6(st); setstack_l3dc()
362 if (st->protocol == ISDN_PTYPE_LEASED) { setstack_l3dc()
363 st->lli.l4l3 = no_l3_proto; setstack_l3dc()
364 st->l2.l2l3 = no_l3_proto; setstack_l3dc()
365 st->l3.l3ml3 = no_l3_proto; setstack_l3dc()
368 st->lli.l4l3 = no_l3_proto; setstack_l3dc()
369 st->l2.l2l3 = no_l3_proto; setstack_l3dc()
370 st->l3.l3ml3 = no_l3_proto; setstack_l3dc()
372 (st->protocol == ISDN_PTYPE_1TR6) ? "1tr6" : setstack_l3dc()
373 (st->protocol == ISDN_PTYPE_EURO) ? "euro" : setstack_l3dc()
374 (st->protocol == ISDN_PTYPE_NI1) ? "ni1" : setstack_l3dc()
377 st->protocol = -1; setstack_l3dc()
382 isdnl3_trans(struct PStack *st, int pr, void *arg) { isdnl3_trans() argument
383 st->l3.l3l2(st, pr, arg); isdnl3_trans()
387 releasestack_isdnl3(struct PStack *st) releasestack_isdnl3() argument
389 while (st->l3.proc) releasestack_isdnl3()
390 release_l3_process(st->l3.proc); releasestack_isdnl3()
391 if (st->l3.global) { releasestack_isdnl3()
392 StopAllL3Timer(st->l3.global); releasestack_isdnl3()
393 kfree(st->l3.global); releasestack_isdnl3()
394 st->l3.global = NULL; releasestack_isdnl3()
396 FsmDelTimer(&st->l3.l3m_timer, 54); releasestack_isdnl3()
397 skb_queue_purge(&st->l3.squeue); releasestack_isdnl3()
401 setstack_l3bc(struct PStack *st, struct Channel *chanp) setstack_l3bc() argument
404 st->l3.proc = NULL; setstack_l3bc()
405 st->l3.global = NULL; setstack_l3bc()
406 skb_queue_head_init(&st->l3.squeue); setstack_l3bc()
407 st->l3.l3m.fsm = &l3fsm; setstack_l3bc()
408 st->l3.l3m.state = ST_L3_LC_REL; setstack_l3bc()
409 st->l3.l3m.debug = 1; setstack_l3bc()
410 st->l3.l3m.userdata = st; setstack_l3bc()
411 st->l3.l3m.userint = 0; setstack_l3bc()
412 st->l3.l3m.printdebug = l3m_debug; setstack_l3bc()
413 strcpy(st->l3.debug_id, "L3BC "); setstack_l3bc()
414 st->lli.l4l3 = isdnl3_trans; setstack_l3bc()
422 struct PStack *st = fi->userdata; lc_activate() local
425 st->l3.l3l2(st, DL_ESTABLISH | REQUEST, NULL); lc_activate()
431 struct PStack *st = fi->userdata; lc_connect() local
436 while ((skb = skb_dequeue(&st->l3.squeue))) { lc_connect()
437 st->l3.l3l2(st, DL_DATA | REQUEST, skb); lc_connect()
440 if ((!st->l3.proc) && dequeued) { lc_connect()
441 if (st->l3.debug) lc_connect()
442 l3_debug(st, "lc_connect: release link"); lc_connect()
443 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); lc_connect()
445 l3ml3p(st, DL_ESTABLISH | INDICATION); lc_connect()
451 struct PStack *st = fi->userdata; lc_connected() local
455 FsmDelTimer(&st->l3.l3m_timer, 51); lc_connected()
457 while ((skb = skb_dequeue(&st->l3.squeue))) { lc_connected()
458 st->l3.l3l2(st, DL_DATA | REQUEST, skb); lc_connected()
461 if ((!st->l3.proc) && dequeued) { lc_connected()
462 if (st->l3.debug) lc_connected()
463 l3_debug(st, "lc_connected: release link"); lc_connected()
464 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); lc_connected()
466 l3ml3p(st, DL_ESTABLISH | CONFIRM); lc_connected()
472 struct PStack *st = fi->userdata; lc_start_delay() local
475 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50); lc_start_delay()
482 struct PStack *st = fi->userdata; lc_start_delay_check() local
486 if (st->protocol != ISDN_PTYPE_NI1) lc_start_delay_check()
487 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50); lc_start_delay_check()
493 struct PStack *st = fi->userdata; lc_release_req() local
495 if (test_bit(FLG_L2BLOCK, &st->l2.flag)) { lc_release_req()
496 if (st->l3.debug) lc_release_req()
497 l3_debug(st, "lc_release_req: l2 blocked"); lc_release_req()
499 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 51); lc_release_req()
502 st->l3.l3l2(st, DL_RELEASE | REQUEST, NULL); lc_release_req()
509 struct PStack *st = fi->userdata; lc_release_ind() local
511 FsmDelTimer(&st->l3.l3m_timer, 52); lc_release_ind()
513 skb_queue_purge(&st->l3.squeue); lc_release_ind()
514 l3ml3p(st, DL_RELEASE | INDICATION); lc_release_ind()
520 struct PStack *st = fi->userdata; lc_release_cnf() local
523 skb_queue_purge(&st->l3.squeue); lc_release_cnf()
524 l3ml3p(st, DL_RELEASE | CONFIRM); lc_release_cnf()
548 l3_msg(struct PStack *st, int pr, void *arg) l3_msg() argument
552 if (st->l3.l3m.state == ST_L3_LC_ESTAB) { l3_msg()
553 st->l3.l3l2(st, pr, arg); l3_msg()
557 skb_queue_tail(&st->l3.squeue, skb); l3_msg()
558 FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); l3_msg()
562 FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); l3_msg()
565 FsmEvent(&st->l3.l3m, EV_ESTABLISH_CNF, NULL); l3_msg()
568 FsmEvent(&st->l3.l3m, EV_ESTABLISH_IND, NULL); l3_msg()
571 FsmEvent(&st->l3.l3m, EV_RELEASE_IND, NULL); l3_msg()
574 FsmEvent(&st->l3.l3m, EV_RELEASE_CNF, NULL); l3_msg()
577 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); l3_msg()
H A Disdnl1.c145 struct PStack *st = fi->userdata; l1m_debug() local
146 struct IsdnCardState *cs = st->l1.hardware; l1m_debug()
158 struct PStack *st; L1activated() local
160 st = cs->stlist; L1activated()
161 while (st) { L1activated()
162 if (test_and_clear_bit(FLG_L1_ACTIVATING, &st->l1.Flags)) L1activated()
163 st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL); L1activated()
165 st->l1.l1l2(st, PH_ACTIVATE | INDICATION, NULL); L1activated()
166 st = st->next; L1activated()
173 struct PStack *st; L1deactivated() local
175 st = cs->stlist; L1deactivated()
176 while (st) { L1deactivated()
178 st->l1.l1l2(st, PH_PAUSE | CONFIRM, NULL); L1deactivated()
179 st->l1.l1l2(st, PH_DEACTIVATE | INDICATION, NULL); L1deactivated()
180 st = st->next; L1deactivated()
273 struct PStack *st = bcs->st; BChannel_proc_xmt() local
280 if (test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags)) BChannel_proc_xmt()
281 st->l1.l1l2(st, PH_PULL | CONFIRM, NULL); BChannel_proc_xmt()
285 st->l2.l2l1(st, PH_DEACTIVATE | CONFIRM, NULL); BChannel_proc_xmt()
295 if (bcs->st->l1.l1m.state == ST_L1_WAIT_ACT) { BChannel_proc_rcv()
296 FsmDelTimer(&bcs->st->l1.timer, 4); BChannel_proc_rcv()
297 FsmEvent(&bcs->st->l1.l1m, EV_TIMER_ACT, NULL); BChannel_proc_rcv()
300 bcs->st->l1.l1l2(bcs->st, PH_DATA | INDICATION, skb); BChannel_proc_rcv()
315 lli_writewakeup(bcs->st, ack); BChannel_proc_ack()
335 struct PStack *st) HiSax_addlist()
337 st->next = cs->stlist; HiSax_addlist()
338 cs->stlist = st; HiSax_addlist()
343 struct PStack *st) HiSax_rmlist()
347 FsmDelTimer(&st->l1.timer, 0); HiSax_rmlist()
348 if (cs->stlist == st) HiSax_rmlist()
349 cs->stlist = st->next; HiSax_rmlist()
353 if (p->next == st) { HiSax_rmlist()
354 p->next = st->next; HiSax_rmlist()
466 struct PStack *st = fi->userdata; l1_deact_cnf() local
469 if (test_bit(FLG_L1_ACTIVATING, &st->l1.Flags)) l1_deact_cnf()
470 st->l1.l1hw(st, HW_ENABLE | REQUEST, NULL); l1_deact_cnf()
476 struct PStack *st = fi->userdata; l1_deact_req_s() local
479 FsmRestartTimer(&st->l1.timer, 550, EV_TIMER_DEACT, NULL, 2); l1_deact_req_s()
480 test_and_set_bit(FLG_L1_DEACTTIMER, &st->l1.Flags); l1_deact_req_s()
486 struct PStack *st = fi->userdata; l1_power_up_s() local
488 if (test_bit(FLG_L1_ACTIVATING, &st->l1.Flags)) { l1_power_up_s()
490 st->l1.l1hw(st, HW_INFO3 | REQUEST, NULL); l1_power_up_s()
491 FsmRestartTimer(&st->l1.timer, TIMER3_VALUE, EV_TIMER3, NULL, 2); l1_power_up_s()
492 test_and_set_bit(FLG_L1_T3RUN, &st->l1.Flags); l1_power_up_s()
512 struct PStack *st = fi->userdata; l1_info2_ind() local
515 if (test_bit(FLG_L1_UINT, &st->l1.Flags)) l1_info2_ind()
520 st->l1.l1hw(st, HW_INFO3 | REQUEST, NULL); l1_info2_ind()
526 struct PStack *st = fi->userdata; l1_info4_ind() local
529 if (test_bit(FLG_L1_UINT, &st->l1.Flags)) l1_info4_ind()
534 st->l1.l1hw(st, HW_INFO3 | REQUEST, NULL); l1_info4_ind()
535 if (test_and_clear_bit(FLG_L1_DEACTTIMER, &st->l1.Flags)) l1_info4_ind()
536 FsmDelTimer(&st->l1.timer, 4); l1_info4_ind()
537 if (!test_bit(FLG_L1_ACTIVATED, &st->l1.Flags)) { l1_info4_ind()
538 if (test_and_clear_bit(FLG_L1_T3RUN, &st->l1.Flags)) l1_info4_ind()
539 FsmDelTimer(&st->l1.timer, 3); l1_info4_ind()
540 FsmRestartTimer(&st->l1.timer, 110, EV_TIMER_ACT, NULL, 2); l1_info4_ind()
541 test_and_set_bit(FLG_L1_ACTTIMER, &st->l1.Flags); l1_info4_ind()
548 struct PStack *st = fi->userdata; l1_timer3() local
550 test_and_clear_bit(FLG_L1_T3RUN, &st->l1.Flags); l1_timer3()
551 if (test_and_clear_bit(FLG_L1_ACTIVATING, &st->l1.Flags)) l1_timer3()
552 L1deactivated(st->l1.hardware); l1_timer3()
555 if (!test_bit(FLG_L1_UINT, &st->l1.Flags)) l1_timer3()
557 if (st->l1.l1m.state != ST_L1_F6) { l1_timer3()
559 st->l1.l1hw(st, HW_ENABLE | REQUEST, NULL); l1_timer3()
566 struct PStack *st = fi->userdata; l1_timer_act() local
568 test_and_clear_bit(FLG_L1_ACTTIMER, &st->l1.Flags); l1_timer_act()
569 test_and_set_bit(FLG_L1_ACTIVATED, &st->l1.Flags); l1_timer_act()
570 L1activated(st->l1.hardware); l1_timer_act()
576 struct PStack *st = fi->userdata; l1_timer_deact() local
578 test_and_clear_bit(FLG_L1_DEACTTIMER, &st->l1.Flags); l1_timer_deact()
579 test_and_clear_bit(FLG_L1_ACTIVATED, &st->l1.Flags); l1_timer_deact()
580 L1deactivated(st->l1.hardware); l1_timer_deact()
581 st->l1.l1hw(st, HW_DEACTIVATE | RESPONSE, NULL); l1_timer_deact()
587 struct PStack *st = fi->userdata; l1_activate_s() local
589 st->l1.l1hw(st, HW_RESET | REQUEST, NULL); l1_activate_s()
595 struct PStack *st = fi->userdata; l1_activate_no() local
597 if ((!test_bit(FLG_L1_DEACTTIMER, &st->l1.Flags)) && (!test_bit(FLG_L1_T3RUN, &st->l1.Flags))) { l1_activate_no()
598 test_and_clear_bit(FLG_L1_ACTIVATING, &st->l1.Flags); l1_activate_no()
599 L1deactivated(st->l1.hardware); l1_activate_no()
655 struct PStack *st = fi->userdata; l1_deact_req_u() local
658 FsmRestartTimer(&st->l1.timer, 550, EV_TIMER_DEACT, NULL, 2); l1_deact_req_u()
659 test_and_set_bit(FLG_L1_DEACTTIMER, &st->l1.Flags); l1_deact_req_u()
660 st->l1.l1hw(st, HW_ENABLE | REQUEST, NULL); l1_deact_req_u()
666 struct PStack *st = fi->userdata; l1_power_up_u() local
668 FsmRestartTimer(&st->l1.timer, TIMER3_VALUE, EV_TIMER3, NULL, 2); l1_power_up_u()
669 test_and_set_bit(FLG_L1_T3RUN, &st->l1.Flags); l1_power_up_u()
681 struct PStack *st = fi->userdata; l1_activate_u() local
683 st->l1.l1hw(st, HW_INFO1 | REQUEST, NULL); l1_activate_u()
713 struct PStack *st = fi->userdata; l1b_activate() local
716 FsmRestartTimer(&st->l1.timer, st->l1.delay, EV_TIMER_ACT, NULL, 2); l1b_activate()
722 struct PStack *st = fi->userdata; l1b_deactivate() local
725 FsmRestartTimer(&st->l1.timer, 10, EV_TIMER_DEACT, NULL, 2); l1b_deactivate()
731 struct PStack *st = fi->userdata; l1b_timer_act() local
734 st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL); l1b_timer_act()
740 struct PStack *st = fi->userdata; l1b_timer_deact() local
743 st->l2.l2l1(st, PH_DEACTIVATE | CONFIRM, NULL); l1b_timer_deact()
801 dch_l2l1(struct PStack *st, int pr, void *arg) dch_l2l1() argument
803 struct IsdnCardState *cs = (struct IsdnCardState *) st->l1.hardware; dch_l2l1()
809 st->l1.l1hw(st, pr, arg); dch_l2l1()
814 st->l1.l1m.fsm->strState[st->l1.l1m.state]); dch_l2l1()
815 if (test_bit(FLG_L1_ACTIVATED, &st->l1.Flags)) dch_l2l1()
816 st->l1.l1l2(st, PH_ACTIVATE | CONFIRM, NULL); dch_l2l1()
818 test_and_set_bit(FLG_L1_ACTIVATING, &st->l1.Flags); dch_l2l1()
819 FsmEvent(&st->l1.l1m, EV_PH_ACTIVATE, arg); dch_l2l1()
829 st->l1.l1hw(st, HW_TESTLOOP | REQUEST, arg); dch_l2l1()
840 struct PStack *st; l1_msg() local
842 st = cs->stlist; l1_msg()
844 while (st) { l1_msg()
847 FsmEvent(&st->l1.l1m, EV_RESET_IND, arg); l1_msg()
850 FsmEvent(&st->l1.l1m, EV_DEACT_CNF, arg); l1_msg()
853 FsmEvent(&st->l1.l1m, EV_DEACT_IND, arg); l1_msg()
856 FsmEvent(&st->l1.l1m, EV_POWER_UP, arg); l1_msg()
859 FsmEvent(&st->l1.l1m, EV_RSYNC_IND, arg); l1_msg()
862 FsmEvent(&st->l1.l1m, EV_INFO2_IND, arg); l1_msg()
866 FsmEvent(&st->l1.l1m, EV_INFO4_IND, arg); l1_msg()
873 st = st->next; l1_msg()
878 l1_msg_b(struct PStack *st, int pr, void *arg) { l1_msg_b() argument
881 FsmEvent(&st->l1.l1m, EV_PH_ACTIVATE, NULL); l1_msg_b()
884 FsmEvent(&st->l1.l1m, EV_PH_DEACTIVATE, NULL); l1_msg_b()
890 setstack_HiSax(struct PStack *st, struct IsdnCardState *cs) setstack_HiSax() argument
892 st->l1.hardware = cs; setstack_HiSax()
893 st->protocol = cs->protocol; setstack_HiSax()
894 st->l1.l1m.fsm = &l1fsm_s; setstack_HiSax()
895 st->l1.l1m.state = ST_L1_F3; setstack_HiSax()
896 st->l1.Flags = 0; setstack_HiSax()
899 st->l1.l1m.fsm = &l1fsm_u; setstack_HiSax()
900 st->l1.l1m.state = ST_L1_RESET; setstack_HiSax()
901 st->l1.Flags = FLG_L1_UINT; setstack_HiSax()
904 st->l1.l1m.debug = cs->debug; setstack_HiSax()
905 st->l1.l1m.userdata = st; setstack_HiSax()
906 st->l1.l1m.userint = 0; setstack_HiSax()
907 st->l1.l1m.printdebug = l1m_debug; setstack_HiSax()
908 FsmInitTimer(&st->l1.l1m, &st->l1.timer); setstack_HiSax()
909 setstack_tei(st); setstack_HiSax()
910 setstack_manager(st); setstack_HiSax()
911 st->l1.stlistp = &(cs->stlist); setstack_HiSax()
912 st->l2.l2l1 = dch_l2l1; setstack_HiSax()
914 cs->setstack_d(st, cs); setstack_HiSax()
918 setstack_l1_B(struct PStack *st) setstack_l1_B() argument
920 struct IsdnCardState *cs = st->l1.hardware; setstack_l1_B()
922 st->l1.l1m.fsm = &l1fsm_b; setstack_l1_B()
923 st->l1.l1m.state = ST_L1_NULL; setstack_l1_B()
924 st->l1.l1m.debug = cs->debug; setstack_l1_B()
925 st->l1.l1m.userdata = st; setstack_l1_B()
926 st->l1.l1m.userint = 0; setstack_l1_B()
927 st->l1.l1m.printdebug = l1m_debug; setstack_l1_B()
928 st->l1.Flags = 0; setstack_l1_B()
929 FsmInitTimer(&st->l1.l1m, &st->l1.timer); setstack_l1_B()
334 HiSax_addlist(struct IsdnCardState *cs, struct PStack *st) HiSax_addlist() argument
342 HiSax_rmlist(struct IsdnCardState *cs, struct PStack *st) HiSax_rmlist() argument
H A Dlmgr.c16 error_handling_dchan(struct PStack *st, int Error) error_handling_dchan() argument
23 st->l2.l2tei(st, MDL_ERROR | REQUEST, NULL); error_handling_dchan()
29 hisax_manager(struct PStack *st, int pr, void *arg) hisax_manager() argument
36 HiSax_putstatus(st->l1.hardware, "manager: MDL_ERROR", hisax_manager()
38 test_bit(FLG_LAPD, &st->l2.flag) ? hisax_manager()
40 if (test_bit(FLG_LAPD, &st->l2.flag)) hisax_manager()
41 error_handling_dchan(st, Code); hisax_manager()
47 setstack_manager(struct PStack *st) setstack_manager() argument
49 st->ma.layer = hisax_manager; setstack_manager()
H A Disdnl3.h26 #define l3_debug(st, fmt, args...) HiSax_putstatus(st->l1.hardware, "l3 ", fmt, ## args)
36 struct l3_process *new_l3_process(struct PStack *st, int cr);
38 struct l3_process *getl3proc(struct PStack *st, int cr);
39 void l3_msg(struct PStack *st, int pr, void *arg);
40 void setstack_dss1(struct PStack *st);
41 void setstack_ni1(struct PStack *st);
42 void setstack_1tr6(struct PStack *st);
H A Dl3_1tr6.c40 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3_1TR6_message()
65 if (pc->st->l3.debug & L3_DEB_WARN) l3_1tr6_error()
66 l3_debug(pc->st, "%s", msg); l3_1tr6_error()
100 if (pc->st->l3.debug & L3_DEB_WARN) l3_1tr6_setup_req()
101 l3_debug(pc->st, "Wrong MSN Code"); l3_1tr6_setup_req()
156 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3_1tr6_setup_req()
215 if ((pc->para.setup.si1 != 7) && (pc->st->l3.debug & L3_DEB_WARN)) { l3_1tr6_setup()
216 l3_debug(pc->st, "non-digital call: %s -> %s", l3_1tr6_setup()
221 pc->st->l3.l3l4(pc->st, CC_SETUP | INDICATION, pc); l3_1tr6_setup()
251 pc->st->l3.l3l4(pc->st, CC_MORE_INFO | INDICATION, pc); l3_1tr6_setup_ack()
283 pc->st->l3.l3l4(pc->st, CC_PROCEEDING | INDICATION, pc); l3_1tr6_call_sent()
294 pc->st->l3.l3l4(pc->st, CC_ALERTING | INDICATION, pc); l3_1tr6_alert()
314 pc->st->l3.l3l4(pc->st, CC_CHARGE | INDICATION, pc); l3_1tr6_info()
316 if (pc->st->l3.debug & L3_DEB_CHARGE) { l3_1tr6_info()
317 l3_debug(pc->st, "charging info %d", l3_1tr6_info()
320 } else if (pc->st->l3.debug & L3_DEB_CHARGE) l3_1tr6_info()
321 l3_debug(pc->st, "charging info not found"); l3_1tr6_info()
347 pc->st->l3.l3l4(pc->st, CC_SETUP | CONFIRM, pc); l3_1tr6_connect()
377 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3_1tr6_rel()
390 pc->st->l3.l3l4(pc->st, CC_RELEASE | CONFIRM, pc); l3_1tr6_rel_ack()
412 pc->st->l3.l3l4(pc->st, CC_CHARGE | INDICATION, pc); l3_1tr6_disc()
414 if (pc->st->l3.debug & L3_DEB_CHARGE) { l3_1tr6_disc()
415 l3_debug(pc->st, "charging info %d", l3_1tr6_disc()
418 } else if (pc->st->l3.debug & L3_DEB_CHARGE) l3_1tr6_disc()
419 l3_debug(pc->st, "charging info not found"); l3_1tr6_disc()
435 if (pc->st->l3.debug & L3_DEB_WARN) l3_1tr6_disc()
436 l3_debug(pc->st, "cause not found"); l3_1tr6_disc()
445 pc->st->l3.l3l4(pc->st, CC_DISCONNECT | INDICATION, pc); l3_1tr6_disc()
462 pc->st->l3.l3l4(pc->st, CC_SETUP_COMPL | INDICATION, pc); l3_1tr6_connect_ack()
501 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3_1tr6_setup_rsp()
547 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3_1tr6_disconnect_req()
571 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3_1tr6_t304()
606 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3_1tr6_t305()
616 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3_1tr6_t310()
625 pc->st->l3.l3l4(pc->st, CC_CONNECT_ERR, pc); l3_1tr6_t313()
641 pc->st->l3.l3l4(pc->st, CC_RELEASE_ERR, pc); l3_1tr6_t308_2()
650 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3_1tr6_dl_reset()
659 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3_1tr6_dl_release()
742 up1tr6(struct PStack *st, int pr, void *arg) up1tr6() argument
756 l3_msg(st, pr, arg); up1tr6()
761 if (st->l3.debug & L3_DEB_PROTERR) { up1tr6()
762 l3_debug(st, "up1tr6 len only %d", skb->len); up1tr6()
768 if (st->l3.debug & L3_DEB_PROTERR) { up1tr6()
769 l3_debug(st, "up1tr6%sunexpected discriminator %x message len %d", up1tr6()
777 if (st->l3.debug & L3_DEB_PROTERR) { up1tr6()
778 l3_debug(st, "up1tr6 CR len not 1"); up1tr6()
787 if (st->l3.debug & L3_DEB_STATE) { up1tr6()
788 l3_debug(st, "up1tr6%s N0 mt %x unhandled", up1tr6()
792 if (!(proc = getl3proc(st, cr))) { up1tr6()
795 if (!(proc = new_l3_process(st, cr))) { up1tr6()
796 if (st->l3.debug & L3_DEB_PROTERR) { up1tr6()
797 l3_debug(st, "up1tr6 no roc mem"); up1tr6()
814 if (!(proc = new_l3_process(st, cr))) { up1tr6()
815 if (st->l3.debug & L3_DEB_PROTERR) { up1tr6()
816 l3_debug(st, "up1tr6 no roc mem"); up1tr6()
830 if (st->l3.debug & L3_DEB_STATE) { up1tr6()
831 l3_debug(st, "up1tr6%sstate %d mt %x unhandled", up1tr6()
837 if (st->l3.debug & L3_DEB_STATE) { up1tr6()
838 l3_debug(st, "up1tr6%sstate %d mt %x", up1tr6()
848 down1tr6(struct PStack *st, int pr, void *arg) down1tr6() argument
855 l3_msg(st, pr, NULL); down1tr6()
861 if (!(proc = new_l3_process(st, cr))) { down1tr6()
878 if (st->l3.debug & L3_DEB_STATE) { down1tr6()
879 l3_debug(st, "down1tr6 state %d prim %d unhandled", down1tr6()
883 if (st->l3.debug & L3_DEB_STATE) { down1tr6()
884 l3_debug(st, "down1tr6 state %d prim %d", down1tr6()
892 man1tr6(struct PStack *st, int pr, void *arg) man1tr6() argument
906 if (st->l3.debug & L3_DEB_STATE) { man1tr6()
907 l3_debug(st, "cr %d man1tr6 state %d prim %d unhandled", man1tr6()
911 if (st->l3.debug & L3_DEB_STATE) { man1tr6()
912 l3_debug(st, "cr %d man1tr6 state %d prim %d", man1tr6()
920 setstack_1tr6(struct PStack *st) setstack_1tr6() argument
924 st->lli.l4l3 = down1tr6; setstack_1tr6()
925 st->l2.l2l3 = up1tr6; setstack_1tr6()
926 st->l3.l3ml3 = man1tr6; setstack_1tr6()
927 st->l3.N303 = 0; setstack_1tr6()
H A Dl3dss1.c86 *dss1_new_l3_process(struct PStack *st, int cr) dss1_new_l3_process() argument
89 if (!(proc = new_l3_process(st, cr))) dss1_new_l3_process()
105 free_invoke_id(p->st, p->prot.dss1.invoke_id); dss1_release_l3_process()
113 l3dss1_search_dummy_proc(struct PStack *st, int id) l3dss1_search_dummy_proc() argument
114 { struct l3_process *pc = st->l3.proc; /* start of processes */ l3dss1_search_dummy_proc()
131 l3dss1_dummy_return_result(struct PStack *st, int id, u_char *p, u_char nlen) l3dss1_dummy_return_result() argument
136 if ((pc = l3dss1_search_dummy_proc(st, id))) l3dss1_dummy_return_result()
139 cs = pc->st->l1.hardware; l3dss1_dummy_return_result()
149 free_invoke_id(pc->st, pc->prot.dss1.invoke_id); l3dss1_dummy_return_result()
156 l3_debug(st, "dummy return result id=0x%x result len=%d", id, nlen); l3dss1_dummy_return_result()
164 l3dss1_dummy_error_return(struct PStack *st, int id, ulong error) l3dss1_dummy_error_return() argument
169 if ((pc = l3dss1_search_dummy_proc(st, id))) l3dss1_dummy_error_return()
172 cs = pc->st->l1.hardware; l3dss1_dummy_error_return()
182 free_invoke_id(pc->st, pc->prot.dss1.invoke_id); l3dss1_dummy_error_return()
189 l3_debug(st, "dummy return error id=0x%x error=0x%lx", id, error); l3dss1_dummy_error_return()
197 l3dss1_dummy_invoke(struct PStack *st, int cr, int id, l3dss1_dummy_invoke() argument
202 l3_debug(st, "dummy invoke %s id=0x%x ident=0x%x datalen=%d", l3dss1_dummy_invoke()
206 cs = st->l1.hardware; l3dss1_dummy_invoke()
221 l3dss1_parse_facility(struct PStack *st, struct l3_process *pc, l3dss1_parse_facility() argument
230 st = pc->st; /* valid Stack */ l3dss1_parse_facility()
232 if ((!st) || (cr >= 0)) return; /* neither pc nor st specified */ l3dss1_parse_facility()
237 l3_debug(st, "qd_len == 0"); l3dss1_parse_facility()
241 l3_debug(st, "supplementary service != 0x11"); l3dss1_parse_facility()
249 l3_debug(st, "qd_len < 2"); l3dss1_parse_facility()
255 l3_debug(st, "class and form != 0xA0"); l3dss1_parse_facility()
264 { l3_debug(st, "qd_len < 1"); l3dss1_parse_facility()
272 { l3_debug(st, "length format error or not implemented"); l3dss1_parse_facility()
282 { l3_debug(st, "length format indefinite error"); l3dss1_parse_facility()
293 { l3_debug(st, "qd_len < nlen"); l3dss1_parse_facility()
299 { l3_debug(st, "nlen < 2"); l3dss1_parse_facility()
304 l3_debug(st, "invoke identifier tag !=0x02"); l3dss1_parse_facility()
311 l3_debug(st, "invoke id length format 2"); l3dss1_parse_facility()
317 { l3_debug(st, "ilen > nlen || ilen == 0"); l3dss1_parse_facility()
330 l3_debug(st, "nlen < 2 22"); l3dss1_parse_facility()
334 l3_debug(st, "operation value !=0x02"); l3dss1_parse_facility()
342 l3_debug(st, "ilen > nlen || ilen == 0 22"); l3dss1_parse_facility()
353 { l3dss1_dummy_invoke(st, cr, id, ident, p, nlen); l3dss1_parse_facility()
363 l3_debug(st, "FOO1 nlen < ilen+2"); \ l3dss1_parse_facility()
387 st->l3.l3l4(st, CC_CHARGE | INDICATION, pc); l3dss1_parse_facility()
389 if (st->l3.debug & L3_DEB_CHARGE) { l3dss1_parse_facility()
391 l3_debug(st, "charging info during %d", pc->para.chargeinfo); l3dss1_parse_facility()
394 l3_debug(st, "charging info final %d", pc->para.chargeinfo); l3dss1_parse_facility()
410 st->l3.l3l4(st, CC_CHARGE | INDICATION, pc); l3dss1_parse_facility()
412 if (st->l3.debug & L3_DEB_CHARGE) { l3dss1_parse_facility()
413 l3_debug(st, "charging info final %d", pc->para.chargeinfo); l3dss1_parse_facility()
419 l3_debug(st, "invoke break invalid ident %02x", ident); l3dss1_parse_facility()
426 l3_debug(st, "invoke break"); l3dss1_parse_facility()
433 l3dss1_dummy_return_result(st, id, p, nlen); l3dss1_parse_facility()
438 free_invoke_id(st, pc->prot.dss1.invoke_id); l3dss1_parse_facility()
442 st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successful */ l3dss1_parse_facility()
444 l3_debug(st, "return error unknown identifier"); l3dss1_parse_facility()
449 { l3_debug(st, "return error nlen < 2"); l3dss1_parse_facility()
454 l3_debug(st, "invoke error tag !=0x02"); l3dss1_parse_facility()
461 l3_debug(st, "invoke return errlen > 4 "); l3dss1_parse_facility()
467 { l3_debug(st, "error return ilen > nlen || ilen == 0"); l3dss1_parse_facility()
478 l3dss1_dummy_error_return(st, id, err_ret); l3dss1_parse_facility()
483 free_invoke_id(st, pc->prot.dss1.invoke_id); l3dss1_parse_facility()
487 st->l3.l3l4(st, CC_REDIR | INDICATION, pc); l3dss1_parse_facility()
490 l3_debug(st, "return result unknown identifier"); l3dss1_parse_facility()
493 l3_debug(st, "facility default break tag=0x%02x", cp_tag); l3dss1_parse_facility()
508 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_message()
529 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_message_cause()
555 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_status_send()
591 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_msg_without_setup()
740 l3_debug(pc->st, "check IE shift%scodeset %d->%d", check_infoelements()
772 l3_debug(pc->st, "check IE shift back codeset %d->%d", check_infoelements()
780 l3_debug(pc->st, "check IE MT(%x) %d/%d/%d/%d", check_infoelements()
823 l3_debug(pc->st, "l3dss1_check_messagetype_validity mt(%x) OK", mt); l3dss1_check_messagetype_validity()
829 l3_debug(pc->st, "l3dss1_check_messagetype_validity mt(%x) fail", mt); l3dss1_check_messagetype_validity()
841 l3_debug(pc->st, "check_infoelements ret %d", ret); l3dss1_std_ie_err()
872 l3_debug(pc->st, "wrong chid len %d", *p); l3dss1_get_channel_id()
878 l3_debug(pc->st, "wrong chid %x", *p); l3dss1_get_channel_id()
948 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_msg_with_uus()
971 l3_debug(pc->st, "RELCMPL get_cause ret(%d)", ret); l3dss1_release_cmpl()
976 pc->st->l3.l3l4(pc->st, CC_RELEASE | CONFIRM, pc); l3dss1_release_cmpl()
1302 l3_debug(pc->st, "Wrong MSN Code"); l3dss1_setup_req()
1427 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_setup_req()
1439 l3_debug(pc->st, "setup answer with wrong chid %x", id); l3dss1_call_proc()
1447 l3_debug(pc->st, "setup answer wrong chid (ret %d)", id); l3dss1_call_proc()
1466 pc->st->l3.l3l4(pc->st, CC_PROCEEDING | INDICATION, pc); l3dss1_call_proc()
1478 l3_debug(pc->st, "setup answer with wrong chid %x", id); l3dss1_setup_ack()
1486 l3_debug(pc->st, "setup answer wrong chid (ret %d)", id); l3dss1_setup_ack()
1505 pc->st->l3.l3l4(pc->st, CC_MORE_INFO | INDICATION, pc); l3dss1_setup_ack()
1519 l3_debug(pc->st, "DISC get_cause ret(%d)", ret); l3dss1_disconnect()
1526 l3dss1_parse_facility(pc->st, pc, pc->callref, p); l3dss1_disconnect()
1537 pc->st->l3.l3l4(pc->st, CC_DISCONNECT | INDICATION, pc); l3dss1_disconnect()
1563 pc->st->l3.l3l4(pc->st, CC_SETUP | CONFIRM, pc); l3dss1_connect()
1581 pc->st->l3.l3l4(pc->st, CC_ALERTING | INDICATION, pc); l3dss1_alerting()
1649 l3_debug(pc->st, "SI=%d, AI=%d", l3dss1_setup()
1653 l3_debug(pc->st, "setup with wrong bearer(l=%d:%x,%x)", l3dss1_setup()
1661 l3_debug(pc->st, "setup without bearer capabilities"); l3dss1_setup()
1674 l3_debug(pc->st, "setup with wrong chid %x", l3dss1_setup()
1683 l3_debug(pc->st, "setup without bchannel, call waiting"); l3dss1_setup()
1688 l3_debug(pc->st, "setup with wrong chid ret %d", id); l3dss1_setup()
1717 l3_debug(pc->st, "wrong called subaddress"); l3dss1_setup()
1742 l3_debug(pc->st, "wrong calling subaddress"); l3dss1_setup()
1747 pc->st->l3.l3l4(pc->st, CC_SETUP | INDICATION, pc); l3dss1_setup()
1791 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_disconnect_req()
1801 l3_debug(pc->st, "D-chan connect for waiting call"); l3dss1_setup_rsp()
1826 pc->st->l3.l3l4(pc->st, CC_SETUP_COMPL | INDICATION, pc); l3dss1_connect_ack()
1852 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_reject_req()
1853 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3dss1_reject_req()
1868 l3_debug(pc->st, "REL get_cause ret(%d)", ret); l3dss1_release()
1872 l3dss1_parse_facility(pc->st, pc, pc->callref, p); l3dss1_release()
1887 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3dss1_release()
1909 pc->st->l3.l3l4(pc->st, CC_PROCEED_SEND | INDICATION, pc); l3dss1_proceed_req()
1941 cs = pc->st->l1.hardware; l3dss1_deliver_display()
1993 l3_debug(pc->st, "progress error %d", err); l3dss1_progress()
2002 pc->st->l3.l3l4(pc->st, CC_PROGRESS | INDICATION, pc); l3dss1_progress()
2034 l3_debug(pc->st, "notify error %d", err); l3dss1_notify()
2043 pc->st->l3.l3l4(pc->st, CC_NOTIFY | INDICATION, pc); l3dss1_notify()
2075 pc->st->l3.l3l4(pc->st, CC_MORE_INFO | INDICATION, pc); l3dss1_information()
2103 free_invoke_id(pc->st, pc->prot.dss1.invoke_id); l3dss1_redir_req()
2105 if (!(pc->prot.dss1.invoke_id = new_invoke_id(pc->st))) l3dss1_redir_req()
2150 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_redir_req()
2167 static int l3dss1_cmd_global(struct PStack *st, isdn_ctrl *ic) l3dss1_cmd_global() argument
2185 if (!(id = new_invoke_id(st))) l3dss1_cmd_global()
2207 if (!(pc = dss1_new_l3_process(st, -1))) l3dss1_cmd_global()
2208 { free_invoke_id(st, id); l3dss1_cmd_global()
2215 { free_invoke_id(st, id); l3dss1_cmd_global()
2226 l3_msg(st, DL_DATA | REQUEST, skb); l3dss1_cmd_global()
2231 if ((pc = l3dss1_search_dummy_proc(st, ic->parm.dss1_io.hl_id))) l3dss1_cmd_global()
2237 { l3_debug(st, "l3dss1_cmd_global abort unknown id"); l3dss1_cmd_global()
2243 l3_debug(st, "l3dss1_cmd_global unknown cmd 0x%lx", ic->arg); l3dss1_cmd_global()
2252 struct IsdnCardState *cs = pc->st->l1.hardware; l3dss1_io_timer()
2265 free_invoke_id(pc->st, pc->prot.dss1.invoke_id); l3dss1_io_timer()
2290 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3dss1_release_ind()
2294 pc->st->l3.l3l4(pc->st, CC_IGNORE | INDICATION, pc); l3dss1_release_ind()
2310 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3dss1_t302()
2323 pc->st->l3.l3l4(pc->st, CC_NOSETUP_RSP, pc); l3dss1_t303()
2335 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3dss1_t304()
2364 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_t305()
2375 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3dss1_t310()
2385 pc->st->l3.l3l4(pc->st, CC_CONNECT_ERR, pc); l3dss1_t313()
2401 pc->st->l3.l3l4(pc->st, CC_RELEASE_ERR, pc); l3dss1_t308_2()
2411 pc->st->l3.l3l4(pc->st, CC_RESUME_ERR, pc); l3dss1_t318()
2423 pc->st->l3.l3l4(pc->st, CC_SUSPEND_ERR, pc); l3dss1_t319()
2431 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3dss1_restart()
2445 l3_debug(pc->st, "STATUS get_cause ret(%d)", ret); l3dss1_status()
2472 l3_debug(pc->st, "STATUS error(%d/%d)", ret, cause); l3dss1_status()
2487 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3dss1_status()
2504 l3dss1_parse_facility(pc->st, pc, pc->callref, p); l3dss1_facility()
2525 l3_debug(pc->st, "SUS wrong CALL_ID len %d", l); l3dss1_suspend_req()
2532 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_suspend_req()
2546 pc->st->l3.l3l4(pc->st, CC_SUSPEND | CONFIRM, pc); l3dss1_suspend_ack()
2550 l3_debug(pc->st, "SUSPACK check ie(%d)", ret); l3dss1_suspend_ack()
2562 l3_debug(pc->st, "SUSP_REJ get_cause ret(%d)", ret); l3dss1_suspend_rej()
2576 pc->st->l3.l3l4(pc->st, CC_SUSPEND_ERR, pc); l3dss1_suspend_rej()
2600 l3_debug(pc->st, "RES wrong CALL_ID len %d", l); l3dss1_resume_req()
2607 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_resume_req()
2621 l3_debug(pc->st, "resume ack with wrong chid %x", id); l3dss1_resume_ack()
2629 l3_debug(pc->st, "resume ack without chid (ret %d)", id); l3dss1_resume_ack()
2640 pc->st->l3.l3l4(pc->st, CC_RESUME | CONFIRM, pc); l3dss1_resume_ack()
2654 l3_debug(pc->st, "RES_REJ get_cause ret(%d)", ret); l3dss1_resume_rej()
2668 pc->st->l3.l3l4(pc->st, CC_RESUME_ERR, pc); l3dss1_resume_rej()
2690 l3_debug(pc->st, "Restart %x", ri); l3dss1_global_restart()
2692 l3_debug(pc->st, "Restart without restart IE"); l3dss1_global_restart()
2699 if (pc->st->l3.debug) l3dss1_global_restart()
2700 l3_debug(pc->st, "Restart for channel %d", chan); l3dss1_global_restart()
2703 up = pc->st->l3.proc; l3dss1_global_restart()
2706 up->st->lli.l4l3(up->st, CC_RESTART | REQUEST, up); l3dss1_global_restart()
2708 up->st->lli.l4l3(up->st, CC_RESTART | REQUEST, up); l3dss1_global_restart()
2726 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3dss1_global_restart()
2735 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3dss1_dl_reset()
2744 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3dss1_dl_release()
2753 l3_msg(pc->st, DL_ESTABLISH | REQUEST, NULL); l3dss1_dl_reestablish()
2903 global_handler(struct PStack *st, int mt, struct sk_buff *skb) global_handler() argument
2909 struct l3_process *proc = st->l3.global; global_handler()
2917 if (st->l3.debug & L3_DEB_STATE) { global_handler()
2918 l3_debug(st, "dss1 global state %d mt %x unhandled", global_handler()
2933 l3_msg(proc->st, DL_DATA | REQUEST, skb); global_handler()
2935 if (st->l3.debug & L3_DEB_STATE) { global_handler()
2936 l3_debug(st, "dss1 global %d mt %x", global_handler()
2944 dss1up(struct PStack *st, int pr, void *arg) dss1up() argument
2960 l3_msg(st, pr, arg); dss1up()
2968 l3_debug(st, "dss1up frame too short(%d)", skb->len); dss1up()
2974 if (st->l3.debug & L3_DEB_PROTERR) { dss1up()
2975 l3_debug(st, "dss1up%sunexpected discriminator %x message len %d", dss1up()
2984 l3_debug(st, "dss1up frame too short(%d)", skb->len); dss1up()
2989 if (st->l3.debug & L3_DEB_STATE) dss1up()
2990 l3_debug(st, "dss1up cr %d", cr); dss1up()
2992 if (st->l3.debug & L3_DEB_WARN) dss1up()
2993 l3_debug(st, "dss1up wrong Callref"); dss1up()
2999 l3dss1_parse_facility(st, NULL, dss1up()
3004 if (st->l3.debug & L3_DEB_WARN) dss1up()
3005 l3_debug(st, "dss1up dummy Callref (no facility msg or ie)"); dss1up()
3010 if (st->l3.debug & L3_DEB_STATE) dss1up()
3011 l3_debug(st, "dss1up Global CallRef"); dss1up()
3012 global_handler(st, mt, skb); dss1up()
3015 } else if (!(proc = getl3proc(st, cr))) { dss1up()
3023 if (st->l3.debug & L3_DEB_STATE) dss1up()
3024 l3_debug(st, "dss1up wrong CRef flag"); dss1up()
3028 if (!(proc = dss1_new_l3_process(st, cr))) { dss1up()
3060 if ((proc = dss1_new_l3_process(st, cr))) { dss1up()
3076 if ((proc = dss1_new_l3_process(st, cr))) { dss1up()
3094 if (st->l3.debug & L3_DEB_STATE) { dss1up()
3095 l3_debug(st, "dss1up%sstate %d mt %#x unhandled", dss1up()
3104 if (st->l3.debug & L3_DEB_STATE) { dss1up()
3105 l3_debug(st, "dss1up%sstate %d mt %x", dss1up()
3116 dss1down(struct PStack *st, int pr, void *arg) dss1down() argument
3123 l3_msg(st, pr, NULL); dss1down()
3129 if ((proc = dss1_new_l3_process(st, cr))) { dss1down()
3153 if (st->l3.debug & L3_DEB_STATE) { dss1down()
3154 l3_debug(st, "dss1down state %d prim %#x unhandled", dss1down()
3158 if (st->l3.debug & L3_DEB_STATE) { dss1down()
3159 l3_debug(st, "dss1down state %d prim %#x", dss1down()
3167 dss1man(struct PStack *st, int pr, void *arg) dss1man() argument
3181 if (st->l3.debug & L3_DEB_STATE) { dss1man()
3182 l3_debug(st, "cr %d dss1man state %d prim %#x unhandled", dss1man()
3186 if (st->l3.debug & L3_DEB_STATE) { dss1man()
3187 l3_debug(st, "cr %d dss1man state %d prim %#x", dss1man()
3195 setstack_dss1(struct PStack *st) setstack_dss1() argument
3200 st->lli.l4l3 = dss1down; setstack_dss1()
3201 st->lli.l4l3_proto = l3dss1_cmd_global; setstack_dss1()
3202 st->l2.l2l3 = dss1up; setstack_dss1()
3203 st->l3.l3ml3 = dss1man; setstack_dss1()
3204 st->l3.N303 = 1; setstack_dss1()
3205 st->prot.dss1.last_invoke_id = 0; setstack_dss1()
3206 st->prot.dss1.invoke_used[0] = 1; /* Bit 0 must always be set to 1 */ setstack_dss1()
3209 st->prot.dss1.invoke_used[i++] = 0; setstack_dss1()
3211 if (!(st->l3.global = kmalloc(sizeof(struct l3_process), GFP_ATOMIC))) { setstack_dss1()
3214 st->l3.global->state = 0; setstack_dss1()
3215 st->l3.global->callref = 0; setstack_dss1()
3216 st->l3.global->next = NULL; setstack_dss1()
3217 st->l3.global->debug = L3_DEB_WARN; setstack_dss1()
3218 st->l3.global->st = st; setstack_dss1()
3219 st->l3.global->N303 = 1; setstack_dss1()
3220 st->l3.global->prot.dss1.invoke_id = 0; setstack_dss1()
3222 L3InitTimer(st->l3.global, &st->l3.global->timer); setstack_dss1()
H A Dl3ni1.c85 *ni1_new_l3_process(struct PStack *st, int cr) ni1_new_l3_process() argument
88 if (!(proc = new_l3_process(st, cr))) ni1_new_l3_process()
104 free_invoke_id(p->st, p->prot.ni1.invoke_id); ni1_release_l3_process()
112 l3ni1_search_dummy_proc(struct PStack *st, int id) l3ni1_search_dummy_proc() argument
113 { struct l3_process *pc = st->l3.proc; /* start of processes */ l3ni1_search_dummy_proc()
130 l3ni1_dummy_return_result(struct PStack *st, int id, u_char *p, u_char nlen) l3ni1_dummy_return_result() argument
135 if ((pc = l3ni1_search_dummy_proc(st, id))) l3ni1_dummy_return_result()
138 cs = pc->st->l1.hardware; l3ni1_dummy_return_result()
148 free_invoke_id(pc->st, pc->prot.ni1.invoke_id); l3ni1_dummy_return_result()
155 l3_debug(st, "dummy return result id=0x%x result len=%d", id, nlen); l3ni1_dummy_return_result()
163 l3ni1_dummy_error_return(struct PStack *st, int id, ulong error) l3ni1_dummy_error_return() argument
168 if ((pc = l3ni1_search_dummy_proc(st, id))) l3ni1_dummy_error_return()
171 cs = pc->st->l1.hardware; l3ni1_dummy_error_return()
181 free_invoke_id(pc->st, pc->prot.ni1.invoke_id); l3ni1_dummy_error_return()
188 l3_debug(st, "dummy return error id=0x%x error=0x%lx", id, error); l3ni1_dummy_error_return()
196 l3ni1_dummy_invoke(struct PStack *st, int cr, int id, l3ni1_dummy_invoke() argument
201 l3_debug(st, "dummy invoke %s id=0x%x ident=0x%x datalen=%d", l3ni1_dummy_invoke()
205 cs = st->l1.hardware; l3ni1_dummy_invoke()
220 l3ni1_parse_facility(struct PStack *st, struct l3_process *pc, l3ni1_parse_facility() argument
229 st = pc->st; /* valid Stack */ l3ni1_parse_facility()
231 if ((!st) || (cr >= 0)) return; /* neither pc nor st specified */ l3ni1_parse_facility()
236 l3_debug(st, "qd_len == 0"); l3ni1_parse_facility()
240 l3_debug(st, "supplementary service != 0x11"); l3ni1_parse_facility()
248 l3_debug(st, "qd_len < 2"); l3ni1_parse_facility()
254 l3_debug(st, "class and form != 0xA0"); l3ni1_parse_facility()
263 { l3_debug(st, "qd_len < 1"); l3ni1_parse_facility()
271 { l3_debug(st, "length format error or not implemented"); l3ni1_parse_facility()
281 { l3_debug(st, "length format indefinite error"); l3ni1_parse_facility()
292 { l3_debug(st, "qd_len < nlen"); l3ni1_parse_facility()
298 { l3_debug(st, "nlen < 2"); l3ni1_parse_facility()
303 l3_debug(st, "invoke identifier tag !=0x02"); l3ni1_parse_facility()
310 l3_debug(st, "invoke id length format 2"); l3ni1_parse_facility()
316 { l3_debug(st, "ilen > nlen || ilen == 0"); l3ni1_parse_facility()
329 l3_debug(st, "nlen < 2 22"); l3ni1_parse_facility()
333 l3_debug(st, "operation value !=0x02"); l3ni1_parse_facility()
341 l3_debug(st, "ilen > nlen || ilen == 0 22"); l3ni1_parse_facility()
353 l3ni1_dummy_invoke(st, cr, id, ident, p, nlen); l3ni1_parse_facility()
356 l3_debug(st, "invoke break"); l3ni1_parse_facility()
362 l3ni1_dummy_return_result(st, id, p, nlen); l3ni1_parse_facility()
367 free_invoke_id(st, pc->prot.ni1.invoke_id); l3ni1_parse_facility()
371 st->l3.l3l4(st, CC_REDIR | INDICATION, pc); } /* Diversion successful */ l3ni1_parse_facility()
373 l3_debug(st, "return error unknown identifier"); l3ni1_parse_facility()
378 { l3_debug(st, "return error nlen < 2"); l3ni1_parse_facility()
383 l3_debug(st, "invoke error tag !=0x02"); l3ni1_parse_facility()
390 l3_debug(st, "invoke return errlen > 4 "); l3ni1_parse_facility()
396 { l3_debug(st, "error return ilen > nlen || ilen == 0"); l3ni1_parse_facility()
407 l3ni1_dummy_error_return(st, id, err_ret); l3ni1_parse_facility()
412 free_invoke_id(st, pc->prot.ni1.invoke_id); l3ni1_parse_facility()
416 st->l3.l3l4(st, CC_REDIR | INDICATION, pc); l3ni1_parse_facility()
419 l3_debug(st, "return result unknown identifier"); l3ni1_parse_facility()
422 l3_debug(st, "facility default break tag=0x%02x", cp_tag); l3ni1_parse_facility()
437 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_message()
458 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_message_plus_chid()
479 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_message_cause()
505 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_status_send()
541 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_msg_without_setup()
690 l3_debug(pc->st, "check IE shift%scodeset %d->%d", check_infoelements()
722 l3_debug(pc->st, "check IE shift back codeset %d->%d", check_infoelements()
730 l3_debug(pc->st, "check IE MT(%x) %d/%d/%d/%d", check_infoelements()
773 l3_debug(pc->st, "l3ni1_check_messagetype_validity mt(%x) OK", mt); l3ni1_check_messagetype_validity()
779 l3_debug(pc->st, "l3ni1_check_messagetype_validity mt(%x) fail", mt); l3ni1_check_messagetype_validity()
791 l3_debug(pc->st, "check_infoelements ret %d", ret); l3ni1_std_ie_err()
822 l3_debug(pc->st, "wrong chid len %d", *p); l3ni1_get_channel_id()
828 l3_debug(pc->st, "wrong chid %x", *p); l3ni1_get_channel_id()
898 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_msg_with_uus()
921 l3_debug(pc->st, "RELCMPL get_cause ret(%d)", ret); l3ni1_release_cmpl()
926 pc->st->l3.l3l4(pc->st, CC_RELEASE | CONFIRM, pc); l3ni1_release_cmpl()
1281 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_setup_req()
1293 l3_debug(pc->st, "setup answer with wrong chid %x", id); l3ni1_call_proc()
1301 l3_debug(pc->st, "setup answer wrong chid (ret %d)", id); l3ni1_call_proc()
1320 pc->st->l3.l3l4(pc->st, CC_PROCEEDING | INDICATION, pc); l3ni1_call_proc()
1332 l3_debug(pc->st, "setup answer with wrong chid %x", id); l3ni1_setup_ack()
1340 l3_debug(pc->st, "setup answer wrong chid (ret %d)", id); l3ni1_setup_ack()
1359 pc->st->l3.l3l4(pc->st, CC_MORE_INFO | INDICATION, pc); l3ni1_setup_ack()
1373 l3_debug(pc->st, "DISC get_cause ret(%d)", ret); l3ni1_disconnect()
1380 l3ni1_parse_facility(pc->st, pc, pc->callref, p); l3ni1_disconnect()
1391 pc->st->l3.l3l4(pc->st, CC_DISCONNECT | INDICATION, pc); l3ni1_disconnect()
1417 pc->st->l3.l3l4(pc->st, CC_SETUP | CONFIRM, pc); l3ni1_connect()
1435 pc->st->l3.l3l4(pc->st, CC_ALERTING | INDICATION, pc); l3ni1_alerting()
1503 l3_debug(pc->st, "SI=%d, AI=%d", l3ni1_setup()
1507 l3_debug(pc->st, "setup with wrong bearer(l=%d:%x,%x)", l3ni1_setup()
1515 l3_debug(pc->st, "setup without bearer capabilities"); l3ni1_setup()
1528 l3_debug(pc->st, "setup with wrong chid %x", l3ni1_setup()
1537 l3_debug(pc->st, "setup without bchannel, call waiting"); l3ni1_setup()
1542 l3_debug(pc->st, "setup with wrong chid ret %d", id); l3ni1_setup()
1571 l3_debug(pc->st, "wrong called subaddress"); l3ni1_setup()
1596 l3_debug(pc->st, "wrong calling subaddress"); l3ni1_setup()
1601 pc->st->l3.l3l4(pc->st, CC_SETUP | INDICATION, pc); l3ni1_setup()
1645 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_disconnect_req()
1655 l3_debug(pc->st, "D-chan connect for waiting call"); l3ni1_setup_rsp()
1661 l3_debug(pc->st, "D-chan connect for waiting call"); l3ni1_setup_rsp()
1682 pc->st->l3.l3l4(pc->st, CC_SETUP_COMPL | INDICATION, pc); l3ni1_connect_ack()
1708 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_reject_req()
1709 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3ni1_reject_req()
1724 l3_debug(pc->st, "REL get_cause ret(%d)", ret); l3ni1_release()
1728 l3ni1_parse_facility(pc->st, pc, pc->callref, p); l3ni1_release()
1743 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3ni1_release()
1765 pc->st->l3.l3l4(pc->st, CC_PROCEED_SEND | INDICATION, pc); l3ni1_proceed_req()
1797 cs = pc->st->l1.hardware; l3ni1_deliver_display()
1849 l3_debug(pc->st, "progress error %d", err); l3ni1_progress()
1858 pc->st->l3.l3l4(pc->st, CC_PROGRESS | INDICATION, pc); l3ni1_progress()
1890 l3_debug(pc->st, "notify error %d", err); l3ni1_notify()
1899 pc->st->l3.l3l4(pc->st, CC_NOTIFY | INDICATION, pc); l3ni1_notify()
1931 pc->st->l3.l3l4(pc->st, CC_MORE_INFO | INDICATION, pc); l3ni1_information()
1959 free_invoke_id(pc->st, pc->prot.ni1.invoke_id); l3ni1_redir_req()
1961 if (!(pc->prot.ni1.invoke_id = new_invoke_id(pc->st))) l3ni1_redir_req()
2006 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_redir_req()
2023 static int l3ni1_cmd_global(struct PStack *st, isdn_ctrl *ic) l3ni1_cmd_global() argument
2041 if (!(id = new_invoke_id(st))) l3ni1_cmd_global()
2063 pc = ni1_new_l3_process(st, -1); l3ni1_cmd_global()
2065 free_invoke_id(st, id); l3ni1_cmd_global()
2075 { free_invoke_id(st, id); l3ni1_cmd_global()
2086 l3_msg(st, DL_DATA | REQUEST, skb); l3ni1_cmd_global()
2091 if ((pc = l3ni1_search_dummy_proc(st, ic->parm.ni1_io.hl_id))) l3ni1_cmd_global()
2097 { l3_debug(st, "l3ni1_cmd_global abort unknown id"); l3ni1_cmd_global()
2103 l3_debug(st, "l3ni1_cmd_global unknown cmd 0x%lx", ic->arg); l3ni1_cmd_global()
2112 struct IsdnCardState *cs = pc->st->l1.hardware; l3ni1_io_timer()
2125 free_invoke_id(pc->st, pc->prot.ni1.invoke_id); l3ni1_io_timer()
2150 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3ni1_release_ind()
2154 pc->st->l3.l3l4(pc->st, CC_IGNORE | INDICATION, pc); l3ni1_release_ind()
2170 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3ni1_t302()
2183 pc->st->l3.l3l4(pc->st, CC_NOSETUP_RSP, pc); l3ni1_t303()
2195 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3ni1_t304()
2224 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_t305()
2235 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3ni1_t310()
2245 pc->st->l3.l3l4(pc->st, CC_CONNECT_ERR, pc); l3ni1_t313()
2261 pc->st->l3.l3l4(pc->st, CC_RELEASE_ERR, pc); l3ni1_t308_2()
2271 pc->st->l3.l3l4(pc->st, CC_RESUME_ERR, pc); l3ni1_t318()
2283 pc->st->l3.l3l4(pc->st, CC_SUSPEND_ERR, pc); l3ni1_t319()
2291 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3ni1_restart()
2305 l3_debug(pc->st, "STATUS get_cause ret(%d)", ret); l3ni1_status()
2332 l3_debug(pc->st, "STATUS error(%d/%d)", ret, cause); l3ni1_status()
2347 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3ni1_status()
2364 l3ni1_parse_facility(pc->st, pc, pc->callref, p); l3ni1_facility()
2385 l3_debug(pc->st, "SUS wrong CALL_ID len %d", l); l3ni1_suspend_req()
2392 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_suspend_req()
2406 pc->st->l3.l3l4(pc->st, CC_SUSPEND | CONFIRM, pc); l3ni1_suspend_ack()
2410 l3_debug(pc->st, "SUSPACK check ie(%d)", ret); l3ni1_suspend_ack()
2422 l3_debug(pc->st, "SUSP_REJ get_cause ret(%d)", ret); l3ni1_suspend_rej()
2436 pc->st->l3.l3l4(pc->st, CC_SUSPEND_ERR, pc); l3ni1_suspend_rej()
2460 l3_debug(pc->st, "RES wrong CALL_ID len %d", l); l3ni1_resume_req()
2467 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_resume_req()
2481 l3_debug(pc->st, "resume ack with wrong chid %x", id); l3ni1_resume_ack()
2489 l3_debug(pc->st, "resume ack without chid (ret %d)", id); l3ni1_resume_ack()
2500 pc->st->l3.l3l4(pc->st, CC_RESUME | CONFIRM, pc); l3ni1_resume_ack()
2514 l3_debug(pc->st, "RES_REJ get_cause ret(%d)", ret); l3ni1_resume_rej()
2528 pc->st->l3.l3l4(pc->st, CC_RESUME_ERR, pc); l3ni1_resume_rej()
2550 l3_debug(pc->st, "Restart %x", ri); l3ni1_global_restart()
2552 l3_debug(pc->st, "Restart without restart IE"); l3ni1_global_restart()
2559 if (pc->st->l3.debug) l3ni1_global_restart()
2560 l3_debug(pc->st, "Restart for channel %d", chan); l3ni1_global_restart()
2563 up = pc->st->l3.proc; l3ni1_global_restart()
2566 up->st->lli.l4l3(up->st, CC_RESTART | REQUEST, up); l3ni1_global_restart()
2568 up->st->lli.l4l3(up->st, CC_RESTART | REQUEST, up); l3ni1_global_restart()
2587 l3_msg(pc->st, DL_DATA | REQUEST, skb); l3ni1_global_restart()
2596 pc->st->l3.l3l4(pc->st, CC_SETUP_ERR, pc); l3ni1_dl_reset()
2605 pc->st->l3.l3l4(pc->st, CC_RELEASE | INDICATION, pc); l3ni1_dl_release()
2614 l3_msg(pc->st, DL_ESTABLISH | REQUEST, NULL); l3ni1_dl_reestablish()
2630 struct Channel *pChan = pc->st->lli.userdata; l3ni1_SendSpid()
2640 pc->st->l3.l3l2(pc->st, DL_RELEASE | REQUEST, NULL); l3ni1_SendSpid()
2665 pc->st->l3.l3l2(pc->st, DL_DATA | REQUEST, skb); l3ni1_SendSpid()
2682 l3_msg(pc->st, DL_ESTABLISH | CONFIRM, NULL); l3ni1_spid_epid()
2698 pc->st->l3.l3l2(pc->st, DL_RELEASE | REQUEST, NULL); l3ni1_spid_tout()
2844 global_handler(struct PStack *st, int mt, struct sk_buff *skb) global_handler() argument
2850 struct l3_process *proc = st->l3.global; global_handler()
2861 if (st->l3.debug & L3_DEB_STATE) { global_handler()
2862 l3_debug(st, "ni1 global state %d mt %x unhandled", global_handler()
2877 l3_msg(proc->st, DL_DATA | REQUEST, skb); global_handler()
2879 if (st->l3.debug & L3_DEB_STATE) { global_handler()
2880 l3_debug(st, "ni1 global %d mt %x", global_handler()
2888 ni1up(struct PStack *st, int pr, void *arg) ni1up() argument
2903 l3_msg(st, pr, arg); ni1up()
2908 global_handler(st, MT_DL_ESTABLISHED, NULL); ni1up()
2916 l3_debug(st, "ni1up frame too short(%d)", skb->len); ni1up()
2922 if (st->l3.debug & L3_DEB_PROTERR) { ni1up()
2923 l3_debug(st, "ni1up%sunexpected discriminator %x message len %d", ni1up()
2932 l3_debug(st, "ni1up frame too short(%d)", skb->len); ni1up()
2937 if (st->l3.debug & L3_DEB_STATE) ni1up()
2938 l3_debug(st, "ni1up cr %d", cr); ni1up()
2940 if (st->l3.debug & L3_DEB_WARN) ni1up()
2941 l3_debug(st, "ni1up wrong Callref"); ni1up()
2948 l3ni1_parse_facility(st, NULL, ni1up()
2956 global_handler(st, mt, skb); ni1up()
2960 if (st->l3.debug & L3_DEB_WARN) ni1up()
2961 l3_debug(st, "ni1up dummy Callref (no facility msg or ie)"); ni1up()
2966 if (st->l3.debug & L3_DEB_STATE) ni1up()
2967 l3_debug(st, "ni1up Global CallRef"); ni1up()
2968 global_handler(st, mt, skb); ni1up()
2971 } else if (!(proc = getl3proc(st, cr))) { ni1up()
2979 if (st->l3.debug & L3_DEB_STATE) ni1up()
2980 l3_debug(st, "ni1up wrong CRef flag"); ni1up()
2984 if (!(proc = ni1_new_l3_process(st, cr))) { ni1up()
3016 if ((proc = ni1_new_l3_process(st, cr))) { ni1up()
3032 if ((proc = ni1_new_l3_process(st, cr))) { ni1up()
3050 if (st->l3.debug & L3_DEB_STATE) { ni1up()
3051 l3_debug(st, "ni1up%sstate %d mt %#x unhandled", ni1up()
3060 if (st->l3.debug & L3_DEB_STATE) { ni1up()
3061 l3_debug(st, "ni1up%sstate %d mt %x", ni1up()
3072 ni1down(struct PStack *st, int pr, void *arg) ni1down() argument
3079 l3_msg(st, pr, NULL); ni1down()
3085 if ((proc = ni1_new_l3_process(st, cr))) { ni1down()
3109 if (st->l3.debug & L3_DEB_STATE) { ni1down()
3110 l3_debug(st, "ni1down state %d prim %#x unhandled", ni1down()
3114 if (st->l3.debug & L3_DEB_STATE) { ni1down()
3115 l3_debug(st, "ni1down state %d prim %#x", ni1down()
3123 ni1man(struct PStack *st, int pr, void *arg) ni1man() argument
3137 if (st->l3.debug & L3_DEB_STATE) { ni1man()
3138 l3_debug(st, "cr %d ni1man state %d prim %#x unhandled", ni1man()
3142 if (st->l3.debug & L3_DEB_STATE) { ni1man()
3143 l3_debug(st, "cr %d ni1man state %d prim %#x", ni1man()
3151 setstack_ni1(struct PStack *st) setstack_ni1() argument
3156 st->lli.l4l3 = ni1down; setstack_ni1()
3157 st->lli.l4l3_proto = l3ni1_cmd_global; setstack_ni1()
3158 st->l2.l2l3 = ni1up; setstack_ni1()
3159 st->l3.l3ml3 = ni1man; setstack_ni1()
3160 st->l3.N303 = 1; setstack_ni1()
3161 st->prot.ni1.last_invoke_id = 0; setstack_ni1()
3162 st->prot.ni1.invoke_used[0] = 1; /* Bit 0 must always be set to 1 */ setstack_ni1()
3165 st->prot.ni1.invoke_used[i++] = 0; setstack_ni1()
3167 if (!(st->l3.global = kmalloc(sizeof(struct l3_process), GFP_ATOMIC))) { setstack_ni1()
3170 st->l3.global->state = 0; setstack_ni1()
3171 st->l3.global->callref = 0; setstack_ni1()
3172 st->l3.global->next = NULL; setstack_ni1()
3173 st->l3.global->debug = L3_DEB_WARN; setstack_ni1()
3174 st->l3.global->st = st; setstack_ni1()
3175 st->l3.global->N303 = 1; setstack_ni1()
3176 st->l3.global->prot.ni1.invoke_id = 0; setstack_ni1()
3178 L3InitTimer(st->l3.global, &st->l3.global->timer); setstack_ni1()
H A Dhscx.c96 hscx_l2l1(struct PStack *st, int pr, void *arg) hscx_l2l1() argument
98 struct BCState *bcs = st->l1.bcs; hscx_l2l1()
129 test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags); hscx_l2l1()
130 st->l1.l1l2(st, PH_PULL | CONFIRM, NULL); hscx_l2l1()
132 test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags); hscx_l2l1()
137 modehscx(bcs, st->l1.mode, st->l1.bc); hscx_l2l1()
139 l1_msg_b(st, pr, arg); hscx_l2l1()
142 l1_msg_b(st, pr, arg); hscx_l2l1()
148 modehscx(bcs, 0, st->l1.bc); hscx_l2l1()
150 st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL); hscx_l2l1()
204 setstack_hscx(struct PStack *st, struct BCState *bcs) setstack_hscx() argument
206 bcs->channel = st->l1.bc; setstack_hscx()
207 if (open_hscxstate(st->l1.hardware, bcs)) setstack_hscx()
209 st->l1.bcs = bcs; setstack_hscx()
210 st->l2.l2l1 = hscx_l2l1; setstack_hscx()
211 setstack_manager(st); setstack_hscx()
212 bcs->st = st; setstack_hscx()
213 setstack_l1_B(st); setstack_hscx()
H A Djade.c131 jade_l2l1(struct PStack *st, int pr, void *arg) jade_l2l1() argument
133 struct BCState *bcs = st->l1.bcs; jade_l2l1()
164 test_and_clear_bit(FLG_L1_PULL_REQ, &st->l1.Flags); jade_l2l1()
165 st->l1.l1l2(st, PH_PULL | CONFIRM, NULL); jade_l2l1()
167 test_and_set_bit(FLG_L1_PULL_REQ, &st->l1.Flags); jade_l2l1()
172 modejade(bcs, st->l1.mode, st->l1.bc); jade_l2l1()
174 l1_msg_b(st, pr, arg); jade_l2l1()
177 l1_msg_b(st, pr, arg); jade_l2l1()
183 modejade(bcs, 0, st->l1.bc); jade_l2l1()
185 st->l1.l1l2(st, PH_DEACTIVATE | CONFIRM, NULL); jade_l2l1()
240 setstack_jade(struct PStack *st, struct BCState *bcs) setstack_jade() argument
242 bcs->channel = st->l1.bc; setstack_jade()
243 if (open_jadestate(st->l1.hardware, bcs)) setstack_jade()
245 st->l1.bcs = bcs; setstack_jade()
246 st->l2.l2l1 = jade_l2l1; setstack_jade()
247 setstack_manager(st); setstack_jade()
248 bcs->st = st; setstack_jade()
249 setstack_l1_B(st); setstack_jade()
H A Dcallc.c856 struct PStack *st = chanp->b_st; release_b_st() local
862 releasestack_isdnl2(st); release_b_st()
869 releasestack_transl2(st); release_b_st()
876 *selectfreechannel(struct PStack *st, int bch) selectfreechannel() argument
878 struct IsdnCardState *cs = st->l1.hardware; selectfreechannel()
879 struct Channel *chanp = st->lli.userdata; selectfreechannel()
901 chanp = st->lli.userdata; selectfreechannel()
924 dchan_l3l4(struct PStack *st, int pr, void *arg) dchan_l3l4() argument
927 struct IsdnCardState *cs = st->l1.hardware; dchan_l3l4()
934 if (!(chanp = selectfreechannel(pc->st, pc->para.bchannel))) { dchan_l3l4()
936 pc->st->lli.l4l3(pc->st, CC_REJECT | REQUEST, pc); dchan_l3l4()
1009 dummy_pstack(struct PStack *st, int pr, void *arg) { dummy_pstack() argument
1036 struct PStack *st; init_d_st() local
1044 st = chanp->d_st; init_d_st()
1045 st->next = NULL; init_d_st()
1046 HiSax_addlist(cs, st); init_d_st()
1047 setstack_HiSax(st, cs); init_d_st()
1048 st->l2.sap = 0; init_d_st()
1049 st->l2.tei = -1; init_d_st()
1050 st->l2.flag = 0; init_d_st()
1051 test_and_set_bit(FLG_MOD128, &st->l2.flag); init_d_st()
1052 test_and_set_bit(FLG_LAPD, &st->l2.flag); init_d_st()
1053 test_and_set_bit(FLG_ORIG, &st->l2.flag); init_d_st()
1054 st->l2.maxlen = MAX_DFRAME_LEN; init_d_st()
1055 st->l2.window = 1; init_d_st()
1056 st->l2.T200 = 1000; /* 1000 milliseconds */ init_d_st()
1057 st->l2.N200 = 3; /* try 3 times */ init_d_st()
1058 st->l2.T203 = 10000; /* 10000 milliseconds */ init_d_st()
1063 setstack_isdnl2(st, tmp); init_d_st()
1064 setstack_l3dc(st, chanp); init_d_st()
1065 st->lli.userdata = chanp; init_d_st()
1066 st->l3.l3l4 = dchan_l3l4; init_d_st()
1149 struct PStack *st = chanp->d_st; release_d_st() local
1151 if (!st) release_d_st()
1153 releasestack_isdnl2(st); release_d_st()
1154 releasestack_isdnl3(st); release_d_st()
1155 HiSax_rmlist(st->l1.hardware, st); release_d_st()
1156 kfree(st); release_d_st()
1184 lldata_handler(struct PStack *st, int pr, void *arg) lldata_handler() argument
1186 struct Channel *chanp = (struct Channel *) st->lli.userdata; lldata_handler()
1216 lltrans_handler(struct PStack *st, int pr, void *arg) lltrans_handler() argument
1218 struct Channel *chanp = (struct Channel *) st->lli.userdata; lltrans_handler()
1248 lli_writewakeup(struct PStack *st, int len) lli_writewakeup() argument
1250 struct Channel *chanp = st->lli.userdata; lli_writewakeup()
1265 struct PStack *st = chanp->b_st; init_b_st() local
1269 st->l1.hardware = cs; init_b_st()
1271 st->l1.bc = chanp->chan & 1; init_b_st()
1273 st->l1.bc = chanp->proc->para.bchannel - 1; init_b_st()
1277 st->l1.mode = L1_MODE_HDLC; init_b_st()
1280 st->l1.mode = L1_MODE_HDLC_56K; init_b_st()
1283 st->l1.mode = L1_MODE_TRANS; init_b_st()
1286 st->l1.mode = L1_MODE_V32; init_b_st()
1289 st->l1.mode = L1_MODE_FAX; init_b_st()
1293 if (chanp->bcs->BC_SetStack(st, chanp->bcs)) init_b_st()
1295 st->l2.flag = 0; init_b_st()
1296 test_and_set_bit(FLG_LAPB, &st->l2.flag); init_b_st()
1297 st->l2.maxlen = MAX_DATA_SIZE; init_b_st()
1299 test_and_set_bit(FLG_ORIG, &st->l2.flag); init_b_st()
1300 st->l2.T200 = 1000; /* 1000 milliseconds */ init_b_st()
1301 st->l2.window = 7; init_b_st()
1302 st->l2.N200 = 4; /* try 4 times */ init_b_st()
1303 st->l2.T203 = 5000; /* 5000 milliseconds */ init_b_st()
1304 st->l3.debug = 0; init_b_st()
1308 setstack_isdnl2(st, tmp); init_b_st()
1309 setstack_l3bc(st, chanp); init_b_st()
1310 st->l2.l2l3 = lldata_handler; init_b_st()
1311 st->lli.userdata = chanp; init_b_st()
1312 test_and_clear_bit(FLG_LLI_L1WAKEUP, &st->lli.flag); init_b_st()
1313 test_and_set_bit(FLG_LLI_L2WAKEUP, &st->lli.flag); init_b_st()
1314 st->l2.l2m.debug = chanp->debug & 16; init_b_st()
1315 st->l2.debug = chanp->debug & 64; init_b_st()
1322 st->l1.l1l2 = lltrans_handler; init_b_st()
1323 st->lli.userdata = chanp; init_b_st()
1324 test_and_set_bit(FLG_LLI_L1WAKEUP, &st->lli.flag); init_b_st()
1325 test_and_clear_bit(FLG_LLI_L2WAKEUP, &st->lli.flag); init_b_st()
1326 setstack_transl2(st); init_b_st()
1327 setstack_l3bc(st, chanp); init_b_st()
1335 leased_l4l3(struct PStack *st, int pr, void *arg) leased_l4l3() argument
1337 struct Channel *chanp = (struct Channel *) st->lli.userdata; leased_l4l3()
1346 st->l2.l2l1(st, PH_ACTIVATE | REQUEST, NULL); leased_l4l3()
1358 leased_l1l2(struct PStack *st, int pr, void *arg) leased_l1l2() argument
1360 struct Channel *chanp = (struct Channel *) st->lli.userdata; leased_l1l2()
1498 struct PStack *st; HiSax_command() local
1726 for (st = csta->stlist; st; st = st->next) HiSax_command()
1727 if (st->protocol == (ic->arg & 0xFF)) HiSax_command()
1728 return (st->lli.l4l3_proto(st, ic)); HiSax_command()
1744 struct PStack *st; HiSax_writebuf_skb() local
1754 st = chanp->b_st; HiSax_writebuf_skb()
1781 st->l3.l3l2(st, DL_DATA | REQUEST, nskb); HiSax_writebuf_skb()
1784 st->l2.l2l1(st, PH_DATA | REQUEST, nskb); HiSax_writebuf_skb()
/linux-4.1.27/drivers/staging/iio/frequency/
H A Dad9832.c33 static int ad9832_write_frequency(struct ad9832_state *st, ad9832_write_frequency() argument
38 if (fout > (st->mclk / 2)) ad9832_write_frequency()
41 regval = ad9832_calc_freqreg(st->mclk, fout); ad9832_write_frequency()
43 st->freq_data[0] = cpu_to_be16((AD9832_CMD_FRE8BITSW << CMD_SHIFT) | ad9832_write_frequency()
46 st->freq_data[1] = cpu_to_be16((AD9832_CMD_FRE16BITSW << CMD_SHIFT) | ad9832_write_frequency()
49 st->freq_data[2] = cpu_to_be16((AD9832_CMD_FRE8BITSW << CMD_SHIFT) | ad9832_write_frequency()
52 st->freq_data[3] = cpu_to_be16((AD9832_CMD_FRE16BITSW << CMD_SHIFT) | ad9832_write_frequency()
56 return spi_sync(st->spi, &st->freq_msg); ad9832_write_frequency()
59 static int ad9832_write_phase(struct ad9832_state *st, ad9832_write_phase() argument
65 st->phase_data[0] = cpu_to_be16((AD9832_CMD_PHA8BITSW << CMD_SHIFT) | ad9832_write_phase()
68 st->phase_data[1] = cpu_to_be16((AD9832_CMD_PHA16BITSW << CMD_SHIFT) | ad9832_write_phase()
72 return spi_sync(st->spi, &st->phase_msg); ad9832_write_phase()
79 struct ad9832_state *st = iio_priv(indio_dev); ad9832_write() local
92 ret = ad9832_write_frequency(st, this_attr->address, val); ad9832_write()
98 ret = ad9832_write_phase(st, this_attr->address, val); ad9832_write()
102 st->ctrl_ss &= ~AD9832_SELSRC; ad9832_write()
104 st->ctrl_ss |= AD9832_SELSRC; ad9832_write()
105 st->data = cpu_to_be16((AD9832_CMD_SYNCSELSRC << CMD_SHIFT) | ad9832_write()
106 st->ctrl_ss); ad9832_write()
107 ret = spi_sync(st->spi, &st->msg); ad9832_write()
111 st->ctrl_fp |= AD9832_FREQ; ad9832_write()
113 st->ctrl_fp &= ~AD9832_FREQ; ad9832_write()
118 st->data = cpu_to_be16((AD9832_CMD_FPSELECT << CMD_SHIFT) | ad9832_write()
119 st->ctrl_fp); ad9832_write()
120 ret = spi_sync(st->spi, &st->msg); ad9832_write()
128 st->ctrl_fp &= ~AD9832_PHASE(3); ad9832_write()
129 st->ctrl_fp |= AD9832_PHASE(val); ad9832_write()
131 st->data = cpu_to_be16((AD9832_CMD_FPSELECT << CMD_SHIFT) | ad9832_write()
132 st->ctrl_fp); ad9832_write()
133 ret = spi_sync(st->spi, &st->msg); ad9832_write()
137 st->ctrl_src &= ~(AD9832_RESET | AD9832_SLEEP | ad9832_write()
140 st->ctrl_src |= AD9832_RESET; ad9832_write()
142 st->data = cpu_to_be16((AD9832_CMD_SLEEPRESCLR << CMD_SHIFT) | ad9832_write()
143 st->ctrl_src); ad9832_write()
144 ret = spi_sync(st->spi, &st->msg); ad9832_write()
206 struct ad9832_state *st; ad9832_probe() local
222 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad9832_probe()
228 st = iio_priv(indio_dev); ad9832_probe()
229 st->reg = reg; ad9832_probe()
230 st->mclk = pdata->mclk; ad9832_probe()
231 st->spi = spi; ad9832_probe()
240 st->xfer.tx_buf = &st->data; ad9832_probe()
241 st->xfer.len = 2; ad9832_probe()
243 spi_message_init(&st->msg); ad9832_probe()
244 spi_message_add_tail(&st->xfer, &st->msg); ad9832_probe()
246 st->freq_xfer[0].tx_buf = &st->freq_data[0]; ad9832_probe()
247 st->freq_xfer[0].len = 2; ad9832_probe()
248 st->freq_xfer[0].cs_change = 1; ad9832_probe()
249 st->freq_xfer[1].tx_buf = &st->freq_data[1]; ad9832_probe()
250 st->freq_xfer[1].len = 2; ad9832_probe()
251 st->freq_xfer[1].cs_change = 1; ad9832_probe()
252 st->freq_xfer[2].tx_buf = &st->freq_data[2]; ad9832_probe()
253 st->freq_xfer[2].len = 2; ad9832_probe()
254 st->freq_xfer[2].cs_change = 1; ad9832_probe()
255 st->freq_xfer[3].tx_buf = &st->freq_data[3]; ad9832_probe()
256 st->freq_xfer[3].len = 2; ad9832_probe()
258 spi_message_init(&st->freq_msg); ad9832_probe()
259 spi_message_add_tail(&st->freq_xfer[0], &st->freq_msg); ad9832_probe()
260 spi_message_add_tail(&st->freq_xfer[1], &st->freq_msg); ad9832_probe()
261 spi_message_add_tail(&st->freq_xfer[2], &st->freq_msg); ad9832_probe()
262 spi_message_add_tail(&st->freq_xfer[3], &st->freq_msg); ad9832_probe()
264 st->phase_xfer[0].tx_buf = &st->phase_data[0]; ad9832_probe()
265 st->phase_xfer[0].len = 2; ad9832_probe()
266 st->phase_xfer[0].cs_change = 1; ad9832_probe()
267 st->phase_xfer[1].tx_buf = &st->phase_data[1]; ad9832_probe()
268 st->phase_xfer[1].len = 2; ad9832_probe()
270 spi_message_init(&st->phase_msg); ad9832_probe()
271 spi_message_add_tail(&st->phase_xfer[0], &st->phase_msg); ad9832_probe()
272 spi_message_add_tail(&st->phase_xfer[1], &st->phase_msg); ad9832_probe()
274 st->ctrl_src = AD9832_SLEEP | AD9832_RESET | AD9832_CLR; ad9832_probe()
275 st->data = cpu_to_be16((AD9832_CMD_SLEEPRESCLR << CMD_SHIFT) | ad9832_probe()
276 st->ctrl_src); ad9832_probe()
277 ret = spi_sync(st->spi, &st->msg); ad9832_probe()
283 ret = ad9832_write_frequency(st, AD9832_FREQ0HM, pdata->freq0); ad9832_probe()
287 ret = ad9832_write_frequency(st, AD9832_FREQ1HM, pdata->freq1); ad9832_probe()
291 ret = ad9832_write_phase(st, AD9832_PHASE0H, pdata->phase0); ad9832_probe()
295 ret = ad9832_write_phase(st, AD9832_PHASE1H, pdata->phase1); ad9832_probe()
299 ret = ad9832_write_phase(st, AD9832_PHASE2H, pdata->phase2); ad9832_probe()
303 ret = ad9832_write_phase(st, AD9832_PHASE3H, pdata->phase3); ad9832_probe()
323 struct ad9832_state *st = iio_priv(indio_dev); ad9832_remove() local
326 if (!IS_ERR(st->reg)) ad9832_remove()
327 regulator_disable(st->reg); ad9832_remove()
H A Dad9834.c36 static int ad9834_write_frequency(struct ad9834_state *st, ad9834_write_frequency() argument
41 if (fout > (st->mclk / 2)) ad9834_write_frequency()
44 regval = ad9834_calc_freqreg(st->mclk, fout); ad9834_write_frequency()
46 st->freq_data[0] = cpu_to_be16(addr | (regval & ad9834_write_frequency()
48 st->freq_data[1] = cpu_to_be16(addr | ((regval >> ad9834_write_frequency()
52 return spi_sync(st->spi, &st->freq_msg); ad9834_write_frequency()
55 static int ad9834_write_phase(struct ad9834_state *st, ad9834_write_phase() argument
60 st->data = cpu_to_be16(addr | phase); ad9834_write_phase()
62 return spi_sync(st->spi, &st->msg); ad9834_write_phase()
71 struct ad9834_state *st = iio_priv(indio_dev); ad9834_write() local
84 ret = ad9834_write_frequency(st, this_attr->address, val); ad9834_write()
88 ret = ad9834_write_phase(st, this_attr->address, val); ad9834_write()
91 if (st->control & AD9834_MODE) { ad9834_write()
97 st->control |= AD9834_OPBITEN; ad9834_write()
99 st->control &= ~AD9834_OPBITEN; ad9834_write()
101 st->data = cpu_to_be16(AD9834_REG_CMD | st->control); ad9834_write()
102 ret = spi_sync(st->spi, &st->msg); ad9834_write()
106 st->control |= AD9834_PIN_SW; ad9834_write()
108 st->control &= ~AD9834_PIN_SW; ad9834_write()
109 st->data = cpu_to_be16(AD9834_REG_CMD | st->control); ad9834_write()
110 ret = spi_sync(st->spi, &st->msg); ad9834_write()
115 st->control &= ~(this_attr->address | AD9834_PIN_SW); ad9834_write()
117 st->control |= this_attr->address; ad9834_write()
118 st->control &= ~AD9834_PIN_SW; ad9834_write()
123 st->data = cpu_to_be16(AD9834_REG_CMD | st->control); ad9834_write()
124 ret = spi_sync(st->spi, &st->msg); ad9834_write()
128 st->control &= ~AD9834_RESET; ad9834_write()
130 st->control |= AD9834_RESET; ad9834_write()
132 st->data = cpu_to_be16(AD9834_REG_CMD | st->control); ad9834_write()
133 ret = spi_sync(st->spi, &st->msg); ad9834_write()
150 struct ad9834_state *st = iio_priv(indio_dev); ad9834_store_wavetype() local
153 bool is_ad9833_7 = (st->devid == ID_AD9833) || (st->devid == ID_AD9837); ad9834_store_wavetype()
160 st->control &= ~AD9834_MODE; ad9834_store_wavetype()
162 st->control &= ~AD9834_OPBITEN; ad9834_store_wavetype()
165 st->control &= ~AD9834_OPBITEN; ad9834_store_wavetype()
166 st->control |= AD9834_MODE; ad9834_store_wavetype()
167 } else if (st->control & AD9834_OPBITEN) { ad9834_store_wavetype()
170 st->control |= AD9834_MODE; ad9834_store_wavetype()
173 st->control &= ~AD9834_MODE; ad9834_store_wavetype()
174 st->control |= AD9834_OPBITEN; ad9834_store_wavetype()
182 !(st->control & AD9834_MODE)) { ad9834_store_wavetype()
183 st->control &= ~AD9834_MODE; ad9834_store_wavetype()
184 st->control |= AD9834_OPBITEN; ad9834_store_wavetype()
195 st->data = cpu_to_be16(AD9834_REG_CMD | st->control); ad9834_store_wavetype()
196 ret = spi_sync(st->spi, &st->msg); ad9834_store_wavetype()
209 struct ad9834_state *st = iio_priv(indio_dev); ad9834_show_out0_wavetype_available() local
212 if ((st->devid == ID_AD9833) || (st->devid == ID_AD9837)) ad9834_show_out0_wavetype_available()
214 else if (st->control & AD9834_OPBITEN) ad9834_show_out0_wavetype_available()
231 struct ad9834_state *st = iio_priv(indio_dev); ad9834_show_out1_wavetype_available() local
234 if (st->control & AD9834_MODE) ad9834_show_out1_wavetype_available()
322 struct ad9834_state *st; ad9834_probe() local
339 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad9834_probe()
345 st = iio_priv(indio_dev); ad9834_probe()
346 st->mclk = pdata->mclk; ad9834_probe()
347 st->spi = spi; ad9834_probe()
348 st->devid = spi_get_device_id(spi)->driver_data; ad9834_probe()
349 st->reg = reg; ad9834_probe()
352 switch (st->devid) { ad9834_probe()
365 st->xfer.tx_buf = &st->data; ad9834_probe()
366 st->xfer.len = 2; ad9834_probe()
368 spi_message_init(&st->msg); ad9834_probe()
369 spi_message_add_tail(&st->xfer, &st->msg); ad9834_probe()
371 st->freq_xfer[0].tx_buf = &st->freq_data[0]; ad9834_probe()
372 st->freq_xfer[0].len = 2; ad9834_probe()
373 st->freq_xfer[0].cs_change = 1; ad9834_probe()
374 st->freq_xfer[1].tx_buf = &st->freq_data[1]; ad9834_probe()
375 st->freq_xfer[1].len = 2; ad9834_probe()
377 spi_message_init(&st->freq_msg); ad9834_probe()
378 spi_message_add_tail(&st->freq_xfer[0], &st->freq_msg); ad9834_probe()
379 spi_message_add_tail(&st->freq_xfer[1], &st->freq_msg); ad9834_probe()
381 st->control = AD9834_B28 | AD9834_RESET; ad9834_probe()
384 st->control |= AD9834_DIV2; ad9834_probe()
386 if (!pdata->en_signbit_msb_out && (st->devid == ID_AD9834)) ad9834_probe()
387 st->control |= AD9834_SIGN_PIB; ad9834_probe()
389 st->data = cpu_to_be16(AD9834_REG_CMD | st->control); ad9834_probe()
390 ret = spi_sync(st->spi, &st->msg); ad9834_probe()
396 ret = ad9834_write_frequency(st, AD9834_REG_FREQ0, pdata->freq0); ad9834_probe()
400 ret = ad9834_write_frequency(st, AD9834_REG_FREQ1, pdata->freq1); ad9834_probe()
404 ret = ad9834_write_phase(st, AD9834_REG_PHASE0, pdata->phase0); ad9834_probe()
408 ret = ad9834_write_phase(st, AD9834_REG_PHASE1, pdata->phase1); ad9834_probe()
428 struct ad9834_state *st = iio_priv(indio_dev); ad9834_remove() local
431 if (!IS_ERR(st->reg)) ad9834_remove()
432 regulator_disable(st->reg); ad9834_remove()
/linux-4.1.27/fs/
H A Dstatfs.c77 int user_statfs(const char __user *pathname, struct kstatfs *st) user_statfs() argument
85 error = vfs_statfs(&path, st); user_statfs()
95 int fd_statfs(int fd, struct kstatfs *st) fd_statfs() argument
100 error = vfs_statfs(&f.file->f_path, st); fd_statfs()
106 static int do_statfs_native(struct kstatfs *st, struct statfs __user *p) do_statfs_native() argument
110 if (sizeof(buf) == sizeof(*st)) do_statfs_native()
111 memcpy(&buf, st, sizeof(*st)); do_statfs_native()
114 if ((st->f_blocks | st->f_bfree | st->f_bavail | do_statfs_native()
115 st->f_bsize | st->f_frsize) & do_statfs_native()
122 if (st->f_files != -1 && do_statfs_native()
123 (st->f_files & 0xffffffff00000000ULL)) do_statfs_native()
125 if (st->f_ffree != -1 && do_statfs_native()
126 (st->f_ffree & 0xffffffff00000000ULL)) do_statfs_native()
130 buf.f_type = st->f_type; do_statfs_native()
131 buf.f_bsize = st->f_bsize; do_statfs_native()
132 buf.f_blocks = st->f_blocks; do_statfs_native()
133 buf.f_bfree = st->f_bfree; do_statfs_native()
134 buf.f_bavail = st->f_bavail; do_statfs_native()
135 buf.f_files = st->f_files; do_statfs_native()
136 buf.f_ffree = st->f_ffree; do_statfs_native()
137 buf.f_fsid = st->f_fsid; do_statfs_native()
138 buf.f_namelen = st->f_namelen; do_statfs_native()
139 buf.f_frsize = st->f_frsize; do_statfs_native()
140 buf.f_flags = st->f_flags; do_statfs_native()
148 static int do_statfs64(struct kstatfs *st, struct statfs64 __user *p) do_statfs64() argument
151 if (sizeof(buf) == sizeof(*st)) do_statfs64()
152 memcpy(&buf, st, sizeof(*st)); do_statfs64()
154 buf.f_type = st->f_type; do_statfs64()
155 buf.f_bsize = st->f_bsize; do_statfs64()
156 buf.f_blocks = st->f_blocks; do_statfs64()
157 buf.f_bfree = st->f_bfree; do_statfs64()
158 buf.f_bavail = st->f_bavail; do_statfs64()
159 buf.f_files = st->f_files; do_statfs64()
160 buf.f_ffree = st->f_ffree; do_statfs64()
161 buf.f_fsid = st->f_fsid; do_statfs64()
162 buf.f_namelen = st->f_namelen; do_statfs64()
163 buf.f_frsize = st->f_frsize; do_statfs64()
164 buf.f_flags = st->f_flags; do_statfs64()
174 struct kstatfs st; SYSCALL_DEFINE2() local
175 int error = user_statfs(pathname, &st); SYSCALL_DEFINE2()
177 error = do_statfs_native(&st, buf); SYSCALL_DEFINE2()
183 struct kstatfs st; SYSCALL_DEFINE3() local
187 error = user_statfs(pathname, &st); SYSCALL_DEFINE3()
189 error = do_statfs64(&st, buf); SYSCALL_DEFINE3()
195 struct kstatfs st; SYSCALL_DEFINE2() local
196 int error = fd_statfs(fd, &st); SYSCALL_DEFINE2()
198 error = do_statfs_native(&st, buf); SYSCALL_DEFINE2()
204 struct kstatfs st; SYSCALL_DEFINE3() local
210 error = fd_statfs(fd, &st); SYSCALL_DEFINE3()
212 error = do_statfs64(&st, buf); SYSCALL_DEFINE3()
/linux-4.1.27/drivers/iio/adc/
H A Dad7298.c108 struct ad7298_state *st = iio_priv(indio_dev); ad7298_update_scan_mode() local
116 command = AD7298_WRITE | st->ext_ref; ad7298_update_scan_mode()
122 st->tx_buf[0] = cpu_to_be16(command); ad7298_update_scan_mode()
125 st->ring_xfer[0].tx_buf = &st->tx_buf[0]; ad7298_update_scan_mode()
126 st->ring_xfer[0].len = 2; ad7298_update_scan_mode()
127 st->ring_xfer[0].cs_change = 1; ad7298_update_scan_mode()
128 st->ring_xfer[1].tx_buf = &st->tx_buf[1]; ad7298_update_scan_mode()
129 st->ring_xfer[1].len = 2; ad7298_update_scan_mode()
130 st->ring_xfer[1].cs_change = 1; ad7298_update_scan_mode()
132 spi_message_init(&st->ring_msg); ad7298_update_scan_mode()
133 spi_message_add_tail(&st->ring_xfer[0], &st->ring_msg); ad7298_update_scan_mode()
134 spi_message_add_tail(&st->ring_xfer[1], &st->ring_msg); ad7298_update_scan_mode()
137 st->ring_xfer[i + 2].rx_buf = &st->rx_buf[i]; ad7298_update_scan_mode()
138 st->ring_xfer[i + 2].len = 2; ad7298_update_scan_mode()
139 st->ring_xfer[i + 2].cs_change = 1; ad7298_update_scan_mode()
140 spi_message_add_tail(&st->ring_xfer[i + 2], &st->ring_msg); ad7298_update_scan_mode()
143 st->ring_xfer[i + 1].cs_change = 0; ad7298_update_scan_mode()
158 struct ad7298_state *st = iio_priv(indio_dev); ad7298_trigger_handler() local
161 b_sent = spi_sync(st->spi, &st->ring_msg); ad7298_trigger_handler()
165 iio_push_to_buffers_with_timestamp(indio_dev, st->rx_buf, ad7298_trigger_handler()
174 static int ad7298_scan_direct(struct ad7298_state *st, unsigned ch) ad7298_scan_direct() argument
177 st->tx_buf[0] = cpu_to_be16(AD7298_WRITE | st->ext_ref | ad7298_scan_direct()
180 ret = spi_sync(st->spi, &st->scan_single_msg); ad7298_scan_direct()
184 return be16_to_cpu(st->rx_buf[0]); ad7298_scan_direct()
187 static int ad7298_scan_temp(struct ad7298_state *st, int *val) ad7298_scan_temp() argument
193 AD7298_TAVG | st->ext_ref); ad7298_scan_temp()
195 ret = spi_write(st->spi, (u8 *)&buf, 2); ad7298_scan_temp()
201 ret = spi_write(st->spi, (u8 *)&buf, 2); ad7298_scan_temp()
207 ret = spi_read(st->spi, (u8 *)&buf, 2); ad7298_scan_temp()
216 static int ad7298_get_ref_voltage(struct ad7298_state *st) ad7298_get_ref_voltage() argument
220 if (st->ext_ref) { ad7298_get_ref_voltage()
221 vref = regulator_get_voltage(st->reg); ad7298_get_ref_voltage()
238 struct ad7298_state *st = iio_priv(indio_dev); ad7298_read_raw() local
247 ret = ad7298_scan_temp(st, val); ad7298_read_raw()
249 ret = ad7298_scan_direct(st, chan->address); ad7298_read_raw()
263 *val = ad7298_get_ref_voltage(st); ad7298_read_raw()
267 *val = ad7298_get_ref_voltage(st); ad7298_read_raw()
274 *val = 1093 - 2732500 / ad7298_get_ref_voltage(st); ad7298_read_raw()
289 struct ad7298_state *st; ad7298_probe() local
293 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7298_probe()
297 st = iio_priv(indio_dev); ad7298_probe()
300 st->ext_ref = AD7298_EXTREF; ad7298_probe()
302 if (st->ext_ref) { ad7298_probe()
303 st->reg = devm_regulator_get(&spi->dev, "vref"); ad7298_probe()
304 if (IS_ERR(st->reg)) ad7298_probe()
305 return PTR_ERR(st->reg); ad7298_probe()
307 ret = regulator_enable(st->reg); ad7298_probe()
314 st->spi = spi; ad7298_probe()
325 st->scan_single_xfer[0].tx_buf = &st->tx_buf[0]; ad7298_probe()
326 st->scan_single_xfer[0].len = 2; ad7298_probe()
327 st->scan_single_xfer[0].cs_change = 1; ad7298_probe()
328 st->scan_single_xfer[1].tx_buf = &st->tx_buf[1]; ad7298_probe()
329 st->scan_single_xfer[1].len = 2; ad7298_probe()
330 st->scan_single_xfer[1].cs_change = 1; ad7298_probe()
331 st->scan_single_xfer[2].rx_buf = &st->rx_buf[0]; ad7298_probe()
332 st->scan_single_xfer[2].len = 2; ad7298_probe()
334 spi_message_init(&st->scan_single_msg); ad7298_probe()
335 spi_message_add_tail(&st->scan_single_xfer[0], &st->scan_single_msg); ad7298_probe()
336 spi_message_add_tail(&st->scan_single_xfer[1], &st->scan_single_msg); ad7298_probe()
337 spi_message_add_tail(&st->scan_single_xfer[2], &st->scan_single_msg); ad7298_probe()
353 if (st->ext_ref) ad7298_probe()
354 regulator_disable(st->reg); ad7298_probe()
362 struct ad7298_state *st = iio_priv(indio_dev); ad7298_remove() local
366 if (st->ext_ref) ad7298_remove()
367 regulator_disable(st->reg); ad7298_remove()
H A Dad7887.c79 struct ad7887_state *st = iio_priv(indio_dev); ad7887_ring_preenable() local
84 st->ring_msg = &st->msg[AD7887_CH0]; ad7887_ring_preenable()
87 st->ring_msg = &st->msg[AD7887_CH1]; ad7887_ring_preenable()
89 spi_sync(st->spi, st->ring_msg); ad7887_ring_preenable()
92 st->ring_msg = &st->msg[AD7887_CH0_CH1]; ad7887_ring_preenable()
101 struct ad7887_state *st = iio_priv(indio_dev); ad7887_ring_postdisable() local
104 return spi_sync(st->spi, &st->msg[AD7887_CH0]); ad7887_ring_postdisable()
117 struct ad7887_state *st = iio_priv(indio_dev); ad7887_trigger_handler() local
120 b_sent = spi_sync(st->spi, st->ring_msg); ad7887_trigger_handler()
124 iio_push_to_buffers_with_timestamp(indio_dev, st->data, ad7887_trigger_handler()
139 static int ad7887_scan_direct(struct ad7887_state *st, unsigned ch) ad7887_scan_direct() argument
141 int ret = spi_sync(st->spi, &st->msg[ch]); ad7887_scan_direct()
145 return (st->data[(ch * 2)] << 8) | st->data[(ch * 2) + 1]; ad7887_scan_direct()
155 struct ad7887_state *st = iio_priv(indio_dev); ad7887_read_raw() local
163 ret = ad7887_scan_direct(st, chan->address); ad7887_read_raw()
172 if (st->reg) { ad7887_read_raw()
173 *val = regulator_get_voltage(st->reg); ad7887_read_raw()
178 *val = st->chip_info->int_vref_mv; ad7887_read_raw()
239 struct ad7887_state *st; ad7887_probe() local
244 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7887_probe()
248 st = iio_priv(indio_dev); ad7887_probe()
251 st->reg = devm_regulator_get(&spi->dev, "vref"); ad7887_probe()
252 if (IS_ERR(st->reg)) ad7887_probe()
253 return PTR_ERR(st->reg); ad7887_probe()
255 ret = regulator_enable(st->reg); ad7887_probe()
260 st->chip_info = ad7887_probe()
264 st->spi = spi; ad7887_probe()
280 st->tx_cmd_buf[0] = AD7887_CH_AIN0 | mode; ad7887_probe()
282 st->xfer[0].rx_buf = &st->data[0]; ad7887_probe()
283 st->xfer[0].tx_buf = &st->tx_cmd_buf[0]; ad7887_probe()
284 st->xfer[0].len = 2; ad7887_probe()
286 spi_message_init(&st->msg[AD7887_CH0]); ad7887_probe()
287 spi_message_add_tail(&st->xfer[0], &st->msg[AD7887_CH0]); ad7887_probe()
290 st->tx_cmd_buf[2] = AD7887_CH_AIN1 | mode; ad7887_probe()
292 st->xfer[1].rx_buf = &st->data[0]; ad7887_probe()
293 st->xfer[1].tx_buf = &st->tx_cmd_buf[2]; ad7887_probe()
294 st->xfer[1].len = 2; ad7887_probe()
296 st->xfer[2].rx_buf = &st->data[2]; ad7887_probe()
297 st->xfer[2].tx_buf = &st->tx_cmd_buf[0]; ad7887_probe()
298 st->xfer[2].len = 2; ad7887_probe()
300 spi_message_init(&st->msg[AD7887_CH0_CH1]); ad7887_probe()
301 spi_message_add_tail(&st->xfer[1], &st->msg[AD7887_CH0_CH1]); ad7887_probe()
302 spi_message_add_tail(&st->xfer[2], &st->msg[AD7887_CH0_CH1]); ad7887_probe()
304 st->xfer[3].rx_buf = &st->data[2]; ad7887_probe()
305 st->xfer[3].tx_buf = &st->tx_cmd_buf[2]; ad7887_probe()
306 st->xfer[3].len = 2; ad7887_probe()
308 spi_message_init(&st->msg[AD7887_CH1]); ad7887_probe()
309 spi_message_add_tail(&st->xfer[3], &st->msg[AD7887_CH1]); ad7887_probe()
311 indio_dev->channels = st->chip_info->channel; ad7887_probe()
314 indio_dev->channels = &st->chip_info->channel[1]; ad7887_probe()
331 if (st->reg) ad7887_probe()
332 regulator_disable(st->reg); ad7887_probe()
340 struct ad7887_state *st = iio_priv(indio_dev); ad7887_remove() local
344 if (st->reg) ad7887_remove()
345 regulator_disable(st->reg); ad7887_remove()
H A Dat91_adc.c137 #define AT91_ADC_CHAN(st, ch) \
138 (st->registers->channel_base + (ch * 4))
139 #define at91_adc_readl(st, reg) \
140 (readl_relaxed(st->reg_base + reg))
141 #define at91_adc_writel(st, reg, val) \
142 (writel_relaxed(val, st->reg_base + reg))
247 struct at91_adc_state *st = iio_priv(idev); at91_adc_trigger_handler() local
253 st->buffer[j] = at91_adc_readl(st, AT91_ADC_CHAN(st, i)); at91_adc_trigger_handler()
257 iio_push_to_buffers_with_timestamp(idev, st->buffer, pf->timestamp); at91_adc_trigger_handler()
262 at91_adc_readl(st, AT91_ADC_LCDR); at91_adc_trigger_handler()
264 enable_irq(st->irq); at91_adc_trigger_handler()
272 struct at91_adc_state *st = iio_priv(idev); handle_adc_eoc_trigger() local
278 st->last_value = at91_adc_readl(st, AT91_ADC_CHAN(st, st->chnb)); handle_adc_eoc_trigger()
279 st->done = true; handle_adc_eoc_trigger()
280 wake_up_interruptible(&st->wq_data_avail); handle_adc_eoc_trigger()
284 static int at91_ts_sample(struct at91_adc_state *st) at91_ts_sample() argument
290 struct iio_dev *idev = iio_priv_to_dev(st); at91_ts_sample()
292 unsigned int xyz_mask_bits = st->res; at91_ts_sample()
297 reg = at91_adc_readl(st, AT91_ADC_TSXPOSR); at91_ts_sample()
308 reg = at91_adc_readl(st, AT91_ADC_TSYPOSR); at91_ts_sample()
319 reg = at91_adc_readl(st, AT91_ADC_TSPRESSR); at91_ts_sample()
327 pres = st->ts_pressure_threshold; /* no pen contacted */ at91_ts_sample()
332 if (pres < st->ts_pressure_threshold) { at91_ts_sample()
335 input_report_abs(st->ts_input, ABS_X, x); at91_ts_sample()
336 input_report_abs(st->ts_input, ABS_Y, y); at91_ts_sample()
337 input_report_abs(st->ts_input, ABS_PRESSURE, pres); at91_ts_sample()
338 input_report_key(st->ts_input, BTN_TOUCH, 1); at91_ts_sample()
339 input_sync(st->ts_input); at91_ts_sample()
350 struct at91_adc_state *st = iio_priv(idev); at91_adc_rl_interrupt() local
351 u32 status = at91_adc_readl(st, st->registers->status_register); at91_adc_rl_interrupt()
354 status &= at91_adc_readl(st, AT91_ADC_IMR); at91_adc_rl_interrupt()
355 if (status & GENMASK(st->num_channels - 1, 0)) at91_adc_rl_interrupt()
360 reg = at91_adc_readl(st, AT91_ADC_MR); at91_adc_rl_interrupt()
362 at91_adc_writel(st, AT91_ADC_MR, reg); at91_adc_rl_interrupt()
364 at91_adc_writel(st, AT91_ADC_IDR, AT91RL_ADC_IER_PEN); at91_adc_rl_interrupt()
365 at91_adc_writel(st, AT91_ADC_IER, AT91RL_ADC_IER_NOPEN at91_adc_rl_interrupt()
368 at91_adc_writel(st, st->registers->trigger_register, at91_adc_rl_interrupt()
370 AT91_ADC_TRGR_TRGPER_(st->ts_sample_period_val)); at91_adc_rl_interrupt()
372 reg = at91_adc_readl(st, AT91_ADC_MR); at91_adc_rl_interrupt()
373 reg |= AT91_ADC_PENDBC_(st->ts_pendbc) & AT91_ADC_PENDBC; at91_adc_rl_interrupt()
374 at91_adc_writel(st, AT91_ADC_MR, reg); at91_adc_rl_interrupt()
375 at91_adc_writel(st, st->registers->trigger_register, at91_adc_rl_interrupt()
378 at91_adc_writel(st, AT91_ADC_IDR, AT91RL_ADC_IER_NOPEN at91_adc_rl_interrupt()
380 at91_adc_writel(st, AT91_ADC_IER, AT91RL_ADC_IER_PEN); at91_adc_rl_interrupt()
381 st->ts_bufferedmeasure = false; at91_adc_rl_interrupt()
382 input_report_key(st->ts_input, BTN_TOUCH, 0); at91_adc_rl_interrupt()
383 input_sync(st->ts_input); at91_adc_rl_interrupt()
386 if (st->ts_bufferedmeasure) { at91_adc_rl_interrupt()
392 input_report_abs(st->ts_input, ABS_X, st->ts_prev_absx); at91_adc_rl_interrupt()
393 input_report_abs(st->ts_input, ABS_Y, st->ts_prev_absy); at91_adc_rl_interrupt()
394 input_report_key(st->ts_input, BTN_TOUCH, 1); at91_adc_rl_interrupt()
395 input_sync(st->ts_input); at91_adc_rl_interrupt()
397 st->ts_bufferedmeasure = true; at91_adc_rl_interrupt()
400 st->ts_prev_absx = at91_adc_readl(st, AT91_ADC_CHAN(st, 3)) at91_adc_rl_interrupt()
402 st->ts_prev_absx /= at91_adc_readl(st, AT91_ADC_CHAN(st, 2)); at91_adc_rl_interrupt()
404 st->ts_prev_absy = at91_adc_readl(st, AT91_ADC_CHAN(st, 1)) at91_adc_rl_interrupt()
406 st->ts_prev_absy /= at91_adc_readl(st, AT91_ADC_CHAN(st, 0)); at91_adc_rl_interrupt()
415 struct at91_adc_state *st = iio_priv(idev); at91_adc_9x5_interrupt() local
416 u32 status = at91_adc_readl(st, st->registers->status_register); at91_adc_9x5_interrupt()
422 if (status & GENMASK(st->num_channels - 1, 0)) at91_adc_9x5_interrupt()
426 at91_adc_writel(st, AT91_ADC_IDR, AT91_ADC_IER_PEN); at91_adc_9x5_interrupt()
427 at91_adc_writel(st, AT91_ADC_IER, AT91_ADC_IER_NOPEN | at91_adc_9x5_interrupt()
430 at91_adc_writel(st, st->registers->trigger_register, at91_adc_9x5_interrupt()
432 AT91_ADC_TRGR_TRGPER_(st->ts_sample_period_val)); at91_adc_9x5_interrupt()
434 at91_adc_writel(st, st->registers->trigger_register, 0); at91_adc_9x5_interrupt()
435 at91_adc_writel(st, AT91_ADC_IDR, AT91_ADC_IER_NOPEN | at91_adc_9x5_interrupt()
437 at91_adc_writel(st, AT91_ADC_IER, AT91_ADC_IER_PEN); at91_adc_9x5_interrupt()
439 input_report_key(st->ts_input, BTN_TOUCH, 0); at91_adc_9x5_interrupt()
440 input_sync(st->ts_input); at91_adc_9x5_interrupt()
446 at91_ts_sample(st); at91_adc_9x5_interrupt()
451 at91_adc_readl(st, AT91_ADC_TSXPOSR); at91_adc_9x5_interrupt()
452 at91_adc_readl(st, AT91_ADC_TSYPOSR); at91_adc_9x5_interrupt()
453 at91_adc_readl(st, AT91_ADC_TSPRESSR); at91_adc_9x5_interrupt()
462 struct at91_adc_state *st = iio_priv(idev); at91_adc_channel_init() local
468 if (st->touchscreen_type == ATMEL_ADC_TOUCHSCREEN_4WIRE) at91_adc_channel_init()
470 else if (st->touchscreen_type == ATMEL_ADC_TOUCHSCREEN_5WIRE) at91_adc_channel_init()
474 st->channels_mask &= ~rsvd_mask; at91_adc_channel_init()
476 idev->num_channels = bitmap_weight(&st->channels_mask, at91_adc_channel_init()
477 st->num_channels) + 1; at91_adc_channel_init()
487 for_each_set_bit(bit, &st->channels_mask, st->num_channels) { at91_adc_channel_init()
495 chan->scan_type.realbits = st->res; at91_adc_channel_init()
518 struct at91_adc_state *st = iio_priv(idev); at91_adc_get_trigger_value_by_name() local
521 for (i = 0; i < st->trigger_number; i++) { at91_adc_get_trigger_value_by_name()
546 struct at91_adc_state *st = iio_priv(idev); at91_adc_configure_trigger() local
547 struct at91_adc_reg_desc *reg = st->registers; at91_adc_configure_trigger()
548 u32 status = at91_adc_readl(st, reg->trigger_register); at91_adc_configure_trigger()
553 st->trigger_list, at91_adc_configure_trigger()
559 st->buffer = kmalloc(idev->scan_bytes, GFP_KERNEL); at91_adc_configure_trigger()
560 if (st->buffer == NULL) at91_adc_configure_trigger()
563 at91_adc_writel(st, reg->trigger_register, at91_adc_configure_trigger()
567 st->num_channels) { at91_adc_configure_trigger()
569 at91_adc_writel(st, AT91_ADC_CHER, at91_adc_configure_trigger()
573 at91_adc_writel(st, AT91_ADC_IER, reg->drdy_mask); at91_adc_configure_trigger()
576 at91_adc_writel(st, AT91_ADC_IDR, reg->drdy_mask); at91_adc_configure_trigger()
578 at91_adc_writel(st, reg->trigger_register, at91_adc_configure_trigger()
582 st->num_channels) { at91_adc_configure_trigger()
584 at91_adc_writel(st, AT91_ADC_CHDR, at91_adc_configure_trigger()
587 kfree(st->buffer); at91_adc_configure_trigger()
622 struct at91_adc_state *st = iio_priv(idev); at91_adc_trigger_init() local
625 st->trig = devm_kzalloc(&idev->dev, at91_adc_trigger_init()
626 st->trigger_number * sizeof(*st->trig), at91_adc_trigger_init()
629 if (st->trig == NULL) { at91_adc_trigger_init()
634 for (i = 0; i < st->trigger_number; i++) { at91_adc_trigger_init()
635 if (st->trigger_list[i].is_external && !(st->use_external)) at91_adc_trigger_init()
638 st->trig[i] = at91_adc_allocate_trigger(idev, at91_adc_trigger_init()
639 st->trigger_list + i); at91_adc_trigger_init()
640 if (st->trig[i] == NULL) { at91_adc_trigger_init()
652 iio_trigger_unregister(st->trig[i]); at91_adc_trigger_init()
653 iio_trigger_free(st->trig[i]); at91_adc_trigger_init()
661 struct at91_adc_state *st = iio_priv(idev); at91_adc_trigger_remove() local
664 for (i = 0; i < st->trigger_number; i++) { at91_adc_trigger_remove()
665 iio_trigger_unregister(st->trig[i]); at91_adc_trigger_remove()
666 iio_trigger_free(st->trig[i]); at91_adc_trigger_remove()
685 struct at91_adc_state *st = iio_priv(idev); at91_adc_read_raw() local
690 mutex_lock(&st->lock); at91_adc_read_raw()
692 st->chnb = chan->channel; at91_adc_read_raw()
693 at91_adc_writel(st, AT91_ADC_CHER, at91_adc_read_raw()
695 at91_adc_writel(st, AT91_ADC_IER, BIT(chan->channel)); at91_adc_read_raw()
696 at91_adc_writel(st, AT91_ADC_CR, AT91_ADC_START); at91_adc_read_raw()
698 ret = wait_event_interruptible_timeout(st->wq_data_avail, at91_adc_read_raw()
699 st->done, at91_adc_read_raw()
704 mutex_unlock(&st->lock); at91_adc_read_raw()
708 *val = st->last_value; at91_adc_read_raw()
710 at91_adc_writel(st, AT91_ADC_CHDR, at91_adc_read_raw()
712 at91_adc_writel(st, AT91_ADC_IDR, BIT(chan->channel)); at91_adc_read_raw()
714 st->last_value = 0; at91_adc_read_raw()
715 st->done = false; at91_adc_read_raw()
716 mutex_unlock(&st->lock); at91_adc_read_raw()
720 *val = st->vref_mv; at91_adc_read_raw()
729 static int at91_adc_of_get_resolution(struct at91_adc_state *st, at91_adc_of_get_resolution() argument
732 struct iio_dev *idev = iio_priv_to_dev(st); at91_adc_of_get_resolution()
765 st->res = resolutions[i]; at91_adc_of_get_resolution()
767 st->low_res = true; at91_adc_of_get_resolution()
769 st->low_res = false; at91_adc_of_get_resolution()
771 dev_info(&idev->dev, "Resolution used: %u bits\n", st->res); at91_adc_of_get_resolution()
824 struct at91_adc_state *st, struct device *dev) at91_adc_probe_dt_ts()
838 st->touchscreen_type = prop; at91_adc_probe_dt_ts()
845 if (!st->caps->has_tsmr) at91_adc_probe_dt_ts()
849 st->ts_pressure_threshold = prop; at91_adc_probe_dt_ts()
850 if (st->ts_pressure_threshold) { at91_adc_probe_dt_ts()
858 static int at91_adc_probe_dt(struct at91_adc_state *st, at91_adc_probe_dt() argument
861 struct iio_dev *idev = iio_priv_to_dev(st); at91_adc_probe_dt()
870 st->caps = (struct at91_adc_caps *) at91_adc_probe_dt()
873 st->use_external = of_property_read_bool(node, "atmel,adc-use-external-triggers"); at91_adc_probe_dt()
880 st->channels_mask = prop; at91_adc_probe_dt()
882 st->sleep_mode = of_property_read_bool(node, "atmel,adc-sleep-mode"); at91_adc_probe_dt()
889 st->startup_time = prop; at91_adc_probe_dt()
893 st->sample_hold_time = prop; at91_adc_probe_dt()
900 st->vref_mv = prop; at91_adc_probe_dt()
902 ret = at91_adc_of_get_resolution(st, pdev); at91_adc_probe_dt()
906 st->registers = &st->caps->registers; at91_adc_probe_dt()
907 st->num_channels = st->caps->num_channels; at91_adc_probe_dt()
908 st->trigger_number = of_get_child_count(node); at91_adc_probe_dt()
909 st->trigger_list = devm_kzalloc(&idev->dev, st->trigger_number * at91_adc_probe_dt()
912 if (!st->trigger_list) { at91_adc_probe_dt()
919 struct at91_adc_trigger *trig = st->trigger_list + i; for_each_child_of_node()
940 if (st->caps->has_ts)
941 return at91_adc_probe_dt_ts(node, st, &idev->dev);
951 static int at91_adc_probe_pdata(struct at91_adc_state *st, at91_adc_probe_pdata() argument
959 st->caps = (struct at91_adc_caps *) at91_adc_probe_pdata()
962 st->use_external = pdata->use_external_triggers; at91_adc_probe_pdata()
963 st->vref_mv = pdata->vref; at91_adc_probe_pdata()
964 st->channels_mask = pdata->channels_used; at91_adc_probe_pdata()
965 st->num_channels = st->caps->num_channels; at91_adc_probe_pdata()
966 st->startup_time = pdata->startup_time; at91_adc_probe_pdata()
967 st->trigger_number = pdata->trigger_number; at91_adc_probe_pdata()
968 st->trigger_list = pdata->trigger_list; at91_adc_probe_pdata()
969 st->registers = &st->caps->registers; at91_adc_probe_pdata()
970 st->touchscreen_type = pdata->touchscreen_type; at91_adc_probe_pdata()
983 struct at91_adc_state *st = input_get_drvdata(dev); atmel_ts_open() local
985 if (st->caps->has_tsmr) atmel_ts_open()
986 at91_adc_writel(st, AT91_ADC_IER, AT91_ADC_IER_PEN); atmel_ts_open()
988 at91_adc_writel(st, AT91_ADC_IER, AT91RL_ADC_IER_PEN); atmel_ts_open()
994 struct at91_adc_state *st = input_get_drvdata(dev); atmel_ts_close() local
996 if (st->caps->has_tsmr) atmel_ts_close()
997 at91_adc_writel(st, AT91_ADC_IDR, AT91_ADC_IER_PEN); atmel_ts_close()
999 at91_adc_writel(st, AT91_ADC_IDR, AT91RL_ADC_IER_PEN); atmel_ts_close()
1002 static int at91_ts_hw_init(struct at91_adc_state *st, u32 adc_clk_khz) at91_ts_hw_init() argument
1011 st->ts_pendbc = round_up(TOUCH_PEN_DETECT_DEBOUNCE_US * adc_clk_khz / at91_ts_hw_init()
1014 while (st->ts_pendbc >> ++i) at91_ts_hw_init()
1016 if (abs(st->ts_pendbc - (1 << i)) < abs(st->ts_pendbc - (1 << (i - 1)))) at91_ts_hw_init()
1017 st->ts_pendbc = i; at91_ts_hw_init()
1019 st->ts_pendbc = i - 1; at91_ts_hw_init()
1021 if (!st->caps->has_tsmr) { at91_ts_hw_init()
1022 reg = at91_adc_readl(st, AT91_ADC_MR); at91_ts_hw_init()
1025 reg |= AT91_ADC_PENDBC_(st->ts_pendbc) & AT91_ADC_PENDBC; at91_ts_hw_init()
1026 at91_adc_writel(st, AT91_ADC_MR, reg); at91_ts_hw_init()
1029 at91_adc_writel(st, AT91_ADC_TSR, reg); at91_ts_hw_init()
1031 st->ts_sample_period_val = round_up((TOUCH_SAMPLE_PERIOD_US_RL * at91_ts_hw_init()
1037 if (st->touchscreen_type == ATMEL_ADC_TOUCHSCREEN_4WIRE) at91_ts_hw_init()
1042 reg |= AT91_ADC_TSMR_TSAV_(st->caps->ts_filter_average) at91_ts_hw_init()
1044 reg |= AT91_ADC_TSMR_PENDBC_(st->ts_pendbc) & AT91_ADC_TSMR_PENDBC; at91_ts_hw_init()
1049 at91_adc_writel(st, AT91_ADC_TSMR, reg); at91_ts_hw_init()
1056 at91_adc_writel(st, AT91_ADC_ACR, st->caps->ts_pen_detect_sensitivity at91_ts_hw_init()
1060 st->ts_sample_period_val = round_up((TOUCH_SAMPLE_PERIOD_US * at91_ts_hw_init()
1066 static int at91_ts_register(struct at91_adc_state *st, at91_ts_register() argument
1070 struct iio_dev *idev = iio_priv_to_dev(st); at91_ts_register()
1088 if (st->caps->has_tsmr) { at91_ts_register()
1095 if (st->touchscreen_type != ATMEL_ADC_TOUCHSCREEN_4WIRE) { at91_ts_register()
1108 st->ts_input = input; at91_ts_register()
1109 input_set_drvdata(input, st); at91_ts_register()
1118 input_free_device(st->ts_input); at91_ts_register()
1122 static void at91_ts_unregister(struct at91_adc_state *st) at91_ts_unregister() argument
1124 input_unregister_device(st->ts_input); at91_ts_unregister()
1132 struct at91_adc_state *st; at91_adc_probe() local
1140 st = iio_priv(idev); at91_adc_probe()
1143 ret = at91_adc_probe_dt(st, pdev); at91_adc_probe()
1145 ret = at91_adc_probe_pdata(st, pdev); at91_adc_probe()
1159 st->irq = platform_get_irq(pdev, 0); at91_adc_probe()
1160 if (st->irq < 0) { at91_adc_probe()
1167 st->reg_base = devm_ioremap_resource(&pdev->dev, res); at91_adc_probe()
1168 if (IS_ERR(st->reg_base)) { at91_adc_probe()
1169 return PTR_ERR(st->reg_base); at91_adc_probe()
1175 at91_adc_writel(st, AT91_ADC_CR, AT91_ADC_SWRST); at91_adc_probe()
1176 at91_adc_writel(st, AT91_ADC_IDR, 0xFFFFFFFF); at91_adc_probe()
1178 if (st->caps->has_tsmr) at91_adc_probe()
1179 ret = request_irq(st->irq, at91_adc_9x5_interrupt, 0, at91_adc_probe()
1182 ret = request_irq(st->irq, at91_adc_rl_interrupt, 0, at91_adc_probe()
1189 st->clk = devm_clk_get(&pdev->dev, "adc_clk"); at91_adc_probe()
1190 if (IS_ERR(st->clk)) { at91_adc_probe()
1192 ret = PTR_ERR(st->clk); at91_adc_probe()
1196 ret = clk_prepare_enable(st->clk); at91_adc_probe()
1203 st->adc_clk = devm_clk_get(&pdev->dev, "adc_op_clk"); at91_adc_probe()
1204 if (IS_ERR(st->adc_clk)) { at91_adc_probe()
1206 ret = PTR_ERR(st->adc_clk); at91_adc_probe()
1210 ret = clk_prepare_enable(st->adc_clk); at91_adc_probe()
1222 mstrclk = clk_get_rate(st->clk); at91_adc_probe()
1223 adc_clk = clk_get_rate(st->adc_clk); at91_adc_probe()
1231 if (!st->startup_time) { at91_adc_probe()
1236 ticks = (*st->caps->calc_startup_ticks)(st->startup_time, adc_clk_khz); at91_adc_probe()
1243 if (st->sample_hold_time > 0) at91_adc_probe()
1244 shtim = round_up((st->sample_hold_time * adc_clk_khz / 1000) at91_adc_probe()
1249 reg = AT91_ADC_PRESCAL_(prsc) & st->registers->mr_prescal_mask; at91_adc_probe()
1250 reg |= AT91_ADC_STARTUP_(ticks) & st->registers->mr_startup_mask; at91_adc_probe()
1251 if (st->low_res) at91_adc_probe()
1253 if (st->sleep_mode) at91_adc_probe()
1256 at91_adc_writel(st, AT91_ADC_MR, reg); at91_adc_probe()
1265 init_waitqueue_head(&st->wq_data_avail); at91_adc_probe()
1266 mutex_init(&st->lock); at91_adc_probe()
1273 if (!st->touchscreen_type) { at91_adc_probe()
1287 ret = at91_ts_register(st, pdev); at91_adc_probe()
1291 at91_ts_hw_init(st, adc_clk_khz); at91_adc_probe()
1303 if (!st->touchscreen_type) { at91_adc_probe()
1307 at91_ts_unregister(st); at91_adc_probe()
1310 clk_disable_unprepare(st->adc_clk); at91_adc_probe()
1312 clk_disable_unprepare(st->clk); at91_adc_probe()
1314 free_irq(st->irq, idev); at91_adc_probe()
1321 struct at91_adc_state *st = iio_priv(idev); at91_adc_remove() local
1324 if (!st->touchscreen_type) { at91_adc_remove()
1328 at91_ts_unregister(st); at91_adc_remove()
1330 clk_disable_unprepare(st->adc_clk); at91_adc_remove()
1331 clk_disable_unprepare(st->clk); at91_adc_remove()
1332 free_irq(st->irq, idev); at91_adc_remove()
823 at91_adc_probe_dt_ts(struct device_node *node, struct at91_adc_state *st, struct device *dev) at91_adc_probe_dt_ts() argument
H A Dad7266.c52 static int ad7266_wakeup(struct ad7266_state *st) ad7266_wakeup() argument
55 return spi_read(st->spi, &st->data.sample[0], 2); ad7266_wakeup()
58 static int ad7266_powerdown(struct ad7266_state *st) ad7266_powerdown() argument
61 return spi_read(st->spi, &st->data.sample[0], 1); ad7266_powerdown()
66 struct ad7266_state *st = iio_priv(indio_dev); ad7266_preenable() local
67 return ad7266_wakeup(st); ad7266_preenable()
72 struct ad7266_state *st = iio_priv(indio_dev); ad7266_postdisable() local
73 return ad7266_powerdown(st); ad7266_postdisable()
87 struct ad7266_state *st = iio_priv(indio_dev); ad7266_trigger_handler() local
90 ret = spi_read(st->spi, st->data.sample, 4); ad7266_trigger_handler()
92 iio_push_to_buffers_with_timestamp(indio_dev, &st->data, ad7266_trigger_handler()
101 static void ad7266_select_input(struct ad7266_state *st, unsigned int nr) ad7266_select_input() argument
105 if (st->fixed_addr) ad7266_select_input()
108 switch (st->mode) { ad7266_select_input()
121 gpio_set_value(st->gpios[i].gpio, (bool)(nr & BIT(i))); ad7266_select_input()
127 struct ad7266_state *st = iio_priv(indio_dev); ad7266_update_scan_mode() local
130 ad7266_select_input(st, nr); ad7266_update_scan_mode()
135 static int ad7266_read_single(struct ad7266_state *st, int *val, ad7266_read_single() argument
140 ad7266_select_input(st, address); ad7266_read_single()
142 ret = spi_sync(st->spi, &st->single_msg); ad7266_read_single()
143 *val = be16_to_cpu(st->data.sample[address % 2]); ad7266_read_single()
151 struct ad7266_state *st = iio_priv(indio_dev); ad7266_read_raw() local
160 ret = ad7266_read_single(st, val, chan->address); ad7266_read_raw()
170 scale_mv = st->vref_mv; ad7266_read_raw()
171 if (st->mode == AD7266_MODE_DIFF) ad7266_read_raw()
173 if (st->range == AD7266_RANGE_2VREF) ad7266_read_raw()
180 if (st->range == AD7266_RANGE_2VREF && ad7266_read_raw()
181 st->mode != AD7266_MODE_DIFF) ad7266_read_raw()
363 struct ad7266_state *st = iio_priv(indio_dev); ad7266_init_channels() local
368 is_differential = st->mode != AD7266_MODE_SINGLE_ENDED; ad7266_init_channels()
369 is_signed = (st->range == AD7266_RANGE_2VREF) | ad7266_init_channels()
370 (st->mode == AD7266_MODE_DIFF); ad7266_init_channels()
372 i = AD7266_CHAN_INFO_INDEX(is_differential, is_signed, st->fixed_addr); ad7266_init_channels()
389 struct ad7266_state *st; ad7266_probe() local
393 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7266_probe()
397 st = iio_priv(indio_dev); ad7266_probe()
399 st->reg = devm_regulator_get(&spi->dev, "vref"); ad7266_probe()
400 if (!IS_ERR_OR_NULL(st->reg)) { ad7266_probe()
401 ret = regulator_enable(st->reg); ad7266_probe()
405 ret = regulator_get_voltage(st->reg); ad7266_probe()
409 st->vref_mv = ret / 1000; ad7266_probe()
412 st->vref_mv = 2500; ad7266_probe()
416 st->fixed_addr = pdata->fixed_addr; ad7266_probe()
417 st->mode = pdata->mode; ad7266_probe()
418 st->range = pdata->range; ad7266_probe()
420 if (!st->fixed_addr) { ad7266_probe()
421 for (i = 0; i < ARRAY_SIZE(st->gpios); ++i) { ad7266_probe()
422 st->gpios[i].gpio = pdata->addr_gpios[i]; ad7266_probe()
423 st->gpios[i].flags = GPIOF_OUT_INIT_LOW; ad7266_probe()
424 st->gpios[i].label = ad7266_gpio_labels[i]; ad7266_probe()
426 ret = gpio_request_array(st->gpios, ad7266_probe()
427 ARRAY_SIZE(st->gpios)); ad7266_probe()
432 st->fixed_addr = true; ad7266_probe()
433 st->range = AD7266_RANGE_VREF; ad7266_probe()
434 st->mode = AD7266_MODE_DIFF; ad7266_probe()
438 st->spi = spi; ad7266_probe()
448 st->single_xfer[0].rx_buf = &st->data.sample[0]; ad7266_probe()
449 st->single_xfer[0].len = 2; ad7266_probe()
450 st->single_xfer[0].cs_change = 1; ad7266_probe()
452 st->single_xfer[1].rx_buf = st->data.sample; ad7266_probe()
453 st->single_xfer[1].len = 4; ad7266_probe()
454 st->single_xfer[1].cs_change = 1; ad7266_probe()
456 st->single_xfer[2].tx_buf = &st->data.sample[0]; ad7266_probe()
457 st->single_xfer[2].len = 1; ad7266_probe()
459 spi_message_init(&st->single_msg); ad7266_probe()
460 spi_message_add_tail(&st->single_xfer[0], &st->single_msg); ad7266_probe()
461 spi_message_add_tail(&st->single_xfer[1], &st->single_msg); ad7266_probe()
462 spi_message_add_tail(&st->single_xfer[2], &st->single_msg); ad7266_probe()
478 if (!st->fixed_addr) ad7266_probe()
479 gpio_free_array(st->gpios, ARRAY_SIZE(st->gpios)); ad7266_probe()
481 if (!IS_ERR_OR_NULL(st->reg)) ad7266_probe()
482 regulator_disable(st->reg); ad7266_probe()
490 struct ad7266_state *st = iio_priv(indio_dev); ad7266_remove() local
494 if (!st->fixed_addr) ad7266_remove()
495 gpio_free_array(st->gpios, ARRAY_SIZE(st->gpios)); ad7266_remove()
496 if (!IS_ERR_OR_NULL(st->reg)) ad7266_remove()
497 regulator_disable(st->reg); ad7266_remove()
H A Dad7923.c135 struct ad7923_state *st = iio_priv(indio_dev); ad7923_update_scan_mode() local
142 st->settings; for_each_set_bit()
144 st->tx_buf[len++] = cpu_to_be16(cmd); for_each_set_bit()
147 st->ring_xfer[0].tx_buf = &st->tx_buf[0];
148 st->ring_xfer[0].len = len;
149 st->ring_xfer[0].cs_change = 1;
151 spi_message_init(&st->ring_msg);
152 spi_message_add_tail(&st->ring_xfer[0], &st->ring_msg);
155 st->ring_xfer[i + 1].rx_buf = &st->rx_buf[i];
156 st->ring_xfer[i + 1].len = 2;
157 st->ring_xfer[i + 1].cs_change = 1;
158 spi_message_add_tail(&st->ring_xfer[i + 1], &st->ring_msg);
161 st->ring_xfer[i + 1].cs_change = 0;
176 struct ad7923_state *st = iio_priv(indio_dev); ad7923_trigger_handler() local
179 b_sent = spi_sync(st->spi, &st->ring_msg); ad7923_trigger_handler()
183 iio_push_to_buffers_with_timestamp(indio_dev, st->rx_buf, ad7923_trigger_handler()
192 static int ad7923_scan_direct(struct ad7923_state *st, unsigned ch) ad7923_scan_direct() argument
198 st->settings; ad7923_scan_direct()
200 st->tx_buf[0] = cpu_to_be16(cmd); ad7923_scan_direct()
202 ret = spi_sync(st->spi, &st->scan_single_msg); ad7923_scan_direct()
206 return be16_to_cpu(st->rx_buf[0]); ad7923_scan_direct()
209 static int ad7923_get_range(struct ad7923_state *st) ad7923_get_range() argument
213 vref = regulator_get_voltage(st->reg); ad7923_get_range()
219 if (!(st->settings & AD7923_RANGE)) ad7923_get_range()
232 struct ad7923_state *st = iio_priv(indio_dev); ad7923_read_raw() local
240 ret = ad7923_scan_direct(st, chan->address); ad7923_read_raw()
253 ret = ad7923_get_range(st); ad7923_read_raw()
271 struct ad7923_state *st; ad7923_probe() local
276 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7923_probe()
280 st = iio_priv(indio_dev); ad7923_probe()
284 st->spi = spi; ad7923_probe()
285 st->settings = AD7923_CODING | AD7923_RANGE | ad7923_probe()
299 st->scan_single_xfer[0].tx_buf = &st->tx_buf[0]; ad7923_probe()
300 st->scan_single_xfer[0].len = 2; ad7923_probe()
301 st->scan_single_xfer[0].cs_change = 1; ad7923_probe()
302 st->scan_single_xfer[1].rx_buf = &st->rx_buf[0]; ad7923_probe()
303 st->scan_single_xfer[1].len = 2; ad7923_probe()
305 spi_message_init(&st->scan_single_msg); ad7923_probe()
306 spi_message_add_tail(&st->scan_single_xfer[0], &st->scan_single_msg); ad7923_probe()
307 spi_message_add_tail(&st->scan_single_xfer[1], &st->scan_single_msg); ad7923_probe()
309 st->reg = devm_regulator_get(&spi->dev, "refin"); ad7923_probe()
310 if (IS_ERR(st->reg)) ad7923_probe()
311 return PTR_ERR(st->reg); ad7923_probe()
313 ret = regulator_enable(st->reg); ad7923_probe()
331 regulator_disable(st->reg); ad7923_probe()
339 struct ad7923_state *st = iio_priv(indio_dev); ad7923_remove() local
343 regulator_disable(st->reg); ad7923_remove()
H A Dnau7802.c93 static int nau7802_set_gain(struct nau7802_state *st, int gain) nau7802_set_gain() argument
97 mutex_lock(&st->lock); nau7802_set_gain()
98 st->conversion_count = 0; nau7802_set_gain()
100 ret = i2c_smbus_read_byte_data(st->client, NAU7802_REG_CTRL1); nau7802_set_gain()
103 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_CTRL1, nau7802_set_gain()
108 mutex_unlock(&st->lock); nau7802_set_gain()
113 static int nau7802_read_conversion(struct nau7802_state *st) nau7802_read_conversion() argument
117 mutex_lock(&st->data_lock); nau7802_read_conversion()
118 data = i2c_smbus_read_byte_data(st->client, NAU7802_REG_ADC_B2); nau7802_read_conversion()
121 st->last_value = data << 16; nau7802_read_conversion()
123 data = i2c_smbus_read_byte_data(st->client, NAU7802_REG_ADC_B1); nau7802_read_conversion()
126 st->last_value |= data << 8; nau7802_read_conversion()
128 data = i2c_smbus_read_byte_data(st->client, NAU7802_REG_ADC_B0); nau7802_read_conversion()
131 st->last_value |= data; nau7802_read_conversion()
133 st->last_value = sign_extend32(st->last_value, 23); nau7802_read_conversion()
136 mutex_unlock(&st->data_lock); nau7802_read_conversion()
144 static int nau7802_sync(struct nau7802_state *st) nau7802_sync() argument
148 ret = i2c_smbus_read_byte_data(st->client, NAU7802_REG_PUCTRL); nau7802_sync()
151 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_PUCTRL, nau7802_sync()
160 struct nau7802_state *st = iio_priv(indio_dev); nau7802_eoc_trigger() local
163 status = i2c_smbus_read_byte_data(st->client, NAU7802_REG_PUCTRL); nau7802_eoc_trigger()
170 if (nau7802_read_conversion(st) < 0) nau7802_eoc_trigger()
178 if (st->conversion_count < NAU7802_MIN_CONVERSIONS) nau7802_eoc_trigger()
179 st->conversion_count++; nau7802_eoc_trigger()
180 if (st->conversion_count >= NAU7802_MIN_CONVERSIONS) nau7802_eoc_trigger()
181 complete_all(&st->value_ok); nau7802_eoc_trigger()
190 struct nau7802_state *st = iio_priv(indio_dev); nau7802_read_irq() local
193 reinit_completion(&st->value_ok); nau7802_read_irq()
194 enable_irq(st->client->irq); nau7802_read_irq()
196 nau7802_sync(st); nau7802_read_irq()
199 ret = nau7802_read_conversion(st); nau7802_read_irq()
204 ret = wait_for_completion_interruptible_timeout(&st->value_ok, nau7802_read_irq()
212 disable_irq(st->client->irq); nau7802_read_irq()
214 *val = st->last_value; nau7802_read_irq()
219 disable_irq(st->client->irq); nau7802_read_irq()
228 struct nau7802_state *st = iio_priv(indio_dev); nau7802_read_poll() local
231 nau7802_sync(st); nau7802_read_poll()
234 ret = nau7802_read_conversion(st); nau7802_read_poll()
244 ret = i2c_smbus_read_byte_data(st->client, NAU7802_REG_PUCTRL); nau7802_read_poll()
249 if (st->sample_rate != NAU7802_SAMP_FREQ_320) nau7802_read_poll()
253 ret = i2c_smbus_read_byte_data(st->client, nau7802_read_poll()
259 ret = nau7802_read_conversion(st); nau7802_read_poll()
262 if (st->conversion_count < NAU7802_MIN_CONVERSIONS) nau7802_read_poll()
263 st->conversion_count++; nau7802_read_poll()
264 } while (st->conversion_count < NAU7802_MIN_CONVERSIONS); nau7802_read_poll()
266 *val = st->last_value; nau7802_read_poll()
275 struct nau7802_state *st = iio_priv(indio_dev); nau7802_read_raw() local
280 mutex_lock(&st->lock); nau7802_read_raw()
286 ret = i2c_smbus_read_byte_data(st->client, NAU7802_REG_CTRL2); nau7802_read_raw()
288 mutex_unlock(&st->lock); nau7802_read_raw()
295 st->conversion_count = 0; nau7802_read_raw()
296 ret = i2c_smbus_write_byte_data(st->client, nau7802_read_raw()
299 NAU7802_CTRL2_CRS(st->sample_rate)); nau7802_read_raw()
302 mutex_unlock(&st->lock); nau7802_read_raw()
307 if (st->client->irq) nau7802_read_raw()
312 mutex_unlock(&st->lock); nau7802_read_raw()
316 ret = i2c_smbus_read_byte_data(st->client, NAU7802_REG_CTRL1); nau7802_read_raw()
324 *val = st->vref_mv; nau7802_read_raw()
330 *val = nau7802_sample_freq_avail[st->sample_rate]; nau7802_read_raw()
345 struct nau7802_state *st = iio_priv(indio_dev); nau7802_write_raw() local
350 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) nau7802_write_raw()
351 if (val2 == st->scale_avail[i]) nau7802_write_raw()
352 return nau7802_set_gain(st, i); nau7802_write_raw()
359 mutex_lock(&st->lock); nau7802_write_raw()
360 st->sample_rate = i; nau7802_write_raw()
361 st->conversion_count = 0; nau7802_write_raw()
362 ret = i2c_smbus_write_byte_data(st->client, nau7802_write_raw()
364 NAU7802_CTRL2_CRS(st->sample_rate)); nau7802_write_raw()
365 mutex_unlock(&st->lock); nau7802_write_raw()
397 struct nau7802_state *st; nau7802_probe() local
408 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); nau7802_probe()
412 st = iio_priv(indio_dev); nau7802_probe()
421 st->client = client; nau7802_probe()
424 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_PUCTRL, nau7802_probe()
430 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_PUCTRL, nau7802_probe()
440 ret = i2c_smbus_read_byte_data(st->client, NAU7802_REG_PUCTRL); nau7802_probe()
447 st->vref_mv = tmp; nau7802_probe()
454 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_PUCTRL, data); nau7802_probe()
457 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_ADC_CTRL, 0x30); nau7802_probe()
463 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_CTRL1, nau7802_probe()
470 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) nau7802_probe()
471 st->scale_avail[i] = (((u64)st->vref_mv) * 1000000000ULL) nau7802_probe()
474 init_completion(&st->value_ok); nau7802_probe()
509 st->sample_rate = NAU7802_SAMP_FREQ_320; nau7802_probe()
510 ret = i2c_smbus_write_byte_data(st->client, NAU7802_REG_CTRL2, nau7802_probe()
511 NAU7802_CTRL2_CRS(st->sample_rate)); nau7802_probe()
520 mutex_init(&st->lock); nau7802_probe()
521 mutex_init(&st->data_lock); nau7802_probe()
532 mutex_destroy(&st->lock); nau7802_probe()
533 mutex_destroy(&st->data_lock); nau7802_probe()
544 struct nau7802_state *st = iio_priv(indio_dev); nau7802_remove() local
547 mutex_destroy(&st->lock); nau7802_remove()
548 mutex_destroy(&st->data_lock); nau7802_remove()
H A Dad799x.c139 static int ad799x_write_config(struct ad799x_state *st, u16 val) ad799x_write_config() argument
141 switch (st->id) { ad799x_write_config()
144 return i2c_smbus_write_word_swapped(st->client, AD7998_CONF_REG, ad799x_write_config()
149 return i2c_smbus_write_byte_data(st->client, AD7998_CONF_REG, ad799x_write_config()
153 st->config = val; ad799x_write_config()
158 static int ad799x_read_config(struct ad799x_state *st) ad799x_read_config() argument
160 switch (st->id) { ad799x_read_config()
163 return i2c_smbus_read_word_swapped(st->client, AD7998_CONF_REG); ad799x_read_config()
167 return i2c_smbus_read_byte_data(st->client, AD7998_CONF_REG); ad799x_read_config()
170 return st->config; ad799x_read_config()
184 struct ad799x_state *st = iio_priv(indio_dev); ad799x_trigger_handler() local
188 switch (st->id) { ad799x_trigger_handler()
192 cmd = st->config | ad799x_trigger_handler()
209 b_sent = i2c_smbus_read_i2c_block_data(st->client, ad799x_trigger_handler()
210 cmd, st->transfer_size, st->rx_buf); ad799x_trigger_handler()
214 iio_push_to_buffers_with_timestamp(indio_dev, st->rx_buf, ad799x_trigger_handler()
225 struct ad799x_state *st = iio_priv(indio_dev); ad799x_update_scan_mode() local
227 kfree(st->rx_buf); ad799x_update_scan_mode()
228 st->rx_buf = kmalloc(indio_dev->scan_bytes, GFP_KERNEL); ad799x_update_scan_mode()
229 if (!st->rx_buf) ad799x_update_scan_mode()
232 st->transfer_size = bitmap_weight(scan_mask, indio_dev->masklength) * 2; ad799x_update_scan_mode()
234 switch (st->id) { ad799x_update_scan_mode()
240 st->config &= ~(GENMASK(7, 0) << AD799X_CHANNEL_SHIFT); ad799x_update_scan_mode()
241 st->config |= (*scan_mask << AD799X_CHANNEL_SHIFT); ad799x_update_scan_mode()
242 return ad799x_write_config(st, st->config); ad799x_update_scan_mode()
248 static int ad799x_scan_direct(struct ad799x_state *st, unsigned ch) ad799x_scan_direct() argument
252 switch (st->id) { ad799x_scan_direct()
256 cmd = st->config | (BIT(ch) << AD799X_CHANNEL_SHIFT); ad799x_scan_direct()
271 return i2c_smbus_read_word_swapped(st->client, cmd); ad799x_scan_direct()
281 struct ad799x_state *st = iio_priv(indio_dev); ad799x_read_raw() local
289 ret = ad799x_scan_direct(st, chan->scan_index); ad799x_read_raw()
298 ret = regulator_get_voltage(st->vref); ad799x_read_raw()
322 struct ad799x_state *st = iio_priv(indio_dev); ad799x_read_frequency() local
324 int ret = i2c_smbus_read_byte_data(st->client, AD7998_CYCLE_TMR_REG); ad799x_read_frequency()
337 struct ad799x_state *st = iio_priv(indio_dev); ad799x_write_frequency() local
347 ret = i2c_smbus_read_byte_data(st->client, AD7998_CYCLE_TMR_REG); ad799x_write_frequency()
361 ret = i2c_smbus_write_byte_data(st->client, AD7998_CYCLE_TMR_REG, ad799x_write_frequency()
378 struct ad799x_state *st = iio_priv(indio_dev); ad799x_read_event_config() local
380 if (!(st->config & AD7998_ALERT_EN)) ad799x_read_event_config()
383 if ((st->config >> AD799X_CHANNEL_SHIFT) & BIT(chan->scan_index)) ad799x_read_event_config()
395 struct ad799x_state *st = iio_priv(indio_dev); ad799x_write_event_config() local
405 st->config |= BIT(chan->scan_index) << AD799X_CHANNEL_SHIFT; ad799x_write_event_config()
407 st->config &= ~(BIT(chan->scan_index) << AD799X_CHANNEL_SHIFT); ad799x_write_event_config()
409 if (st->config >> AD799X_CHANNEL_SHIFT) ad799x_write_event_config()
410 st->config |= AD7998_ALERT_EN; ad799x_write_event_config()
412 st->config &= ~AD7998_ALERT_EN; ad799x_write_event_config()
414 ret = ad799x_write_config(st, st->config); ad799x_write_event_config()
449 struct ad799x_state *st = iio_priv(indio_dev); ad799x_write_event_value() local
455 ret = i2c_smbus_write_word_swapped(st->client, ad799x_write_event_value()
471 struct ad799x_state *st = iio_priv(indio_dev); ad799x_read_event_value() local
474 ret = i2c_smbus_read_word_swapped(st->client, ad799x_read_event_value()
488 struct ad799x_state *st = iio_priv(private); ad799x_event_handler() local
491 ret = i2c_smbus_read_byte_data(st->client, AD7998_ALERT_STAT_REG); ad799x_event_handler()
495 if (i2c_smbus_write_byte_data(st->client, AD7998_ALERT_STAT_REG, ad799x_event_handler()
777 struct ad799x_state *st; ad799x_probe() local
782 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); ad799x_probe()
786 st = iio_priv(indio_dev); ad799x_probe()
790 st->id = id->driver_data; ad799x_probe()
792 st->chip_config = &chip_info->irq_config; ad799x_probe()
794 st->chip_config = &chip_info->noirq_config; ad799x_probe()
798 st->reg = devm_regulator_get(&client->dev, "vcc"); ad799x_probe()
799 if (IS_ERR(st->reg)) ad799x_probe()
800 return PTR_ERR(st->reg); ad799x_probe()
801 ret = regulator_enable(st->reg); ad799x_probe()
804 st->vref = devm_regulator_get(&client->dev, "vref"); ad799x_probe()
805 if (IS_ERR(st->vref)) { ad799x_probe()
806 ret = PTR_ERR(st->vref); ad799x_probe()
809 ret = regulator_enable(st->vref); ad799x_probe()
813 st->client = client; ad799x_probe()
817 indio_dev->info = st->chip_config->info; ad799x_probe()
820 indio_dev->channels = st->chip_config->channel; ad799x_probe()
823 ret = ad799x_write_config(st, st->chip_config->default_config); ad799x_probe()
826 ret = ad799x_read_config(st); ad799x_probe()
829 st->config = ret; ad799x_probe()
857 regulator_disable(st->vref); ad799x_probe()
859 regulator_disable(st->reg); ad799x_probe()
867 struct ad799x_state *st = iio_priv(indio_dev); ad799x_remove() local
872 regulator_disable(st->vref); ad799x_remove()
873 regulator_disable(st->reg); ad799x_remove()
874 kfree(st->rx_buf); ad799x_remove()
H A Dad7791.c171 struct ad7791_state *st = ad_sigma_delta_to_ad7791(sd); ad7791_set_mode() local
186 st->mode &= ~AD7791_MODE_SEL_MASK; ad7791_set_mode()
187 st->mode |= AD7791_MODE_SEL(mode); ad7791_set_mode()
189 return ad_sd_write_reg(sd, AD7791_REG_MODE, sizeof(st->mode), st->mode); ad7791_set_mode()
203 struct ad7791_state *st = iio_priv(indio_dev); ad7791_read_raw() local
204 bool unipolar = !!(st->mode & AD7791_MODE_UNIPOLAR); ad7791_read_raw()
230 voltage_uv = regulator_get_voltage(st->reg); ad7791_read_raw()
262 struct ad7791_state *st = iio_priv(indio_dev); ad7791_read_frequency() local
263 unsigned int rate = st->filter & AD7791_FILTER_RATE_MASK; ad7791_read_frequency()
272 struct ad7791_state *st = iio_priv(indio_dev); ad7791_write_frequency() local
288 st->filter &= ~AD7791_FILTER_RATE_MASK; ad7791_write_frequency()
289 st->filter |= i; ad7791_write_frequency()
290 ad_sd_write_reg(&st->sd, AD7791_REG_FILTER, ad7791_write_frequency()
291 sizeof(st->filter), st->filter); ad7791_write_frequency()
330 static int ad7791_setup(struct ad7791_state *st, ad7791_setup() argument
334 st->mode = AD7791_MODE_BUFFER; ad7791_setup()
335 st->filter = AD7791_FILTER_RATE_16_6; ad7791_setup()
340 if ((st->info->flags & AD7791_FLAG_HAS_BUFFER) && !pdata->buffered) ad7791_setup()
341 st->mode &= ~AD7791_MODE_BUFFER; ad7791_setup()
343 if ((st->info->flags & AD7791_FLAG_HAS_BURNOUT) && ad7791_setup()
345 st->mode |= AD7791_MODE_BURNOUT; ad7791_setup()
347 if ((st->info->flags & AD7791_FLAG_HAS_UNIPOLAR) && pdata->unipolar) ad7791_setup()
348 st->mode |= AD7791_MODE_UNIPOLAR; ad7791_setup()
350 return ad_sd_write_reg(&st->sd, AD7791_REG_MODE, sizeof(st->mode), ad7791_setup()
351 st->mode); ad7791_setup()
358 struct ad7791_state *st; ad7791_probe() local
366 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7791_probe()
370 st = iio_priv(indio_dev); ad7791_probe()
372 st->reg = devm_regulator_get(&spi->dev, "refin"); ad7791_probe()
373 if (IS_ERR(st->reg)) ad7791_probe()
374 return PTR_ERR(st->reg); ad7791_probe()
376 ret = regulator_enable(st->reg); ad7791_probe()
380 st->info = &ad7791_chip_infos[spi_get_device_id(spi)->driver_data]; ad7791_probe()
381 ad_sd_init(&st->sd, indio_dev, spi, &ad7791_sigma_delta_info); ad7791_probe()
388 indio_dev->channels = st->info->channels; ad7791_probe()
389 indio_dev->num_channels = st->info->num_channels; ad7791_probe()
390 if (st->info->flags & AD7791_FLAG_HAS_FILTER) ad7791_probe()
399 ret = ad7791_setup(st, pdata); ad7791_probe()
412 regulator_disable(st->reg); ad7791_probe()
420 struct ad7791_state *st = iio_priv(indio_dev); ad7791_remove() local
425 regulator_disable(st->reg); ad7791_remove()
H A Dad7476.c65 struct ad7476_state *st = iio_priv(indio_dev); ad7476_trigger_handler() local
68 b_sent = spi_sync(st->spi, &st->msg); ad7476_trigger_handler()
72 iio_push_to_buffers_with_timestamp(indio_dev, st->data, ad7476_trigger_handler()
80 static void ad7091_reset(struct ad7476_state *st) ad7091_reset() argument
83 spi_read(st->spi, st->data, 1); ad7091_reset()
86 static int ad7476_scan_direct(struct ad7476_state *st) ad7476_scan_direct() argument
90 ret = spi_sync(st->spi, &st->msg); ad7476_scan_direct()
94 return be16_to_cpup((__be16 *)st->data); ad7476_scan_direct()
104 struct ad7476_state *st = iio_priv(indio_dev); ad7476_read_raw() local
113 ret = ad7476_scan_direct(st); ad7476_read_raw()
118 *val = (ret >> st->chip_info->channel[0].scan_type.shift) & ad7476_read_raw()
119 GENMASK(st->chip_info->channel[0].scan_type.realbits - 1, 0); ad7476_read_raw()
122 if (!st->chip_info->int_vref_uv) { ad7476_read_raw()
123 scale_uv = regulator_get_voltage(st->reg); ad7476_read_raw()
127 scale_uv = st->chip_info->int_vref_uv; ad7476_read_raw()
205 struct ad7476_state *st; ad7476_probe() local
209 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7476_probe()
213 st = iio_priv(indio_dev); ad7476_probe()
214 st->chip_info = ad7476_probe()
217 st->reg = devm_regulator_get(&spi->dev, "vcc"); ad7476_probe()
218 if (IS_ERR(st->reg)) ad7476_probe()
219 return PTR_ERR(st->reg); ad7476_probe()
221 ret = regulator_enable(st->reg); ad7476_probe()
227 st->spi = spi; ad7476_probe()
233 indio_dev->channels = st->chip_info->channel; ad7476_probe()
238 st->xfer.rx_buf = &st->data; ad7476_probe()
239 st->xfer.len = st->chip_info->channel[0].scan_type.storagebits / 8; ad7476_probe()
241 spi_message_init(&st->msg); ad7476_probe()
242 spi_message_add_tail(&st->xfer, &st->msg); ad7476_probe()
249 if (st->chip_info->reset) ad7476_probe()
250 st->chip_info->reset(st); ad7476_probe()
260 regulator_disable(st->reg); ad7476_probe()
268 struct ad7476_state *st = iio_priv(indio_dev); ad7476_remove() local
272 regulator_disable(st->reg); ad7476_remove()
H A Dmax1027.c223 struct max1027_state *st = iio_priv(indio_dev); max1027_read_single_value() local
231 st->reg = MAX1027_SETUP_REG | MAX1027_REF_MODE2 | MAX1027_CKS_MODE2; max1027_read_single_value()
232 ret = spi_write(st->spi, &st->reg, 1); max1027_read_single_value()
240 st->reg = MAX1027_CONV_REG | MAX1027_CHAN(chan->channel) | max1027_read_single_value()
242 ret = spi_write(st->spi, &st->reg, 1); max1027_read_single_value()
257 ret = spi_read(st->spi, st->buffer, (chan->type == IIO_TEMP) ? 4 : 2); max1027_read_single_value()
261 *val = be16_to_cpu(st->buffer[0]); max1027_read_single_value()
271 struct max1027_state *st = iio_priv(indio_dev); max1027_read_raw() local
273 mutex_lock(&st->lock); max1027_read_raw()
301 mutex_unlock(&st->lock); max1027_read_raw()
310 struct max1027_state *st = iio_priv(indio_dev); max1027_debugfs_reg_access() local
311 u8 *val = (u8 *)st->buffer; max1027_debugfs_reg_access()
317 return spi_write(st->spi, val, 1); max1027_debugfs_reg_access()
323 struct max1027_state *st = iio_priv(indio_dev); max1027_validate_trigger() local
325 if (st->trig != trig) max1027_validate_trigger()
334 struct max1027_state *st = iio_priv(indio_dev); max1027_set_trigger_state() local
339 st->reg = MAX1027_SETUP_REG | MAX1027_CKS_MODE0 | max1027_set_trigger_state()
341 ret = spi_write(st->spi, &st->reg, 1); max1027_set_trigger_state()
346 st->reg = MAX1027_CONV_REG | MAX1027_CHAN(0) | max1027_set_trigger_state()
348 ret = spi_write(st->spi, &st->reg, 1); max1027_set_trigger_state()
353 st->reg = MAX1027_SETUP_REG | MAX1027_CKS_MODE2 | max1027_set_trigger_state()
355 ret = spi_write(st->spi, &st->reg, 1); max1027_set_trigger_state()
378 struct max1027_state *st = iio_priv(indio_dev); max1027_trigger_handler() local
383 spi_read(st->spi, st->buffer, indio_dev->masklength * 2); max1027_trigger_handler()
385 iio_push_to_buffers(indio_dev, st->buffer); max1027_trigger_handler()
409 struct max1027_state *st; max1027_probe() local
413 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); max1027_probe()
421 st = iio_priv(indio_dev); max1027_probe()
422 st->spi = spi; max1027_probe()
423 st->info = &max1027_chip_info_tbl[spi_get_device_id(spi)->driver_data]; max1027_probe()
425 mutex_init(&st->lock); max1027_probe()
431 indio_dev->channels = st->info->channels; max1027_probe()
432 indio_dev->num_channels = st->info->num_channels; max1027_probe()
433 indio_dev->available_scan_masks = st->info->available_scan_masks; max1027_probe()
435 st->buffer = devm_kmalloc(&indio_dev->dev, max1027_probe()
438 if (st->buffer == NULL) { max1027_probe()
450 st->trig = devm_iio_trigger_alloc(&spi->dev, "%s-trigger", max1027_probe()
452 if (st->trig == NULL) { max1027_probe()
458 st->trig->ops = &max1027_trigger_ops; max1027_probe()
459 st->trig->dev.parent = &spi->dev; max1027_probe()
460 iio_trigger_set_drvdata(st->trig, indio_dev); max1027_probe()
461 iio_trigger_register(st->trig); max1027_probe()
467 spi->dev.driver->name, st->trig); max1027_probe()
474 st->reg = MAX1027_AVG_REG; max1027_probe()
475 ret = spi_write(st->spi, &st->reg, 1); max1027_probe()
H A Dad7793.c185 struct ad7793_state *st = ad_sigma_delta_to_ad7793(sd); ad7793_set_channel() local
187 st->conf &= ~AD7793_CONF_CHAN_MASK; ad7793_set_channel()
188 st->conf |= AD7793_CONF_CHAN(channel); ad7793_set_channel()
190 return ad_sd_write_reg(&st->sd, AD7793_REG_CONF, 2, st->conf); ad7793_set_channel()
196 struct ad7793_state *st = ad_sigma_delta_to_ad7793(sd); ad7793_set_mode() local
198 st->mode &= ~AD7793_MODE_SEL_MASK; ad7793_set_mode()
199 st->mode |= AD7793_MODE_SEL(mode); ad7793_set_mode()
201 return ad_sd_write_reg(&st->sd, AD7793_REG_MODE, 2, st->mode); ad7793_set_mode()
221 static int ad7793_calibrate_all(struct ad7793_state *st) ad7793_calibrate_all() argument
223 return ad_sd_calibrate_all(&st->sd, ad7793_calib_arr, ad7793_calibrate_all()
227 static int ad7793_check_platform_data(struct ad7793_state *st, ad7793_check_platform_data() argument
236 if (!(st->chip_info->flags & AD7793_FLAG_HAS_CLKSEL) && ad7793_check_platform_data()
240 if (!(st->chip_info->flags & AD7793_FLAG_HAS_REFSEL) && ad7793_check_platform_data()
244 if (!(st->chip_info->flags & AD7793_FLAG_HAS_VBIAS) && ad7793_check_platform_data()
248 if (!(st->chip_info->flags & AD7793_HAS_EXITATION_CURRENT) && ad7793_check_platform_data()
259 struct ad7793_state *st = iio_priv(indio_dev); ad7793_setup() local
264 ret = ad7793_check_platform_data(st, pdata); ad7793_setup()
269 ret = spi_write(st->sd.spi, (u8 *)&ret, sizeof(ret)); ad7793_setup()
275 ret = ad_sd_read_reg(&st->sd, AD7793_REG_ID, 1, &id); ad7793_setup()
281 if (id != st->chip_info->id) { ad7793_setup()
282 dev_err(&st->sd.spi->dev, "device ID query failed\n"); ad7793_setup()
286 st->mode = AD7793_MODE_RATE(1); ad7793_setup()
287 st->conf = 0; ad7793_setup()
289 if (st->chip_info->flags & AD7793_FLAG_HAS_CLKSEL) ad7793_setup()
290 st->mode |= AD7793_MODE_CLKSRC(pdata->clock_src); ad7793_setup()
291 if (st->chip_info->flags & AD7793_FLAG_HAS_REFSEL) ad7793_setup()
292 st->conf |= AD7793_CONF_REFSEL(pdata->refsel); ad7793_setup()
293 if (st->chip_info->flags & AD7793_FLAG_HAS_VBIAS) ad7793_setup()
294 st->conf |= AD7793_CONF_VBIAS(pdata->bias_voltage); ad7793_setup()
295 if (pdata->buffered || !(st->chip_info->flags & AD7793_FLAG_HAS_BUFFER)) ad7793_setup()
296 st->conf |= AD7793_CONF_BUF; ad7793_setup()
298 (st->chip_info->flags & AD7793_FLAG_HAS_VBIAS)) ad7793_setup()
299 st->conf |= AD7793_CONF_BOOST; ad7793_setup()
301 st->conf |= AD7793_CONF_BO_EN; ad7793_setup()
303 st->conf |= AD7793_CONF_UNIPOLAR; ad7793_setup()
305 if (!(st->chip_info->flags & AD7793_FLAG_HAS_GAIN)) ad7793_setup()
306 st->conf |= AD7793_CONF_GAIN(7); ad7793_setup()
308 ret = ad7793_set_mode(&st->sd, AD_SD_MODE_IDLE); ad7793_setup()
312 ret = ad7793_set_channel(&st->sd, 0); ad7793_setup()
316 if (st->chip_info->flags & AD7793_HAS_EXITATION_CURRENT) { ad7793_setup()
317 ret = ad_sd_write_reg(&st->sd, AD7793_REG_IO, 1, ad7793_setup()
324 ret = ad7793_calibrate_all(st); ad7793_setup()
329 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) { ad7793_setup()
331 >> (st->chip_info->channels[0].scan_type.realbits - ad7793_setup()
332 (!!(st->conf & AD7793_CONF_UNIPOLAR) ? 0 : 1)); ad7793_setup()
335 st->scale_avail[i][1] = do_div(scale_uv, 100000000) * 10; ad7793_setup()
336 st->scale_avail[i][0] = scale_uv; ad7793_setup()
341 dev_err(&st->sd.spi->dev, "setup failed\n"); ad7793_setup()
356 struct ad7793_state *st = iio_priv(indio_dev); ad7793_read_frequency() local
359 st->chip_info->sample_freq_avail[AD7793_MODE_RATE(st->mode)]); ad7793_read_frequency()
368 struct ad7793_state *st = iio_priv(indio_dev); ad7793_write_frequency() local
389 if (lval == st->chip_info->sample_freq_avail[i]) { ad7793_write_frequency()
391 st->mode &= ~AD7793_MODE_RATE(-1); ad7793_write_frequency()
392 st->mode |= AD7793_MODE_RATE(i); ad7793_write_frequency()
393 ad_sd_write_reg(&st->sd, AD7793_REG_MODE, ad7793_write_frequency()
394 sizeof(st->mode), st->mode); ad7793_write_frequency()
416 struct ad7793_state *st = iio_priv(indio_dev); ad7793_show_scale_available() local
419 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) ad7793_show_scale_available()
420 len += sprintf(buf + len, "%d.%09u ", st->scale_avail[i][0], ad7793_show_scale_available()
421 st->scale_avail[i][1]); ad7793_show_scale_available()
459 struct ad7793_state *st = iio_priv(indio_dev); ad7793_read_raw() local
462 bool unipolar = !!(st->conf & AD7793_CONF_UNIPOLAR); ad7793_read_raw()
476 *val = st-> ad7793_read_raw()
477 scale_avail[(st->conf >> 8) & 0x7][0]; ad7793_read_raw()
478 *val2 = st-> ad7793_read_raw()
479 scale_avail[(st->conf >> 8) & 0x7][1]; ad7793_read_raw()
525 struct ad7793_state *st = iio_priv(indio_dev); ad7793_write_raw() local
538 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) ad7793_write_raw()
539 if (val2 == st->scale_avail[i][1]) { ad7793_write_raw()
541 tmp = st->conf; ad7793_write_raw()
542 st->conf &= ~AD7793_CONF_GAIN(-1); ad7793_write_raw()
543 st->conf |= AD7793_CONF_GAIN(i); ad7793_write_raw()
545 if (tmp == st->conf) ad7793_write_raw()
548 ad_sd_write_reg(&st->sd, AD7793_REG_CONF, ad7793_write_raw()
549 sizeof(st->conf), st->conf); ad7793_write_raw()
550 ad7793_calibrate_all(st); ad7793_write_raw()
746 struct ad7793_state *st; ad7793_probe() local
760 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7793_probe()
764 st = iio_priv(indio_dev); ad7793_probe()
766 ad_sd_init(&st->sd, indio_dev, spi, &ad7793_sigma_delta_info); ad7793_probe()
769 st->reg = devm_regulator_get(&spi->dev, "refin"); ad7793_probe()
770 if (IS_ERR(st->reg)) ad7793_probe()
771 return PTR_ERR(st->reg); ad7793_probe()
773 ret = regulator_enable(st->reg); ad7793_probe()
777 vref_mv = regulator_get_voltage(st->reg); ad7793_probe()
788 st->chip_info = ad7793_probe()
796 indio_dev->channels = st->chip_info->channels; ad7793_probe()
797 indio_dev->num_channels = st->chip_info->num_channels; ad7793_probe()
798 indio_dev->info = st->chip_info->iio_info; ad7793_probe()
818 regulator_disable(st->reg); ad7793_probe()
827 struct ad7793_state *st = iio_priv(indio_dev); ad7793_remove() local
833 regulator_disable(st->reg); ad7793_remove()
H A Dmax1363.c340 static int max1363_write_basic_config(struct max1363_state *st) max1363_write_basic_config() argument
342 u8 tx_buf[2] = { st->setupbyte, st->configbyte }; max1363_write_basic_config()
344 return st->send(st->client, tx_buf, 2); max1363_write_basic_config()
347 static int max1363_set_scan_mode(struct max1363_state *st) max1363_set_scan_mode() argument
349 st->configbyte &= ~(MAX1363_CHANNEL_SEL_MASK max1363_set_scan_mode()
352 st->configbyte |= st->current_mode->conf; max1363_set_scan_mode()
354 return max1363_write_basic_config(st); max1363_set_scan_mode()
365 struct max1363_state *st = iio_priv(indio_dev); max1363_read_single_chan() local
366 struct i2c_client *client = st->client; max1363_read_single_chan()
376 if (st->monitor_on || iio_buffer_enabled(indio_dev)) { max1363_read_single_chan()
382 if (st->current_mode != &max1363_mode_table[chan->address]) { max1363_read_single_chan()
384 st->current_mode = &max1363_mode_table[chan->address]; max1363_read_single_chan()
385 ret = max1363_set_scan_mode(st); max1363_read_single_chan()
389 if (st->chip_info->bits != 8) { max1363_read_single_chan()
391 data = st->recv(client, rxbuf, 2); max1363_read_single_chan()
397 ((1 << st->chip_info->bits) - 1); max1363_read_single_chan()
400 data = st->recv(client, rxbuf, 1); max1363_read_single_chan()
420 struct max1363_state *st = iio_priv(indio_dev); max1363_read_raw() local
430 *val = st->vref_uv / 1000; max1363_read_raw()
431 *val2 = st->chip_info->bits; max1363_read_raw()
683 struct max1363_state *st = iio_priv(dev_to_iio_dev(dev)); max1363_monitor_show_freq() local
684 return sprintf(buf, "%d\n", max1363_monitor_speeds[st->monitor_speed]); max1363_monitor_show_freq()
693 struct max1363_state *st = iio_priv(indio_dev); max1363_monitor_store_freq() local
710 st->monitor_speed = i; max1363_monitor_store_freq()
728 struct max1363_state *st = iio_priv(indio_dev); max1363_read_thresh() local
730 *val = st->thresh_low[chan->channel]; max1363_read_thresh()
732 *val = st->thresh_high[chan->channel]; max1363_read_thresh()
741 struct max1363_state *st = iio_priv(indio_dev); max1363_write_thresh() local
743 switch (st->chip_info->bits) { max1363_write_thresh()
756 st->thresh_low[chan->channel] = val; max1363_write_thresh()
759 st->thresh_high[chan->channel] = val; max1363_write_thresh()
790 struct max1363_state *st = iio_priv(indio_dev); max1363_event_handler() local
794 u8 tx[2] = { st->setupbyte, max1363_event_handler()
795 MAX1363_MON_INT_ENABLE | (st->monitor_speed << 1) | 0xF0 }; max1363_event_handler()
797 st->recv(st->client, &rx, 1); max1363_event_handler()
801 st->send(st->client, tx, 2); max1363_event_handler()
810 struct max1363_state *st = iio_priv(indio_dev); max1363_read_event_config() local
816 val = (1 << number) & st->mask_low; max1363_read_event_config()
818 val = (1 << number) & st->mask_high; max1363_read_event_config()
824 static int max1363_monitor_mode_update(struct max1363_state *st, int enabled) max1363_monitor_mode_update() argument
834 st->setupbyte &= ~MAX1363_SETUP_MONITOR_SETUP; max1363_monitor_mode_update()
835 st->configbyte &= ~MAX1363_SCAN_MASK; max1363_monitor_mode_update()
836 st->monitor_on = false; max1363_monitor_mode_update()
837 return max1363_write_basic_config(st); max1363_monitor_mode_update()
841 st->setupbyte |= MAX1363_SETUP_MONITOR_SETUP; max1363_monitor_mode_update()
842 st->configbyte &= ~(MAX1363_CHANNEL_SEL_MASK max1363_monitor_mode_update()
845 st->configbyte |= MAX1363_CONFIG_SCAN_MONITOR_MODE; max1363_monitor_mode_update()
846 if ((st->mask_low | st->mask_high) & 0x0F) { max1363_monitor_mode_update()
847 st->configbyte |= max1363_mode_table[s0to3].conf; max1363_monitor_mode_update()
849 } else if ((st->mask_low | st->mask_high) & 0x30) { max1363_monitor_mode_update()
850 st->configbyte |= max1363_mode_table[d0m1to2m3].conf; max1363_monitor_mode_update()
853 st->configbyte |= max1363_mode_table[d1m0to3m2].conf; max1363_monitor_mode_update()
863 tx_buf[0] = st->configbyte; max1363_monitor_mode_update()
864 tx_buf[1] = st->setupbyte; max1363_monitor_mode_update()
865 tx_buf[2] = (st->monitor_speed << 1); max1363_monitor_mode_update()
874 if (st->mask_low & (1 << j)) { max1363_monitor_mode_update()
875 tx_buf[i] = (st->thresh_low[j] >> 4) & 0xFF; max1363_monitor_mode_update()
876 tx_buf[i + 1] = (st->thresh_low[j] << 4) & 0xF0; max1363_monitor_mode_update()
884 if (st->mask_high & (1 << j)) { max1363_monitor_mode_update()
886 (st->thresh_high[j] >> 8) & 0x0F; max1363_monitor_mode_update()
887 tx_buf[i + 2] = st->thresh_high[j] & 0xFF; max1363_monitor_mode_update()
899 ret = st->send(st->client, tx_buf, len); max1363_monitor_mode_update()
914 tx_buf[0] = st->setupbyte; max1363_monitor_mode_update()
915 tx_buf[1] = MAX1363_MON_INT_ENABLE | (st->monitor_speed << 1) | 0xF0; max1363_monitor_mode_update()
916 ret = st->send(st->client, tx_buf, 2); max1363_monitor_mode_update()
924 st->monitor_on = true; max1363_monitor_mode_update()
962 struct max1363_state *st = iio_priv(indio_dev); max1363_write_event_config() local
967 unifiedmask = st->mask_low | st->mask_high; max1363_write_event_config()
971 st->mask_low &= ~(1 << number); max1363_write_event_config()
977 st->mask_low |= (1 << number); max1363_write_event_config()
981 st->mask_high &= ~(1 << number); max1363_write_event_config()
987 st->mask_high |= (1 << number); max1363_write_event_config()
991 max1363_monitor_mode_update(st, !!(st->mask_high | st->mask_low)); max1363_write_event_config()
1016 struct max1363_state *st = iio_priv(indio_dev); max1363_update_scan_mode() local
1022 st->current_mode = max1363_match_mode(scan_mask, st->chip_info); max1363_update_scan_mode()
1023 if (!st->current_mode) max1363_update_scan_mode()
1025 max1363_set_scan_mode(st); max1363_update_scan_mode()
1430 static int max1363_initial_setup(struct max1363_state *st) max1363_initial_setup() argument
1432 st->setupbyte = MAX1363_SETUP_INT_CLOCK max1363_initial_setup()
1436 if (st->vref) max1363_initial_setup()
1437 st->setupbyte |= MAX1363_SETUP_AIN3_IS_REF_EXT_TO_REF; max1363_initial_setup()
1439 st->setupbyte |= MAX1363_SETUP_POWER_UP_INT_REF max1363_initial_setup()
1443 st->setupbyte = MAX1363_SETUP_BYTE(st->setupbyte); max1363_initial_setup()
1444 st->current_mode = &max1363_mode_table[st->chip_info->default_mode]; max1363_initial_setup()
1445 st->configbyte = MAX1363_CONFIG_BYTE(st->configbyte); max1363_initial_setup()
1447 return max1363_set_scan_mode(st); max1363_initial_setup()
1452 struct max1363_state *st = iio_priv(indio_dev); max1363_alloc_scan_masks() local
1458 (st->chip_info->num_modes + 1), GFP_KERNEL); max1363_alloc_scan_masks()
1462 for (i = 0; i < st->chip_info->num_modes; i++) max1363_alloc_scan_masks()
1464 max1363_mode_table[st->chip_info->mode_list[i]] max1363_alloc_scan_masks()
1476 struct max1363_state *st = iio_priv(indio_dev); max1363_trigger_handler() local
1480 unsigned long numvals = bitmap_weight(st->current_mode->modemask, max1363_trigger_handler()
1484 if (st->chip_info->bits != 8) max1363_trigger_handler()
1503 if (st->chip_info->bits != 8) max1363_trigger_handler()
1504 b_sent = st->recv(st->client, rxbuf, numvals * 2); max1363_trigger_handler()
1506 b_sent = st->recv(st->client, rxbuf, numvals); max1363_trigger_handler()
1524 struct max1363_state *st; max1363_probe() local
1538 st = iio_priv(indio_dev); max1363_probe()
1540 st->reg = devm_regulator_get(&client->dev, "vcc"); max1363_probe()
1541 if (IS_ERR(st->reg)) { max1363_probe()
1542 ret = PTR_ERR(st->reg); max1363_probe()
1546 ret = regulator_enable(st->reg); max1363_probe()
1553 st->chip_info = &max1363_chip_info_tbl[id->driver_data]; max1363_probe()
1554 st->client = client; max1363_probe()
1556 st->vref_uv = st->chip_info->int_vref_mv * 1000; max1363_probe()
1564 st->vref = vref; max1363_probe()
1570 st->vref_uv = vref_uv; max1363_probe()
1574 st->send = i2c_master_send; max1363_probe()
1575 st->recv = i2c_master_recv; max1363_probe()
1577 && st->chip_info->bits == 8) { max1363_probe()
1578 st->send = max1363_smbus_send; max1363_probe()
1579 st->recv = max1363_smbus_recv; max1363_probe()
1592 indio_dev->channels = st->chip_info->channels; max1363_probe()
1593 indio_dev->num_channels = st->chip_info->num_channels; max1363_probe()
1594 indio_dev->info = st->chip_info->info; max1363_probe()
1596 ret = max1363_initial_setup(st); max1363_probe()
1606 ret = devm_request_threaded_irq(&client->dev, st->client->irq, max1363_probe()
1626 if (st->vref) max1363_probe()
1627 regulator_disable(st->vref); max1363_probe()
1628 regulator_disable(st->reg); max1363_probe()
1637 struct max1363_state *st = iio_priv(indio_dev); max1363_remove() local
1641 if (st->vref) max1363_remove()
1642 regulator_disable(st->vref); max1363_remove()
1643 regulator_disable(st->reg); max1363_remove()
/linux-4.1.27/drivers/staging/iio/adc/
H A Dad7606_core.c27 int ad7606_reset(struct ad7606_state *st) ad7606_reset() argument
29 if (gpio_is_valid(st->pdata->gpio_reset)) { ad7606_reset()
30 gpio_set_value(st->pdata->gpio_reset, 1); ad7606_reset()
32 gpio_set_value(st->pdata->gpio_reset, 0); ad7606_reset()
41 struct ad7606_state *st = iio_priv(indio_dev); ad7606_scan_direct() local
44 st->done = false; ad7606_scan_direct()
45 gpio_set_value(st->pdata->gpio_convst, 1); ad7606_scan_direct()
47 ret = wait_event_interruptible(st->wq_data_avail, st->done); ad7606_scan_direct()
51 if (gpio_is_valid(st->pdata->gpio_frstdata)) { ad7606_scan_direct()
52 ret = st->bops->read_block(st->dev, 1, st->data); ad7606_scan_direct()
55 if (!gpio_get_value(st->pdata->gpio_frstdata)) { ad7606_scan_direct()
57 ad7606_reset(st); ad7606_scan_direct()
61 ret = st->bops->read_block(st->dev, ad7606_scan_direct()
62 st->chip_info->num_channels - 1, &st->data[1]); ad7606_scan_direct()
66 ret = st->bops->read_block(st->dev, ad7606_scan_direct()
67 st->chip_info->num_channels, st->data); ad7606_scan_direct()
72 ret = st->data[ch]; ad7606_scan_direct()
75 gpio_set_value(st->pdata->gpio_convst, 0); ad7606_scan_direct()
87 struct ad7606_state *st = iio_priv(indio_dev); ad7606_read_raw() local
103 *val = st->range * 2; ad7606_read_raw()
104 *val2 = st->chip_info->channels[0].scan_type.realbits; ad7606_read_raw()
114 struct ad7606_state *st = iio_priv(indio_dev); ad7606_show_range() local
116 return sprintf(buf, "%u\n", st->range); ad7606_show_range()
123 struct ad7606_state *st = iio_priv(indio_dev); ad7606_store_range() local
136 gpio_set_value(st->pdata->gpio_range, lval == 10000); ad7606_store_range()
137 st->range = lval; ad7606_store_range()
151 struct ad7606_state *st = iio_priv(indio_dev); ad7606_show_oversampling_ratio() local
153 return sprintf(buf, "%u\n", st->oversampling); ad7606_show_oversampling_ratio()
172 struct ad7606_state *st = iio_priv(indio_dev); ad7606_store_oversampling_ratio() local
187 gpio_set_value(st->pdata->gpio_os0, (ret >> 0) & 1); ad7606_store_oversampling_ratio()
188 gpio_set_value(st->pdata->gpio_os1, (ret >> 1) & 1); ad7606_store_oversampling_ratio()
189 gpio_set_value(st->pdata->gpio_os1, (ret >> 2) & 1); ad7606_store_oversampling_ratio()
190 st->oversampling = lval; ad7606_store_oversampling_ratio()
304 static int ad7606_request_gpios(struct ad7606_state *st) ad7606_request_gpios() argument
308 .gpio = st->pdata->gpio_os0, ad7606_request_gpios()
309 .flags = GPIOF_DIR_OUT | ((st->oversampling & 1) ? ad7606_request_gpios()
314 .gpio = st->pdata->gpio_os1, ad7606_request_gpios()
315 .flags = GPIOF_DIR_OUT | ((st->oversampling & 2) ? ad7606_request_gpios()
320 .gpio = st->pdata->gpio_os2, ad7606_request_gpios()
321 .flags = GPIOF_DIR_OUT | ((st->oversampling & 4) ? ad7606_request_gpios()
328 if (gpio_is_valid(st->pdata->gpio_convst)) { ad7606_request_gpios()
329 ret = gpio_request_one(st->pdata->gpio_convst, ad7606_request_gpios()
333 dev_err(st->dev, "failed to request GPIO CONVST\n"); ad7606_request_gpios()
341 if (gpio_is_valid(st->pdata->gpio_os0) && ad7606_request_gpios()
342 gpio_is_valid(st->pdata->gpio_os1) && ad7606_request_gpios()
343 gpio_is_valid(st->pdata->gpio_os2)) { ad7606_request_gpios()
349 if (gpio_is_valid(st->pdata->gpio_reset)) { ad7606_request_gpios()
350 ret = gpio_request_one(st->pdata->gpio_reset, ad7606_request_gpios()
357 if (gpio_is_valid(st->pdata->gpio_range)) { ad7606_request_gpios()
358 ret = gpio_request_one(st->pdata->gpio_range, GPIOF_DIR_OUT | ad7606_request_gpios()
359 ((st->range == 10000) ? GPIOF_INIT_HIGH : ad7606_request_gpios()
364 if (gpio_is_valid(st->pdata->gpio_stby)) { ad7606_request_gpios()
365 ret = gpio_request_one(st->pdata->gpio_stby, ad7606_request_gpios()
372 if (gpio_is_valid(st->pdata->gpio_frstdata)) { ad7606_request_gpios()
373 ret = gpio_request_one(st->pdata->gpio_frstdata, GPIOF_IN, ad7606_request_gpios()
382 if (gpio_is_valid(st->pdata->gpio_stby)) ad7606_request_gpios()
383 gpio_free(st->pdata->gpio_stby); ad7606_request_gpios()
385 if (gpio_is_valid(st->pdata->gpio_range)) ad7606_request_gpios()
386 gpio_free(st->pdata->gpio_range); ad7606_request_gpios()
388 if (gpio_is_valid(st->pdata->gpio_reset)) ad7606_request_gpios()
389 gpio_free(st->pdata->gpio_reset); ad7606_request_gpios()
391 if (gpio_is_valid(st->pdata->gpio_os0) && ad7606_request_gpios()
392 gpio_is_valid(st->pdata->gpio_os1) && ad7606_request_gpios()
393 gpio_is_valid(st->pdata->gpio_os2)) ad7606_request_gpios()
396 gpio_free(st->pdata->gpio_convst); ad7606_request_gpios()
401 static void ad7606_free_gpios(struct ad7606_state *st) ad7606_free_gpios() argument
403 if (gpio_is_valid(st->pdata->gpio_frstdata)) ad7606_free_gpios()
404 gpio_free(st->pdata->gpio_frstdata); ad7606_free_gpios()
405 if (gpio_is_valid(st->pdata->gpio_stby)) ad7606_free_gpios()
406 gpio_free(st->pdata->gpio_stby); ad7606_free_gpios()
407 if (gpio_is_valid(st->pdata->gpio_range)) ad7606_free_gpios()
408 gpio_free(st->pdata->gpio_range); ad7606_free_gpios()
409 if (gpio_is_valid(st->pdata->gpio_reset)) ad7606_free_gpios()
410 gpio_free(st->pdata->gpio_reset); ad7606_free_gpios()
411 if (gpio_is_valid(st->pdata->gpio_os0) && ad7606_free_gpios()
412 gpio_is_valid(st->pdata->gpio_os1) && ad7606_free_gpios()
413 gpio_is_valid(st->pdata->gpio_os2)) { ad7606_free_gpios()
414 gpio_free(st->pdata->gpio_os2); ad7606_free_gpios()
415 gpio_free(st->pdata->gpio_os1); ad7606_free_gpios()
416 gpio_free(st->pdata->gpio_os0); ad7606_free_gpios()
418 gpio_free(st->pdata->gpio_convst); ad7606_free_gpios()
427 struct ad7606_state *st = iio_priv(indio_dev); ad7606_interrupt() local
430 schedule_work(&st->poll_work); ad7606_interrupt()
432 st->done = true; ad7606_interrupt()
433 wake_up_interruptible(&st->wq_data_avail); ad7606_interrupt()
468 struct ad7606_state *st; ad7606_probe() local
472 indio_dev = devm_iio_device_alloc(dev, sizeof(*st)); ad7606_probe()
476 st = iio_priv(indio_dev); ad7606_probe()
478 st->dev = dev; ad7606_probe()
479 st->bops = bops; ad7606_probe()
480 st->base_address = base_address; ad7606_probe()
481 st->range = pdata->default_range == 10000 ? 10000 : 5000; ad7606_probe()
487 st->oversampling = 0; ad7606_probe()
489 st->oversampling = pdata->default_os; ad7606_probe()
492 st->reg = devm_regulator_get(dev, "vcc"); ad7606_probe()
493 if (!IS_ERR(st->reg)) { ad7606_probe()
494 ret = regulator_enable(st->reg); ad7606_probe()
499 st->pdata = pdata; ad7606_probe()
500 st->chip_info = &ad7606_chip_info_tbl[id]; ad7606_probe()
503 if (gpio_is_valid(st->pdata->gpio_os0) && ad7606_probe()
504 gpio_is_valid(st->pdata->gpio_os1) && ad7606_probe()
505 gpio_is_valid(st->pdata->gpio_os2)) { ad7606_probe()
506 if (gpio_is_valid(st->pdata->gpio_range)) ad7606_probe()
511 if (gpio_is_valid(st->pdata->gpio_range)) ad7606_probe()
517 indio_dev->name = st->chip_info->name; ad7606_probe()
518 indio_dev->channels = st->chip_info->channels; ad7606_probe()
519 indio_dev->num_channels = st->chip_info->num_channels; ad7606_probe()
521 init_waitqueue_head(&st->wq_data_avail); ad7606_probe()
523 ret = ad7606_request_gpios(st); ad7606_probe()
527 ret = ad7606_reset(st); ad7606_probe()
529 dev_warn(st->dev, "failed to RESET: no RESET GPIO specified\n"); ad7606_probe()
532 IRQF_TRIGGER_FALLING, st->chip_info->name, indio_dev); ad7606_probe()
552 ad7606_free_gpios(st); ad7606_probe()
555 if (!IS_ERR(st->reg)) ad7606_probe()
556 regulator_disable(st->reg); ad7606_probe()
562 struct ad7606_state *st = iio_priv(indio_dev); ad7606_remove() local
568 if (!IS_ERR(st->reg)) ad7606_remove()
569 regulator_disable(st->reg); ad7606_remove()
571 ad7606_free_gpios(st); ad7606_remove()
578 struct ad7606_state *st = iio_priv(indio_dev); ad7606_suspend() local
580 if (gpio_is_valid(st->pdata->gpio_stby)) { ad7606_suspend()
581 if (gpio_is_valid(st->pdata->gpio_range)) ad7606_suspend()
582 gpio_set_value(st->pdata->gpio_range, 1); ad7606_suspend()
583 gpio_set_value(st->pdata->gpio_stby, 0); ad7606_suspend()
589 struct ad7606_state *st = iio_priv(indio_dev); ad7606_resume() local
591 if (gpio_is_valid(st->pdata->gpio_stby)) { ad7606_resume()
592 if (gpio_is_valid(st->pdata->gpio_range)) ad7606_resume()
593 gpio_set_value(st->pdata->gpio_range, ad7606_resume()
594 st->range == 10000); ad7606_resume()
596 gpio_set_value(st->pdata->gpio_stby, 1); ad7606_resume()
597 ad7606_reset(st); ad7606_resume()
H A Dad7280a.c168 static int ad7280_check_crc(struct ad7280_state *st, unsigned val) ad7280_check_crc() argument
170 unsigned char crc = ad7280_calc_crc8(st->crc_tab, val >> 10); ad7280_check_crc()
186 static void ad7280_delay(struct ad7280_state *st) ad7280_delay() argument
188 if (st->readback_delay_us < 50) ad7280_delay()
189 udelay(st->readback_delay_us); ad7280_delay()
194 static int __ad7280_read32(struct ad7280_state *st, unsigned *val) __ad7280_read32() argument
198 .tx_buf = &st->buf[0], __ad7280_read32()
199 .rx_buf = &st->buf[1], __ad7280_read32()
203 st->buf[0] = cpu_to_be32(AD7280A_READ_TXVAL); __ad7280_read32()
205 ret = spi_sync_transfer(st->spi, &t, 1); __ad7280_read32()
209 *val = be32_to_cpu(st->buf[1]); __ad7280_read32()
214 static int ad7280_write(struct ad7280_state *st, unsigned devaddr, ad7280_write() argument
220 reg |= ad7280_calc_crc8(st->crc_tab, reg >> 11) << 3 | 0x2; ad7280_write()
221 st->buf[0] = cpu_to_be32(reg); ad7280_write()
223 return spi_write(st->spi, &st->buf[0], 4); ad7280_write()
226 static int ad7280_read(struct ad7280_state *st, unsigned devaddr, ad7280_read() argument
233 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, ad7280_read()
236 st->ctrl_hb); ad7280_read()
241 ret = ad7280_write(st, devaddr, AD7280A_CONTROL_HB, 0, ad7280_read()
244 st->ctrl_hb); ad7280_read()
249 ret = ad7280_write(st, devaddr, AD7280A_READ, 0, addr << 2); ad7280_read()
253 __ad7280_read32(st, &tmp); ad7280_read()
255 if (ad7280_check_crc(st, tmp)) ad7280_read()
264 static int ad7280_read_channel(struct ad7280_state *st, unsigned devaddr, ad7280_read_channel() argument
270 ret = ad7280_write(st, devaddr, AD7280A_READ, 0, addr << 2); ad7280_read_channel()
274 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, ad7280_read_channel()
277 st->ctrl_hb); ad7280_read_channel()
281 ret = ad7280_write(st, devaddr, AD7280A_CONTROL_HB, 0, ad7280_read_channel()
285 st->ctrl_hb); ad7280_read_channel()
289 ad7280_delay(st); ad7280_read_channel()
291 __ad7280_read32(st, &tmp); ad7280_read_channel()
293 if (ad7280_check_crc(st, tmp)) ad7280_read_channel()
302 static int ad7280_read_all_channels(struct ad7280_state *st, unsigned cnt, ad7280_read_all_channels() argument
308 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ, 1, ad7280_read_all_channels()
313 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, ad7280_read_all_channels()
317 st->ctrl_hb); ad7280_read_all_channels()
321 ad7280_delay(st); ad7280_read_all_channels()
324 __ad7280_read32(st, &tmp); ad7280_read_all_channels()
326 if (ad7280_check_crc(st, tmp)) ad7280_read_all_channels()
339 static int ad7280_chain_setup(struct ad7280_state *st) ad7280_chain_setup() argument
344 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_LB, 1, ad7280_chain_setup()
349 st->ctrl_lb); ad7280_chain_setup()
353 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_LB, 1, ad7280_chain_setup()
357 st->ctrl_lb); ad7280_chain_setup()
361 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_READ, 1, ad7280_chain_setup()
367 __ad7280_read32(st, &val); ad7280_chain_setup()
371 if (ad7280_check_crc(st, val)) ad7280_chain_setup()
386 struct ad7280_state *st = iio_priv(indio_dev); ad7280_show_balance_sw() local
390 !!(st->cb_mask[this_attr->address >> 8] & ad7280_show_balance_sw()
400 struct ad7280_state *st = iio_priv(indio_dev); ad7280_store_balance_sw() local
415 st->cb_mask[devaddr] |= 1 << (ch + 2); ad7280_store_balance_sw()
417 st->cb_mask[devaddr] &= ~(1 << (ch + 2)); ad7280_store_balance_sw()
419 ret = ad7280_write(st, devaddr, AD7280A_CELL_BALANCE, ad7280_store_balance_sw()
420 0, st->cb_mask[devaddr]); ad7280_store_balance_sw()
431 struct ad7280_state *st = iio_priv(indio_dev); ad7280_show_balance_timer() local
437 ret = ad7280_read(st, this_attr->address >> 8, ad7280_show_balance_timer()
455 struct ad7280_state *st = iio_priv(indio_dev); ad7280_store_balance_timer() local
470 ret = ad7280_write(st, this_attr->address >> 8, ad7280_store_balance_timer()
485 static int ad7280_channel_init(struct ad7280_state *st) ad7280_channel_init() argument
489 st->channels = kcalloc((st->slave_num + 1) * 12 + 2, ad7280_channel_init()
490 sizeof(*st->channels), GFP_KERNEL); ad7280_channel_init()
491 if (st->channels == NULL) ad7280_channel_init()
494 for (dev = 0, cnt = 0; dev <= st->slave_num; dev++) ad7280_channel_init()
498 st->channels[cnt].type = IIO_VOLTAGE; ad7280_channel_init()
499 st->channels[cnt].differential = 1; ad7280_channel_init()
500 st->channels[cnt].channel = (dev * 6) + ch; ad7280_channel_init()
501 st->channels[cnt].channel2 = ad7280_channel_init()
502 st->channels[cnt].channel + 1; ad7280_channel_init()
504 st->channels[cnt].type = IIO_TEMP; ad7280_channel_init()
505 st->channels[cnt].channel = (dev * 6) + ch - 6; ad7280_channel_init()
507 st->channels[cnt].indexed = 1; ad7280_channel_init()
508 st->channels[cnt].info_mask_separate = ad7280_channel_init()
510 st->channels[cnt].info_mask_shared_by_type = ad7280_channel_init()
512 st->channels[cnt].address = ad7280_channel_init()
514 st->channels[cnt].scan_index = cnt; ad7280_channel_init()
515 st->channels[cnt].scan_type.sign = 'u'; ad7280_channel_init()
516 st->channels[cnt].scan_type.realbits = 12; ad7280_channel_init()
517 st->channels[cnt].scan_type.storagebits = 32; ad7280_channel_init()
518 st->channels[cnt].scan_type.shift = 0; ad7280_channel_init()
521 st->channels[cnt].type = IIO_VOLTAGE; ad7280_channel_init()
522 st->channels[cnt].differential = 1; ad7280_channel_init()
523 st->channels[cnt].channel = 0; ad7280_channel_init()
524 st->channels[cnt].channel2 = dev * 6; ad7280_channel_init()
525 st->channels[cnt].address = AD7280A_ALL_CELLS; ad7280_channel_init()
526 st->channels[cnt].indexed = 1; ad7280_channel_init()
527 st->channels[cnt].info_mask_separate = BIT(IIO_CHAN_INFO_RAW); ad7280_channel_init()
528 st->channels[cnt].info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE); ad7280_channel_init()
529 st->channels[cnt].scan_index = cnt; ad7280_channel_init()
530 st->channels[cnt].scan_type.sign = 'u'; ad7280_channel_init()
531 st->channels[cnt].scan_type.realbits = 32; ad7280_channel_init()
532 st->channels[cnt].scan_type.storagebits = 32; ad7280_channel_init()
533 st->channels[cnt].scan_type.shift = 0; ad7280_channel_init()
535 st->channels[cnt].type = IIO_TIMESTAMP; ad7280_channel_init()
536 st->channels[cnt].channel = -1; ad7280_channel_init()
537 st->channels[cnt].scan_index = cnt; ad7280_channel_init()
538 st->channels[cnt].scan_type.sign = 's'; ad7280_channel_init()
539 st->channels[cnt].scan_type.realbits = 64; ad7280_channel_init()
540 st->channels[cnt].scan_type.storagebits = 64; ad7280_channel_init()
541 st->channels[cnt].scan_type.shift = 0; ad7280_channel_init()
546 static int ad7280_attr_init(struct ad7280_state *st) ad7280_attr_init() argument
550 st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) * ad7280_attr_init()
551 (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, ad7280_attr_init()
553 if (st->iio_attr == NULL) ad7280_attr_init()
556 for (dev = 0, cnt = 0; dev <= st->slave_num; dev++) ad7280_attr_init()
559 st->iio_attr[cnt].address = ad7280_attr_init()
561 st->iio_attr[cnt].dev_attr.attr.mode = ad7280_attr_init()
563 st->iio_attr[cnt].dev_attr.show = ad7280_attr_init()
565 st->iio_attr[cnt].dev_attr.store = ad7280_attr_init()
567 st->iio_attr[cnt].dev_attr.attr.name = ad7280_attr_init()
573 &st->iio_attr[cnt].dev_attr.attr; ad7280_attr_init()
575 st->iio_attr[cnt].address = ad7280_attr_init()
578 st->iio_attr[cnt].dev_attr.attr.mode = ad7280_attr_init()
580 st->iio_attr[cnt].dev_attr.show = ad7280_attr_init()
582 st->iio_attr[cnt].dev_attr.store = ad7280_attr_init()
584 st->iio_attr[cnt].dev_attr.attr.name = ad7280_attr_init()
589 &st->iio_attr[cnt].dev_attr.attr; ad7280_attr_init()
602 struct ad7280_state *st = iio_priv(indio_dev); ad7280_read_channel_config() local
608 val = 1000 + (st->cell_threshhigh * 1568) / 100; ad7280_read_channel_config()
611 val = 1000 + (st->cell_threshlow * 1568) / 100; ad7280_read_channel_config()
614 val = (st->aux_threshhigh * 196) / 10; ad7280_read_channel_config()
617 val = (st->aux_threshlow * 196) / 10; ad7280_read_channel_config()
632 struct ad7280_state *st = iio_priv(indio_dev); ad7280_write_channel_config() local
660 st->cell_threshhigh = val; ad7280_write_channel_config()
663 st->cell_threshlow = val; ad7280_write_channel_config()
666 st->aux_threshhigh = val; ad7280_write_channel_config()
669 st->aux_threshlow = val; ad7280_write_channel_config()
673 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, ad7280_write_channel_config()
684 struct ad7280_state *st = iio_priv(indio_dev); ad7280_event_handler() local
688 channels = kcalloc(st->scan_cnt, sizeof(*channels), GFP_KERNEL); ad7280_event_handler()
692 ret = ad7280_read_all_channels(st, st->scan_cnt, channels); ad7280_event_handler()
696 for (i = 0; i < st->scan_cnt; i++) { ad7280_event_handler()
699 st->cell_threshhigh) ad7280_event_handler()
709 st->cell_threshlow) ad7280_event_handler()
719 if (((channels[i] >> 11) & 0xFFF) >= st->aux_threshhigh) ad7280_event_handler()
727 st->aux_threshlow) ad7280_event_handler()
788 struct ad7280_state *st = iio_priv(indio_dev); ad7280_read_raw() local
795 ret = ad7280_read_all_channels(st, st->scan_cnt, NULL); ad7280_read_raw()
797 ret = ad7280_read_channel(st, chan->address >> 8, ad7280_read_raw()
835 struct ad7280_state *st; ad7280_probe() local
841 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7280_probe()
845 st = iio_priv(indio_dev); ad7280_probe()
847 st->spi = spi; ad7280_probe()
852 ad7280_crc8_build_table(st->crc_tab); ad7280_probe()
854 st->spi->max_speed_hz = AD7280A_MAX_SPI_CLK_Hz; ad7280_probe()
855 st->spi->mode = SPI_MODE_1; ad7280_probe()
856 spi_setup(st->spi); ad7280_probe()
858 st->ctrl_lb = AD7280A_CTRL_LB_ACQ_TIME(pdata->acquisition_time & 0x3); ad7280_probe()
859 st->ctrl_hb = AD7280A_CTRL_HB_CONV_AVG(pdata->conversion_averaging ad7280_probe()
863 ret = ad7280_chain_setup(st); ad7280_probe()
867 st->slave_num = ret; ad7280_probe()
868 st->scan_cnt = (st->slave_num + 1) * AD7280A_NUM_CH; ad7280_probe()
869 st->cell_threshhigh = 0xFF; ad7280_probe()
870 st->aux_threshhigh = 0xFF; ad7280_probe()
880 st->readback_delay_us = ad7280_probe()
884 st->slave_num * 250; ad7280_probe()
887 st->readback_delay_us = DIV_ROUND_UP(st->readback_delay_us, 1000); ad7280_probe()
888 st->readback_delay_us += 5; /* Add tWAIT */ ad7280_probe()
894 ret = ad7280_channel_init(st); ad7280_probe()
899 indio_dev->channels = st->channels; ad7280_probe()
902 ret = ad7280_attr_init(st); ad7280_probe()
911 ret = ad7280_write(st, AD7280A_DEVADDR_MASTER, ad7280_probe()
917 ret = ad7280_write(st, AD7280A_DEVADDR(st->slave_num), ad7280_probe()
940 kfree(st->iio_attr); ad7280_probe()
943 kfree(st->channels); ad7280_probe()
951 struct ad7280_state *st = iio_priv(indio_dev); ad7280_remove() local
957 ad7280_write(st, AD7280A_DEVADDR_MASTER, AD7280A_CONTROL_HB, 1, ad7280_remove()
958 AD7280A_CTRL_HB_PWRDN_SW | st->ctrl_hb); ad7280_remove()
960 kfree(st->channels); ad7280_remove()
961 kfree(st->iio_attr); ad7280_remove()
H A Dspear_adc.c91 static void spear_adc_set_status(struct spear_adc_state *st, u32 val) spear_adc_set_status() argument
93 __raw_writel(val, &st->adc_base_spear6xx->status); spear_adc_set_status()
96 static void spear_adc_set_clk(struct spear_adc_state *st, u32 val) spear_adc_set_clk() argument
99 u32 apb_clk = clk_get_rate(st->clk); spear_adc_set_clk()
104 st->current_clk = apb_clk / count; spear_adc_set_clk()
107 &st->adc_base_spear6xx->clk); spear_adc_set_clk()
110 static void spear_adc_set_ctrl(struct spear_adc_state *st, int n, spear_adc_set_ctrl() argument
113 __raw_writel(val, &st->adc_base_spear6xx->ch_ctrl[n]); spear_adc_set_ctrl()
116 static u32 spear_adc_get_average(struct spear_adc_state *st) spear_adc_get_average() argument
118 if (of_device_is_compatible(st->np, "st,spear600-adc")) { spear_adc_get_average()
119 return __raw_readl(&st->adc_base_spear6xx->average.msb) & spear_adc_get_average()
122 return __raw_readl(&st->adc_base_spear3xx->average) & spear_adc_get_average()
127 static void spear_adc_set_scanrate(struct spear_adc_state *st, u32 rate) spear_adc_set_scanrate() argument
129 if (of_device_is_compatible(st->np, "st,spear600-adc")) { spear_adc_set_scanrate()
131 &st->adc_base_spear6xx->scan_rate_lo); spear_adc_set_scanrate()
133 &st->adc_base_spear6xx->scan_rate_hi); spear_adc_set_scanrate()
135 __raw_writel(rate, &st->adc_base_spear3xx->scan_rate); spear_adc_set_scanrate()
145 struct spear_adc_state *st = iio_priv(indio_dev); spear_adc_read_raw() local
153 SPEAR_ADC_STATUS_AVG_SAMPLE(st->avg_samples) | spear_adc_read_raw()
156 if (st->vref_external == 0) spear_adc_read_raw()
159 spear_adc_set_status(st, status); spear_adc_read_raw()
160 wait_for_completion(&st->completion); /* set by ISR */ spear_adc_read_raw()
161 *val = st->value; spear_adc_read_raw()
168 *val = st->vref_external; spear_adc_read_raw()
172 *val = st->current_clk; spear_adc_read_raw()
185 struct spear_adc_state *st = iio_priv(indio_dev); spear_adc_write_raw() local
200 spear_adc_set_clk(st, val); spear_adc_write_raw()
229 struct spear_adc_state *st = dev_id; spear_adc_isr() local
232 st->value = spear_adc_get_average(st); spear_adc_isr()
233 complete(&st->completion); spear_adc_isr()
238 static int spear_adc_configure(struct spear_adc_state *st) spear_adc_configure() argument
243 spear_adc_set_status(st, 0); spear_adc_configure()
244 __raw_writel(0, &st->adc_base_spear6xx->clk); spear_adc_configure()
246 spear_adc_set_ctrl(st, i, 0); spear_adc_configure()
247 spear_adc_set_scanrate(st, 0); spear_adc_configure()
249 spear_adc_set_clk(st, st->sampling_freq); spear_adc_configure()
264 struct spear_adc_state *st; spear_adc_probe() local
275 st = iio_priv(indio_dev); spear_adc_probe()
276 st->np = np; spear_adc_probe()
283 st->adc_base_spear6xx = of_iomap(np, 0); spear_adc_probe()
284 if (!st->adc_base_spear6xx) { spear_adc_probe()
288 st->adc_base_spear3xx = spear_adc_probe()
289 (struct adc_regs_spear3xx __iomem *)st->adc_base_spear6xx; spear_adc_probe()
291 st->clk = clk_get(dev, NULL); spear_adc_probe()
292 if (IS_ERR(st->clk)) { spear_adc_probe()
297 ret = clk_prepare_enable(st->clk); spear_adc_probe()
311 st); spear_adc_probe()
318 &st->sampling_freq)) { spear_adc_probe()
328 of_property_read_u32(np, "average-samples", &st->avg_samples); spear_adc_probe()
334 of_property_read_u32(np, "vref-external", &st->vref_external); spear_adc_probe()
336 spear_adc_configure(st); spear_adc_probe()
340 init_completion(&st->completion); spear_adc_probe()
358 clk_disable_unprepare(st->clk); spear_adc_probe()
360 clk_put(st->clk); spear_adc_probe()
362 iounmap(st->adc_base_spear6xx); spear_adc_probe()
369 struct spear_adc_state *st = iio_priv(indio_dev); spear_adc_remove() local
372 clk_disable_unprepare(st->clk); spear_adc_remove()
373 clk_put(st->clk); spear_adc_remove()
374 iounmap(st->adc_base_spear6xx); spear_adc_remove()
381 { .compatible = "st,spear600-adc", },
H A Dad7606_ring.c28 struct ad7606_state *st = iio_priv(pf->indio_dev); ad7606_trigger_handler_th_bh() local
30 gpio_set_value(st->pdata->gpio_convst, 1); ad7606_trigger_handler_th_bh()
46 struct ad7606_state *st = container_of(work_s, struct ad7606_state, ad7606_poll_bh_to_ring() local
48 struct iio_dev *indio_dev = iio_priv_to_dev(st); ad7606_poll_bh_to_ring()
56 if (gpio_is_valid(st->pdata->gpio_frstdata)) { ad7606_poll_bh_to_ring()
57 ret = st->bops->read_block(st->dev, 1, buf); ad7606_poll_bh_to_ring()
60 if (!gpio_get_value(st->pdata->gpio_frstdata)) { ad7606_poll_bh_to_ring()
66 ad7606_reset(st); ad7606_poll_bh_to_ring()
69 ret = st->bops->read_block(st->dev, ad7606_poll_bh_to_ring()
70 st->chip_info->num_channels - 1, buf + 2); ad7606_poll_bh_to_ring()
74 ret = st->bops->read_block(st->dev, ad7606_poll_bh_to_ring()
75 st->chip_info->num_channels, buf); ad7606_poll_bh_to_ring()
82 gpio_set_value(st->pdata->gpio_convst, 0); ad7606_poll_bh_to_ring()
89 struct ad7606_state *st = iio_priv(indio_dev); ad7606_register_ring_funcs_and_init() local
91 INIT_WORK(&st->poll_work, &ad7606_poll_bh_to_ring); ad7606_register_ring_funcs_and_init()
H A Dad7780.c67 struct ad7780_state *st = ad_sigma_delta_to_ad7780(sigma_delta); ad7780_set_mode() local
80 if (gpio_is_valid(st->powerdown_gpio)) ad7780_set_mode()
81 gpio_set_value(st->powerdown_gpio, val); ad7780_set_mode()
92 struct ad7780_state *st = iio_priv(indio_dev); ad7780_read_raw() local
98 *val = st->int_vref_mv * st->gain; ad7780_read_raw()
112 struct ad7780_state *st = ad_sigma_delta_to_ad7780(sigma_delta); ad7780_postprocess_sample() local
113 const struct ad7780_chip_info *chip_info = st->chip_info; ad7780_postprocess_sample()
120 st->gain = 1; ad7780_postprocess_sample()
122 st->gain = 128; ad7780_postprocess_sample()
167 struct ad7780_state *st; ad7780_probe() local
171 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7780_probe()
175 st = iio_priv(indio_dev); ad7780_probe()
176 st->gain = 1; ad7780_probe()
178 ad_sd_init(&st->sd, indio_dev, spi, &ad7780_sigma_delta_info); ad7780_probe()
180 st->reg = devm_regulator_get(&spi->dev, "vcc"); ad7780_probe()
181 if (!IS_ERR(st->reg)) { ad7780_probe()
182 ret = regulator_enable(st->reg); ad7780_probe()
186 voltage_uv = regulator_get_voltage(st->reg); ad7780_probe()
189 st->chip_info = ad7780_probe()
193 st->int_vref_mv = pdata->vref_mv; ad7780_probe()
195 st->int_vref_mv = voltage_uv / 1000; ad7780_probe()
204 indio_dev->channels = &st->chip_info->channel; ad7780_probe()
216 st->powerdown_gpio = pdata->gpio_pdrst; ad7780_probe()
218 st->powerdown_gpio = -1; ad7780_probe()
234 if (!IS_ERR(st->reg)) ad7780_probe()
235 regulator_disable(st->reg); ad7780_probe()
243 struct ad7780_state *st = iio_priv(indio_dev); ad7780_remove() local
248 if (!IS_ERR(st->reg)) ad7780_remove()
249 regulator_disable(st->reg); ad7780_remove()
H A Dad7192.c159 struct ad7192_state *st = ad_sigma_delta_to_ad7192(sd); ad7192_set_channel() local
161 st->conf &= ~AD7192_CONF_CHAN_MASK; ad7192_set_channel()
162 st->conf |= AD7192_CONF_CHAN(channel); ad7192_set_channel()
164 return ad_sd_write_reg(&st->sd, AD7192_REG_CONF, 3, st->conf); ad7192_set_channel()
170 struct ad7192_state *st = ad_sigma_delta_to_ad7192(sd); ad7192_set_mode() local
172 st->mode &= ~AD7192_MODE_SEL_MASK; ad7192_set_mode()
173 st->mode |= AD7192_MODE_SEL(mode); ad7192_set_mode()
175 return ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); ad7192_set_mode()
197 static int ad7192_calibrate_all(struct ad7192_state *st) ad7192_calibrate_all() argument
199 return ad_sd_calibrate_all(&st->sd, ad7192_calib_arr, ad7192_calibrate_all()
203 static int ad7192_setup(struct ad7192_state *st, ad7192_setup() argument
206 struct iio_dev *indio_dev = spi_get_drvdata(st->sd.spi); ad7192_setup()
213 ret = spi_write(st->sd.spi, &ones, 6); ad7192_setup()
219 ret = ad_sd_read_reg(&st->sd, AD7192_REG_ID, 1, &id); ad7192_setup()
225 if (id != st->devid) ad7192_setup()
226 dev_warn(&st->sd.spi->dev, "device ID query failed (0x%X)\n", ad7192_setup()
232 st->mclk = AD7192_INT_FREQ_MHz; ad7192_setup()
237 st->mclk = pdata->ext_clk_Hz; ad7192_setup()
239 st->mclk = AD7192_INT_FREQ_MHz; ad7192_setup()
246 st->mode = AD7192_MODE_SEL(AD7192_MODE_IDLE) | ad7192_setup()
250 st->conf = AD7192_CONF_GAIN(0); ad7192_setup()
253 st->mode |= AD7192_MODE_REJ60; ad7192_setup()
256 st->mode |= AD7192_MODE_SINC3; ad7192_setup()
258 if (pdata->refin2_en && (st->devid != ID_AD7195)) ad7192_setup()
259 st->conf |= AD7192_CONF_REFSEL; ad7192_setup()
262 st->conf |= AD7192_CONF_CHOP; ad7192_setup()
264 st->f_order = 3; /* SINC 3rd order */ ad7192_setup()
266 st->f_order = 4; /* SINC 4th order */ ad7192_setup()
268 st->f_order = 1; ad7192_setup()
272 st->conf |= AD7192_CONF_BUF; ad7192_setup()
275 st->conf |= AD7192_CONF_UNIPOLAR; ad7192_setup()
278 st->conf |= AD7192_CONF_BURN; ad7192_setup()
280 ret = ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); ad7192_setup()
284 ret = ad_sd_write_reg(&st->sd, AD7192_REG_CONF, 3, st->conf); ad7192_setup()
288 ret = ad7192_calibrate_all(st); ad7192_setup()
293 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) { ad7192_setup()
294 scale_uv = ((u64)st->int_vref_mv * 100000000) ad7192_setup()
296 ((st->conf & AD7192_CONF_UNIPOLAR) ? 0 : 1)); ad7192_setup()
299 st->scale_avail[i][1] = do_div(scale_uv, 100000000) * 10; ad7192_setup()
300 st->scale_avail[i][0] = scale_uv; ad7192_setup()
305 dev_err(&st->sd.spi->dev, "setup failed\n"); ad7192_setup()
314 struct ad7192_state *st = iio_priv(indio_dev); ad7192_read_frequency() local
316 return sprintf(buf, "%d\n", st->mclk / ad7192_read_frequency()
317 (st->f_order * 1024 * AD7192_MODE_RATE(st->mode))); ad7192_read_frequency()
326 struct ad7192_state *st = iio_priv(indio_dev); ad7192_write_frequency() local
342 div = st->mclk / (lval * st->f_order * 1024); ad7192_write_frequency()
348 st->mode &= ~AD7192_MODE_RATE(-1); ad7192_write_frequency()
349 st->mode |= AD7192_MODE_RATE(div); ad7192_write_frequency()
350 ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); ad7192_write_frequency()
366 struct ad7192_state *st = iio_priv(indio_dev); ad7192_show_scale_available() local
369 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) ad7192_show_scale_available()
370 len += sprintf(buf + len, "%d.%09u ", st->scale_avail[i][0], ad7192_show_scale_available()
371 st->scale_avail[i][1]); ad7192_show_scale_available()
390 struct ad7192_state *st = iio_priv(indio_dev); ad7192_show_ac_excitation() local
392 return sprintf(buf, "%d\n", !!(st->mode & AD7192_MODE_ACX)); ad7192_show_ac_excitation()
400 struct ad7192_state *st = iio_priv(indio_dev); ad7192_show_bridge_switch() local
402 return sprintf(buf, "%d\n", !!(st->gpocon & AD7192_GPOCON_BPDSW)); ad7192_show_bridge_switch()
411 struct ad7192_state *st = iio_priv(indio_dev); ad7192_set() local
429 st->gpocon |= AD7192_GPOCON_BPDSW; ad7192_set()
431 st->gpocon &= ~AD7192_GPOCON_BPDSW; ad7192_set()
433 ad_sd_write_reg(&st->sd, AD7192_REG_GPOCON, 1, st->gpocon); ad7192_set()
437 st->mode |= AD7192_MODE_ACX; ad7192_set()
439 st->mode &= ~AD7192_MODE_ACX; ad7192_set()
441 ad_sd_write_reg(&st->sd, AD7192_REG_MODE, 3, st->mode); ad7192_set()
496 struct ad7192_state *st = iio_priv(indio_dev); ad7192_read_raw() local
497 bool unipolar = !!(st->conf & AD7192_CONF_UNIPOLAR); ad7192_read_raw()
506 *val = st->scale_avail[AD7192_CONF_GAIN(st->conf)][0]; ad7192_read_raw()
507 *val2 = st->scale_avail[AD7192_CONF_GAIN(st->conf)][1]; ad7192_read_raw()
537 struct ad7192_state *st = iio_priv(indio_dev); ad7192_write_raw() local
550 for (i = 0; i < ARRAY_SIZE(st->scale_avail); i++) ad7192_write_raw()
551 if (val2 == st->scale_avail[i][1]) { ad7192_write_raw()
553 tmp = st->conf; ad7192_write_raw()
554 st->conf &= ~AD7192_CONF_GAIN(-1); ad7192_write_raw()
555 st->conf |= AD7192_CONF_GAIN(i); ad7192_write_raw()
556 if (tmp == st->conf) ad7192_write_raw()
558 ad_sd_write_reg(&st->sd, AD7192_REG_CONF, ad7192_write_raw()
559 3, st->conf); ad7192_write_raw()
560 ad7192_calibrate_all(st); ad7192_write_raw()
613 struct ad7192_state *st; ad7192_probe() local
627 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7192_probe()
631 st = iio_priv(indio_dev); ad7192_probe()
633 st->reg = devm_regulator_get(&spi->dev, "vcc"); ad7192_probe()
634 if (!IS_ERR(st->reg)) { ad7192_probe()
635 ret = regulator_enable(st->reg); ad7192_probe()
639 voltage_uv = regulator_get_voltage(st->reg); ad7192_probe()
643 st->int_vref_mv = pdata->vref_mv; ad7192_probe()
645 st->int_vref_mv = voltage_uv / 1000; ad7192_probe()
650 st->devid = spi_get_device_id(spi)->driver_data; ad7192_probe()
656 if (st->devid == ID_AD7195) ad7192_probe()
661 ad_sd_init(&st->sd, indio_dev, spi, &ad7192_sigma_delta_info); ad7192_probe()
667 ret = ad7192_setup(st, pdata); ad7192_probe()
679 if (!IS_ERR(st->reg)) ad7192_probe()
680 regulator_disable(st->reg); ad7192_probe()
688 struct ad7192_state *st = iio_priv(indio_dev); ad7192_remove() local
693 if (!IS_ERR(st->reg)) ad7192_remove()
694 regulator_disable(st->reg); ad7192_remove()
/linux-4.1.27/drivers/iio/imu/inv_mpu6050/
H A Dinv_mpu_trigger.c18 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_scan_query() local
20 st->chip_config.gyro_fifo_enable = inv_scan_query()
28 st->chip_config.accl_fifo_enable = inv_scan_query()
44 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_set_enable() local
48 result = inv_mpu6050_set_power_itg(st, true); inv_mpu6050_set_enable()
52 if (st->chip_config.gyro_fifo_enable) { inv_mpu6050_set_enable()
53 result = inv_mpu6050_switch_engine(st, true, inv_mpu6050_set_enable()
58 if (st->chip_config.accl_fifo_enable) { inv_mpu6050_set_enable()
59 result = inv_mpu6050_switch_engine(st, true, inv_mpu6050_set_enable()
68 result = inv_mpu6050_write_reg(st, st->reg->fifo_en, 0); inv_mpu6050_set_enable()
72 result = inv_mpu6050_write_reg(st, st->reg->int_enable, 0); inv_mpu6050_set_enable()
76 result = inv_mpu6050_write_reg(st, st->reg->user_ctrl, 0); inv_mpu6050_set_enable()
80 result = inv_mpu6050_switch_engine(st, false, inv_mpu6050_set_enable()
85 result = inv_mpu6050_switch_engine(st, false, inv_mpu6050_set_enable()
89 result = inv_mpu6050_set_power_itg(st, false); inv_mpu6050_set_enable()
93 st->chip_config.enable = enable; inv_mpu6050_set_enable()
117 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_probe_trigger() local
119 st->trig = devm_iio_trigger_alloc(&indio_dev->dev, inv_mpu6050_probe_trigger()
123 if (!st->trig) inv_mpu6050_probe_trigger()
126 ret = devm_request_irq(&indio_dev->dev, st->client->irq, inv_mpu6050_probe_trigger()
130 st->trig); inv_mpu6050_probe_trigger()
134 st->trig->dev.parent = &st->client->dev; inv_mpu6050_probe_trigger()
135 st->trig->ops = &inv_mpu_trigger_ops; inv_mpu6050_probe_trigger()
136 iio_trigger_set_drvdata(st->trig, indio_dev); inv_mpu6050_probe_trigger()
138 ret = iio_trigger_register(st->trig); inv_mpu6050_probe_trigger()
142 indio_dev->trig = iio_trigger_get(st->trig); inv_mpu6050_probe_trigger()
147 void inv_mpu6050_remove_trigger(struct inv_mpu6050_state *st) inv_mpu6050_remove_trigger() argument
149 iio_trigger_unregister(st->trig); inv_mpu6050_remove_trigger()
H A Dinv_mpu_ring.c27 static void inv_clear_kfifo(struct inv_mpu6050_state *st) inv_clear_kfifo() argument
32 spin_lock_irqsave(&st->time_stamp_lock, flags); inv_clear_kfifo()
33 kfifo_reset(&st->timestamps); inv_clear_kfifo()
34 spin_unlock_irqrestore(&st->time_stamp_lock, flags); inv_clear_kfifo()
41 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_reset_fifo() local
44 result = inv_mpu6050_write_reg(st, st->reg->int_enable, 0); inv_reset_fifo()
46 dev_err(&st->client->dev, "int_enable failed %d\n", result); inv_reset_fifo()
50 result = inv_mpu6050_write_reg(st, st->reg->fifo_en, 0); inv_reset_fifo()
54 result = inv_mpu6050_write_reg(st, st->reg->user_ctrl, 0); inv_reset_fifo()
59 result = inv_mpu6050_write_reg(st, st->reg->user_ctrl, inv_reset_fifo()
65 inv_clear_kfifo(st); inv_reset_fifo()
68 if (st->chip_config.accl_fifo_enable || inv_reset_fifo()
69 st->chip_config.gyro_fifo_enable) { inv_reset_fifo()
70 result = inv_mpu6050_write_reg(st, st->reg->int_enable, inv_reset_fifo()
76 result = inv_mpu6050_write_reg(st, st->reg->user_ctrl, inv_reset_fifo()
82 if (st->chip_config.gyro_fifo_enable) inv_reset_fifo()
84 if (st->chip_config.accl_fifo_enable) inv_reset_fifo()
86 result = inv_mpu6050_write_reg(st, st->reg->fifo_en, d); inv_reset_fifo()
93 dev_err(&st->client->dev, "reset fifo failed %d\n", result); inv_reset_fifo()
94 result = inv_mpu6050_write_reg(st, st->reg->int_enable, inv_reset_fifo()
107 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_irq_handler() local
111 kfifo_in_spinlocked(&st->timestamps, &timestamp, 1, inv_mpu6050_irq_handler()
112 &st->time_stamp_lock); inv_mpu6050_irq_handler()
124 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_read_fifo() local
132 if (!(st->chip_config.accl_fifo_enable | inv_mpu6050_read_fifo()
133 st->chip_config.gyro_fifo_enable)) inv_mpu6050_read_fifo()
136 if (st->chip_config.accl_fifo_enable) inv_mpu6050_read_fifo()
139 if (st->chip_config.gyro_fifo_enable) inv_mpu6050_read_fifo()
146 result = i2c_smbus_read_i2c_block_data(st->client, inv_mpu6050_read_fifo()
147 st->reg->fifo_count_h, inv_mpu6050_read_fifo()
160 if (kfifo_len(&st->timestamps) > inv_mpu6050_read_fifo()
164 result = i2c_smbus_read_i2c_block_data(st->client, inv_mpu6050_read_fifo()
165 st->reg->fifo_r_w, inv_mpu6050_read_fifo()
170 result = kfifo_out(&st->timestamps, &timestamp, 1); inv_mpu6050_read_fifo()
H A Dinv_mpu_core.c78 int inv_mpu6050_write_reg(struct inv_mpu6050_state *st, int reg, u8 d) inv_mpu6050_write_reg() argument
80 return i2c_smbus_write_i2c_block_data(st->client, reg, 1, &d); inv_mpu6050_write_reg()
89 static int inv_mpu6050_write_reg_unlocked(struct inv_mpu6050_state *st, inv_mpu6050_write_reg_unlocked() argument
96 .addr = st->client->addr, inv_mpu6050_write_reg_unlocked()
105 ret = __i2c_transfer(st->client->adapter, msg, 1); inv_mpu6050_write_reg_unlocked()
116 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_select_bypass() local
121 if (!st->powerup_count) { inv_mpu6050_select_bypass()
122 ret = inv_mpu6050_write_reg_unlocked(st, st->reg->pwr_mgmt_1, inv_mpu6050_select_bypass()
130 st->powerup_count++; inv_mpu6050_select_bypass()
131 ret = inv_mpu6050_write_reg_unlocked(st, st->reg->int_pin_cfg, inv_mpu6050_select_bypass()
132 st->client->irq | inv_mpu6050_select_bypass()
145 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_deselect_bypass() local
149 inv_mpu6050_write_reg_unlocked(st, st->reg->int_pin_cfg, inv_mpu6050_deselect_bypass()
150 st->client->irq); inv_mpu6050_deselect_bypass()
151 st->powerup_count--; inv_mpu6050_deselect_bypass()
152 if (!st->powerup_count) inv_mpu6050_deselect_bypass()
153 inv_mpu6050_write_reg_unlocked(st, st->reg->pwr_mgmt_1, inv_mpu6050_deselect_bypass()
160 int inv_mpu6050_switch_engine(struct inv_mpu6050_state *st, bool en, u32 mask) inv_mpu6050_switch_engine() argument
169 result = i2c_smbus_read_i2c_block_data(st->client, inv_mpu6050_switch_engine()
170 st->reg->pwr_mgmt_1, 1, &mgmt_1); inv_mpu6050_switch_engine()
181 result = inv_mpu6050_write_reg(st, st->reg->pwr_mgmt_1, mgmt_1); inv_mpu6050_switch_engine()
186 result = i2c_smbus_read_i2c_block_data(st->client, inv_mpu6050_switch_engine()
187 st->reg->pwr_mgmt_2, 1, &d); inv_mpu6050_switch_engine()
194 result = inv_mpu6050_write_reg(st, st->reg->pwr_mgmt_2, d); inv_mpu6050_switch_engine()
204 result = inv_mpu6050_write_reg(st, inv_mpu6050_switch_engine()
205 st->reg->pwr_mgmt_1, mgmt_1); inv_mpu6050_switch_engine()
214 int inv_mpu6050_set_power_itg(struct inv_mpu6050_state *st, bool power_on) inv_mpu6050_set_power_itg() argument
220 if (!st->powerup_count) inv_mpu6050_set_power_itg()
221 result = inv_mpu6050_write_reg(st, st->reg->pwr_mgmt_1, inv_mpu6050_set_power_itg()
224 st->powerup_count++; inv_mpu6050_set_power_itg()
226 st->powerup_count--; inv_mpu6050_set_power_itg()
227 if (!st->powerup_count) inv_mpu6050_set_power_itg()
228 result = inv_mpu6050_write_reg(st, st->reg->pwr_mgmt_1, inv_mpu6050_set_power_itg()
254 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_init_config() local
256 result = inv_mpu6050_set_power_itg(st, true); inv_mpu6050_init_config()
260 result = inv_mpu6050_write_reg(st, st->reg->gyro_config, d); inv_mpu6050_init_config()
265 result = inv_mpu6050_write_reg(st, st->reg->lpf, d); inv_mpu6050_init_config()
270 result = inv_mpu6050_write_reg(st, st->reg->sample_rate_div, d); inv_mpu6050_init_config()
275 result = inv_mpu6050_write_reg(st, st->reg->accl_config, d); inv_mpu6050_init_config()
279 memcpy(&st->chip_config, hw_info[st->chip_type].config, inv_mpu6050_init_config()
281 result = inv_mpu6050_set_power_itg(st, false); inv_mpu6050_init_config()
286 static int inv_mpu6050_sensor_show(struct inv_mpu6050_state *st, int reg, inv_mpu6050_sensor_show() argument
293 result = i2c_smbus_read_i2c_block_data(st->client, reg + ind, 2, inv_mpu6050_sensor_show()
307 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_read_raw() local
317 if (!st->chip_config.enable) { inv_mpu6050_read_raw()
318 result = inv_mpu6050_set_power_itg(st, true); inv_mpu6050_read_raw()
325 if (!st->chip_config.gyro_fifo_enable || inv_mpu6050_read_raw()
326 !st->chip_config.enable) { inv_mpu6050_read_raw()
327 result = inv_mpu6050_switch_engine(st, true, inv_mpu6050_read_raw()
332 ret = inv_mpu6050_sensor_show(st, st->reg->raw_gyro, inv_mpu6050_read_raw()
334 if (!st->chip_config.gyro_fifo_enable || inv_mpu6050_read_raw()
335 !st->chip_config.enable) { inv_mpu6050_read_raw()
336 result = inv_mpu6050_switch_engine(st, false, inv_mpu6050_read_raw()
343 if (!st->chip_config.accl_fifo_enable || inv_mpu6050_read_raw()
344 !st->chip_config.enable) { inv_mpu6050_read_raw()
345 result = inv_mpu6050_switch_engine(st, true, inv_mpu6050_read_raw()
350 ret = inv_mpu6050_sensor_show(st, st->reg->raw_accl, inv_mpu6050_read_raw()
352 if (!st->chip_config.accl_fifo_enable || inv_mpu6050_read_raw()
353 !st->chip_config.enable) { inv_mpu6050_read_raw()
354 result = inv_mpu6050_switch_engine(st, false, inv_mpu6050_read_raw()
363 inv_mpu6050_sensor_show(st, st->reg->temperature, inv_mpu6050_read_raw()
371 if (!st->chip_config.enable) inv_mpu6050_read_raw()
372 result |= inv_mpu6050_set_power_itg(st, false); inv_mpu6050_read_raw()
383 *val2 = gyro_scale_6050[st->chip_config.fsr]; inv_mpu6050_read_raw()
388 *val2 = accel_scale[st->chip_config.accl_fs]; inv_mpu6050_read_raw()
413 static int inv_mpu6050_write_gyro_scale(struct inv_mpu6050_state *st, int val) inv_mpu6050_write_gyro_scale() argument
421 result = inv_mpu6050_write_reg(st, inv_mpu6050_write_gyro_scale()
422 st->reg->gyro_config, d); inv_mpu6050_write_gyro_scale()
426 st->chip_config.fsr = i; inv_mpu6050_write_gyro_scale()
451 static int inv_mpu6050_write_accel_scale(struct inv_mpu6050_state *st, int val) inv_mpu6050_write_accel_scale() argument
459 result = inv_mpu6050_write_reg(st, inv_mpu6050_write_accel_scale()
460 st->reg->accl_config, d); inv_mpu6050_write_accel_scale()
464 st->chip_config.accl_fs = i; inv_mpu6050_write_accel_scale()
477 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_write_raw() local
483 if (st->chip_config.enable) { inv_mpu6050_write_raw()
487 result = inv_mpu6050_set_power_itg(st, true); inv_mpu6050_write_raw()
495 result = inv_mpu6050_write_gyro_scale(st, val2); inv_mpu6050_write_raw()
498 result = inv_mpu6050_write_accel_scale(st, val2); inv_mpu6050_write_raw()
511 result |= inv_mpu6050_set_power_itg(st, false); inv_mpu6050_write_raw()
526 static int inv_mpu6050_set_lpf(struct inv_mpu6050_state *st, int rate) inv_mpu6050_set_lpf() argument
540 result = inv_mpu6050_write_reg(st, st->reg->lpf, data); inv_mpu6050_set_lpf()
543 st->chip_config.lpf = data; inv_mpu6050_set_lpf()
558 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_fifo_rate_store() local
565 if (fifo_rate == st->chip_config.fifo_rate) inv_mpu6050_fifo_rate_store()
569 if (st->chip_config.enable) { inv_mpu6050_fifo_rate_store()
573 result = inv_mpu6050_set_power_itg(st, true); inv_mpu6050_fifo_rate_store()
578 result = inv_mpu6050_write_reg(st, st->reg->sample_rate_div, d); inv_mpu6050_fifo_rate_store()
581 st->chip_config.fifo_rate = fifo_rate; inv_mpu6050_fifo_rate_store()
583 result = inv_mpu6050_set_lpf(st, fifo_rate); inv_mpu6050_fifo_rate_store()
588 result |= inv_mpu6050_set_power_itg(st, false); inv_mpu6050_fifo_rate_store()
602 struct inv_mpu6050_state *st = iio_priv(dev_to_iio_dev(dev)); inv_fifo_rate_show() local
604 return sprintf(buf, "%d\n", st->chip_config.fifo_rate); inv_fifo_rate_show()
614 struct inv_mpu6050_state *st = iio_priv(dev_to_iio_dev(dev)); inv_attr_show() local
623 m = st->plat_data.orientation; inv_attr_show()
644 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu6050_validate_trigger() local
646 if (st->trig != trig) inv_mpu6050_validate_trigger()
724 static int inv_check_and_setup_chip(struct inv_mpu6050_state *st, inv_check_and_setup_chip() argument
729 st->chip_type = INV_MPU6050; inv_check_and_setup_chip()
730 st->hw = &hw_info[st->chip_type]; inv_check_and_setup_chip()
731 st->reg = hw_info[st->chip_type].reg; inv_check_and_setup_chip()
734 result = inv_mpu6050_write_reg(st, st->reg->pwr_mgmt_1, inv_check_and_setup_chip()
743 result = inv_mpu6050_set_power_itg(st, false); inv_check_and_setup_chip()
746 result = inv_mpu6050_set_power_itg(st, true); inv_check_and_setup_chip()
750 result = inv_mpu6050_switch_engine(st, false, inv_check_and_setup_chip()
754 result = inv_mpu6050_switch_engine(st, false, inv_check_and_setup_chip()
772 struct inv_mpu6050_state *st; inv_mpu_probe() local
781 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); inv_mpu_probe()
785 st = iio_priv(indio_dev); inv_mpu_probe()
786 st->client = client; inv_mpu_probe()
787 st->powerup_count = 0; inv_mpu_probe()
790 st->plat_data = *pdata; inv_mpu_probe()
792 result = inv_check_and_setup_chip(st, id); inv_mpu_probe()
821 dev_err(&st->client->dev, "configure buffer fail %d\n", inv_mpu_probe()
827 dev_err(&st->client->dev, "trigger probe fail %d\n", result); inv_mpu_probe()
831 INIT_KFIFO(st->timestamps); inv_mpu_probe()
832 spin_lock_init(&st->time_stamp_lock); inv_mpu_probe()
835 dev_err(&st->client->dev, "IIO register fail %d\n", result); inv_mpu_probe()
839 st->mux_adapter = i2c_add_mux_adapter(client->adapter, inv_mpu_probe()
845 if (!st->mux_adapter) { inv_mpu_probe()
850 result = inv_mpu_acpi_create_mux_client(st); inv_mpu_probe()
857 i2c_del_mux_adapter(st->mux_adapter); inv_mpu_probe()
861 inv_mpu6050_remove_trigger(st); inv_mpu_probe()
870 struct inv_mpu6050_state *st = iio_priv(indio_dev); inv_mpu_remove() local
872 inv_mpu_acpi_delete_mux_client(st); inv_mpu_remove()
873 i2c_del_mux_adapter(st->mux_adapter); inv_mpu_remove()
875 inv_mpu6050_remove_trigger(st); inv_mpu_remove()
H A Dinv_mpu_acpi.c142 int inv_mpu_acpi_create_mux_client(struct inv_mpu6050_state *st) inv_mpu_acpi_create_mux_client() argument
145 st->mux_client = NULL; inv_mpu_acpi_create_mux_client()
146 if (ACPI_HANDLE(&st->client->dev)) { inv_mpu_acpi_create_mux_client()
151 adev = ACPI_COMPANION(&st->client->dev); inv_mpu_acpi_create_mux_client()
157 ret = asus_acpi_get_sensor_info(adev, st->client, inv_mpu_acpi_create_mux_client()
169 ret = inv_mpu_process_acpi_config(st->client, &primary, inv_mpu_acpi_create_mux_client()
185 st->mux_client = i2c_new_device(st->mux_adapter, &info); inv_mpu_acpi_create_mux_client()
186 if (!st->mux_client) inv_mpu_acpi_create_mux_client()
194 void inv_mpu_acpi_delete_mux_client(struct inv_mpu6050_state *st) inv_mpu_acpi_delete_mux_client() argument
196 if (st->mux_client) inv_mpu_acpi_delete_mux_client()
197 i2c_unregister_device(st->mux_client); inv_mpu_acpi_delete_mux_client()
203 int inv_mpu_acpi_create_mux_client(struct inv_mpu6050_state *st) inv_mpu_acpi_create_mux_client() argument
208 void inv_mpu_acpi_delete_mux_client(struct inv_mpu6050_state *st) inv_mpu_acpi_delete_mux_client() argument
/linux-4.1.27/arch/s390/mm/
H A Ddump_pagetables.c56 static void note_page(struct seq_file *m, struct pg_state *st, note_page() argument
71 cur = st->current_prot; note_page()
73 if (!st->level) { note_page()
75 st->current_prot = new_prot; note_page()
76 st->level = level; note_page()
77 st->marker = address_markers; note_page()
78 seq_printf(m, "---[ %s ]---\n", st->marker->name); note_page()
79 } else if (prot != cur || level != st->level || note_page()
80 st->current_address >= st->marker[1].start_address) { note_page()
83 width, st->start_address, note_page()
84 width, st->current_address); note_page()
85 delta = (st->current_address - st->start_address) >> 10; note_page()
91 print_prot(m, st->current_prot, st->level); note_page()
92 if (st->current_address >= st->marker[1].start_address) { note_page()
93 st->marker++; note_page()
94 seq_printf(m, "---[ %s ]---\n", st->marker->name); note_page()
96 st->start_address = st->current_address; note_page()
97 st->current_prot = new_prot; note_page()
98 st->level = level; note_page()
110 static void walk_pte_level(struct seq_file *m, struct pg_state *st, walk_pte_level() argument
118 st->current_address = addr; walk_pte_level()
121 note_page(m, st, prot, 4); walk_pte_level()
126 static void walk_pmd_level(struct seq_file *m, struct pg_state *st, walk_pmd_level() argument
134 st->current_address = addr; walk_pmd_level()
139 note_page(m, st, prot, 3); walk_pmd_level()
141 walk_pte_level(m, st, pmd, addr); walk_pmd_level()
143 note_page(m, st, _PAGE_INVALID, 3); walk_pmd_level()
148 static void walk_pud_level(struct seq_file *m, struct pg_state *st, walk_pud_level() argument
156 st->current_address = addr; walk_pud_level()
161 note_page(m, st, prot, 2); walk_pud_level()
163 walk_pmd_level(m, st, pud, addr); walk_pud_level()
165 note_page(m, st, _PAGE_INVALID, 2); walk_pud_level()
173 struct pg_state st; walk_pgd_level() local
177 memset(&st, 0, sizeof(st)); walk_pgd_level()
179 st.current_address = addr; walk_pgd_level()
182 walk_pud_level(m, &st, pgd, addr); walk_pgd_level()
184 note_page(m, &st, _PAGE_INVALID, 1); walk_pgd_level()
188 st.current_address = max_addr; walk_pgd_level()
189 note_page(m, &st, 0, 0); walk_pgd_level()
/linux-4.1.27/drivers/iio/frequency/
H A Dadf4350.c68 static int adf4350_sync_config(struct adf4350_state *st) adf4350_sync_config() argument
73 if ((st->regs_hw[i] != st->regs[i]) || adf4350_sync_config()
83 st->val = cpu_to_be32(st->regs[i] | i); adf4350_sync_config()
84 ret = spi_write(st->spi, &st->val, 4); adf4350_sync_config()
87 st->regs_hw[i] = st->regs[i]; adf4350_sync_config()
88 dev_dbg(&st->spi->dev, "[%d] 0x%X\n", adf4350_sync_config()
89 i, (u32)st->regs[i] | i); adf4350_sync_config()
99 struct adf4350_state *st = iio_priv(indio_dev); adf4350_reg_access() local
107 st->regs[reg] = writeval & ~(BIT(0) | BIT(1) | BIT(2)); adf4350_reg_access()
108 ret = adf4350_sync_config(st); adf4350_reg_access()
110 *readval = st->regs_hw[reg]; adf4350_reg_access()
118 static int adf4350_tune_r_cnt(struct adf4350_state *st, unsigned short r_cnt) adf4350_tune_r_cnt() argument
120 struct adf4350_platform_data *pdata = st->pdata; adf4350_tune_r_cnt()
124 st->fpfd = (st->clkin * (pdata->ref_doubler_en ? 2 : 1)) / adf4350_tune_r_cnt()
126 } while (st->fpfd > ADF4350_MAX_FREQ_PFD); adf4350_tune_r_cnt()
131 static int adf4350_set_freq(struct adf4350_state *st, unsigned long long freq) adf4350_set_freq() argument
133 struct adf4350_platform_data *pdata = st->pdata; adf4350_set_freq()
139 if (freq > ADF4350_MAX_OUT_FREQ || freq < st->min_out_freq) adf4350_set_freq()
150 st->r4_rf_div_sel = 0; adf4350_set_freq()
154 st->r4_rf_div_sel++; adf4350_set_freq()
164 chspc = st->chspc; adf4350_set_freq()
169 r_cnt = adf4350_tune_r_cnt(st, r_cnt); adf4350_set_freq()
170 st->r1_mod = st->fpfd / chspc; adf4350_set_freq()
176 } while ((st->r1_mod > ADF4350_MAX_MODULUS) && r_cnt); adf4350_set_freq()
179 tmp = freq * (u64)st->r1_mod + (st->fpfd >> 1); adf4350_set_freq()
180 do_div(tmp, st->fpfd); /* Div round closest (n + d/2)/d */ adf4350_set_freq()
181 st->r0_fract = do_div(tmp, st->r1_mod); adf4350_set_freq()
182 st->r0_int = tmp; adf4350_set_freq()
183 } while (mdiv > st->r0_int); adf4350_set_freq()
185 band_sel_div = DIV_ROUND_UP(st->fpfd, ADF4350_MAX_BANDSEL_CLK); adf4350_set_freq()
187 if (st->r0_fract && st->r1_mod) { adf4350_set_freq()
188 div_gcd = gcd(st->r1_mod, st->r0_fract); adf4350_set_freq()
189 st->r1_mod /= div_gcd; adf4350_set_freq()
190 st->r0_fract /= div_gcd; adf4350_set_freq()
192 st->r0_fract = 0; adf4350_set_freq()
193 st->r1_mod = 1; adf4350_set_freq()
196 dev_dbg(&st->spi->dev, "VCO: %llu Hz, PFD %lu Hz\n" adf4350_set_freq()
199 freq, st->fpfd, r_cnt, st->r0_int, st->r0_fract, st->r1_mod, adf4350_set_freq()
200 1 << st->r4_rf_div_sel, prescaler ? "8/9" : "4/5", adf4350_set_freq()
203 st->regs[ADF4350_REG0] = ADF4350_REG0_INT(st->r0_int) | adf4350_set_freq()
204 ADF4350_REG0_FRACT(st->r0_fract); adf4350_set_freq()
206 st->regs[ADF4350_REG1] = ADF4350_REG1_PHASE(1) | adf4350_set_freq()
207 ADF4350_REG1_MOD(st->r1_mod) | adf4350_set_freq()
210 st->regs[ADF4350_REG2] = adf4350_set_freq()
220 st->regs[ADF4350_REG3] = pdata->r3_user_settings & adf4350_set_freq()
228 st->regs[ADF4350_REG4] = adf4350_set_freq()
230 ADF4350_REG4_RF_DIV_SEL(st->r4_rf_div_sel) | adf4350_set_freq()
240 st->regs[ADF4350_REG5] = ADF4350_REG5_LD_PIN_MODE_DIGITAL; adf4350_set_freq()
241 st->freq_req = freq; adf4350_set_freq()
243 return adf4350_sync_config(st); adf4350_set_freq()
251 struct adf4350_state *st = iio_priv(indio_dev); adf4350_write() local
263 ret = adf4350_set_freq(st, readin); adf4350_write()
271 if (st->clk) { adf4350_write()
272 tmp = clk_round_rate(st->clk, readin); adf4350_write()
277 ret = clk_set_rate(st->clk, tmp); adf4350_write()
281 st->clkin = readin; adf4350_write()
282 ret = adf4350_set_freq(st, st->freq_req); adf4350_write()
288 st->chspc = readin; adf4350_write()
292 st->regs[ADF4350_REG2] |= ADF4350_REG2_POWER_DOWN_EN; adf4350_write()
294 st->regs[ADF4350_REG2] &= ~ADF4350_REG2_POWER_DOWN_EN; adf4350_write()
296 adf4350_sync_config(st); adf4350_write()
311 struct adf4350_state *st = iio_priv(indio_dev); adf4350_read() local
318 val = (u64)((st->r0_int * st->r1_mod) + st->r0_fract) * adf4350_read()
319 (u64)st->fpfd; adf4350_read()
320 do_div(val, st->r1_mod * (1 << st->r4_rf_div_sel)); adf4350_read()
322 if (gpio_is_valid(st->pdata->gpio_lock_detect)) adf4350_read()
323 if (!gpio_get_value(st->pdata->gpio_lock_detect)) { adf4350_read()
324 dev_dbg(&st->spi->dev, "PLL un-locked\n"); adf4350_read()
329 if (st->clk) adf4350_read()
330 st->clkin = clk_get_rate(st->clk); adf4350_read()
332 val = st->clkin; adf4350_read()
335 val = st->chspc; adf4350_read()
338 val = !!(st->regs[ADF4350_REG2] & ADF4350_REG2_POWER_DOWN_EN); adf4350_read()
499 struct adf4350_state *st; adf4350_probe() local
526 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adf4350_probe()
532 st = iio_priv(indio_dev); adf4350_probe()
534 st->reg = devm_regulator_get(&spi->dev, "vcc"); adf4350_probe()
535 if (!IS_ERR(st->reg)) { adf4350_probe()
536 ret = regulator_enable(st->reg); adf4350_probe()
542 st->spi = spi; adf4350_probe()
543 st->pdata = pdata; adf4350_probe()
554 st->chspc = pdata->channel_spacing; adf4350_probe()
556 st->clk = clk; adf4350_probe()
557 st->clkin = clk_get_rate(clk); adf4350_probe()
559 st->clkin = pdata->clkin; adf4350_probe()
562 st->min_out_freq = spi_get_device_id(spi)->driver_data == 4351 ? adf4350_probe()
565 memset(st->regs_hw, 0xFF, sizeof(st->regs_hw)); adf4350_probe()
579 ret = adf4350_set_freq(st, pdata->power_up_frequency); adf4350_probe()
591 if (!IS_ERR(st->reg)) adf4350_probe()
592 regulator_disable(st->reg); adf4350_probe()
603 struct adf4350_state *st = iio_priv(indio_dev); adf4350_remove() local
604 struct regulator *reg = st->reg; adf4350_remove()
606 st->regs[ADF4350_REG2] |= ADF4350_REG2_POWER_DOWN_EN; adf4350_remove()
607 adf4350_sync_config(st); adf4350_remove()
611 if (st->clk) adf4350_remove()
612 clk_disable_unprepare(st->clk); adf4350_remove()
H A Dad9523.c289 struct ad9523_state *st = iio_priv(indio_dev); ad9523_read() local
299 .tx_buf = &st->data[0].d8[2], ad9523_read()
302 .rx_buf = &st->data[1].d8[4 - AD9523_TRANSF_LEN(addr)], ad9523_read()
307 st->data[0].d32 = cpu_to_be32(AD9523_READ | ad9523_read()
311 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad9523_read()
315 ret = be32_to_cpu(st->data[1].d32) & (0xFFFFFF >> ad9523_read()
323 struct ad9523_state *st = iio_priv(indio_dev); ad9523_write() local
327 .tx_buf = &st->data[0].d8[2], ad9523_write()
330 .tx_buf = &st->data[1].d8[4 - AD9523_TRANSF_LEN(addr)], ad9523_write()
335 st->data[0].d32 = cpu_to_be32(AD9523_WRITE | ad9523_write()
338 st->data[1].d32 = cpu_to_be32(val); ad9523_write()
340 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad9523_write()
356 struct ad9523_state *st = iio_priv(indio_dev); ad9523_vco_out_map() local
402 st->vco_out_map[ch] = out; ad9523_vco_out_map()
410 struct ad9523_state *st = iio_priv(indio_dev); ad9523_set_clock_provider() local
416 use_alt_clk_src = (freq == st->vco_out_freq[AD9523_VCXO]); ad9523_set_clock_provider()
419 tmp1 = st->vco_out_freq[AD9523_VCO1] / freq; ad9523_set_clock_provider()
420 tmp2 = st->vco_out_freq[AD9523_VCO2] / freq; ad9523_set_clock_provider()
621 struct ad9523_state *st = iio_priv(indio_dev); ad9523_read_raw() local
637 *val = st->vco_out_freq[st->vco_out_map[chan->channel]] / ad9523_read_raw()
657 struct ad9523_state *st = iio_priv(indio_dev); ad9523_write_raw() local
683 tmp = st->vco_out_freq[st->vco_out_map[chan->channel]] / val; ad9523_write_raw()
745 struct ad9523_state *st = iio_priv(indio_dev); ad9523_setup() local
746 struct ad9523_platform_data *pdata = st->pdata; ad9523_setup()
753 (st->spi->mode & SPI_3WIRE ? 0 : ad9523_setup()
849 st->vco_freq = (pdata->vcxo_freq * (pdata->pll2_freq_doubler_en ? 2 : 1) ad9523_setup()
869 st->vco_out_freq[AD9523_VCO1] = ad9523_setup()
870 st->vco_freq / pdata->pll2_vco_diff_m1; ad9523_setup()
873 st->vco_out_freq[AD9523_VCO2] = ad9523_setup()
874 st->vco_freq / pdata->pll2_vco_diff_m2; ad9523_setup()
876 st->vco_out_freq[AD9523_VCXO] = pdata->vcxo_freq; ad9523_setup()
917 st->ad9523_channels[i].type = IIO_ALTVOLTAGE; ad9523_setup()
918 st->ad9523_channels[i].output = 1; ad9523_setup()
919 st->ad9523_channels[i].indexed = 1; ad9523_setup()
920 st->ad9523_channels[i].channel = chan->channel_num; ad9523_setup()
921 st->ad9523_channels[i].extend_name = ad9523_setup()
923 st->ad9523_channels[i].info_mask_separate = ad9523_setup()
956 struct ad9523_state *st; ad9523_probe() local
964 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad9523_probe()
968 st = iio_priv(indio_dev); ad9523_probe()
970 st->reg = devm_regulator_get(&spi->dev, "vcc"); ad9523_probe()
971 if (!IS_ERR(st->reg)) { ad9523_probe()
972 ret = regulator_enable(st->reg); ad9523_probe()
978 st->spi = spi; ad9523_probe()
979 st->pdata = pdata; ad9523_probe()
986 indio_dev->channels = st->ad9523_channels; ad9523_probe()
1002 if (!IS_ERR(st->reg)) ad9523_probe()
1003 regulator_disable(st->reg); ad9523_probe()
1011 struct ad9523_state *st = iio_priv(indio_dev); ad9523_remove() local
1015 if (!IS_ERR(st->reg)) ad9523_remove()
1016 regulator_disable(st->reg); ad9523_remove()
/linux-4.1.27/arch/m32r/mm/
H A Dpage.S34 st r4, @r0
35 st r5, @+r0
36 st r6, @+r0
37 st r7, @+r0
47 st r4, @r0
48 st r5, @+r0
49 st r6, @+r0
50 st r7, @+r0
69 st r4, @r0
70 st r4, @+r0
71 st r4, @+r0
72 st r4, @+r0
78 st r4, @r0
79 st r4, @+r0
80 st r4, @+r0
81 st r4, @+r0
H A Dmmu.S30 st r0, @-sp
31 st r1, @-sp
32 st r2, @-sp
33 st r3, @-sp
38 st r1, @(MESTS_offset, r3) ; clear status (MESTS reg.)
123 st r3, @r2 || slli r1, #3
125 st r3, @r2
181 st r0, @r1 ; set_tlb_tag(entry++, address);
182 st r2, @+r1 ; set_tlb_data(entry, pte_data);
213 st sp, @-sp
214 st r0, @-sp
215 st r1, @-sp
216 st r2, @-sp
217 st r3, @-sp
218 st r4, @-sp
224 st r1, @(MESTS_offset,r3) ; clear status (MESTS reg.)
239 st r4, @(low(tlb_entry_i_dat),r3)
253 st r4, @(low(tlb_entry_d_dat),r3)
301 st r3, @r2
302 st r1, @(4,r2) ; set_tlb_data(entry, pte_data);
326 st r1, @(MPSZ_offset,r0) ; Set MPSZ Reg(Page size 4KB:0 16KB:1 64KB:2)
328 st r1, @(MASID_offset,r0) ; Set ASID Zero
340 st r2, @+r0 ; VPA <- 0
341 st r2, @+r0 ; PPA <- 0
342 st r2, @+r1 ; VPA <- 0
343 st r2, @+r1 ; PPA <- 0
/linux-4.1.27/drivers/staging/iio/resolver/
H A Dad2s1210.c102 struct ad2s1210_state *st) ad2s1210_set_mode()
104 gpio_set_value(st->pdata->a[0], ad2s1210_mode_vals[mode][0]); ad2s1210_set_mode()
105 gpio_set_value(st->pdata->a[1], ad2s1210_mode_vals[mode][1]); ad2s1210_set_mode()
106 st->mode = mode; ad2s1210_set_mode()
110 static int ad2s1210_config_write(struct ad2s1210_state *st, u8 data) ad2s1210_config_write() argument
114 ad2s1210_set_mode(MOD_CONFIG, st); ad2s1210_config_write()
115 st->tx[0] = data; ad2s1210_config_write()
116 ret = spi_write(st->sdev, st->tx, 1); ad2s1210_config_write()
119 st->old_data = true; ad2s1210_config_write()
125 static int ad2s1210_config_read(struct ad2s1210_state *st, ad2s1210_config_read() argument
130 .rx_buf = st->rx, ad2s1210_config_read()
131 .tx_buf = st->tx, ad2s1210_config_read()
135 ad2s1210_set_mode(MOD_CONFIG, st); ad2s1210_config_read()
136 st->tx[0] = address | AD2S1210_MSB_IS_HIGH; ad2s1210_config_read()
137 st->tx[1] = AD2S1210_REG_FAULT; ad2s1210_config_read()
138 ret = spi_sync_transfer(st->sdev, &xfer, 1); ad2s1210_config_read()
141 st->old_data = true; ad2s1210_config_read()
143 return st->rx[1]; ad2s1210_config_read()
147 int ad2s1210_update_frequency_control_word(struct ad2s1210_state *st) ad2s1210_update_frequency_control_word() argument
152 fcw = (unsigned char)(st->fexcit * (1 << 15) / st->fclkin); ad2s1210_update_frequency_control_word()
154 dev_err(&st->sdev->dev, "ad2s1210: FCW out of range\n"); ad2s1210_update_frequency_control_word()
158 ret = ad2s1210_config_write(st, AD2S1210_REG_EXCIT_FREQ); ad2s1210_update_frequency_control_word()
162 return ad2s1210_config_write(st, fcw); ad2s1210_update_frequency_control_word()
165 static unsigned char ad2s1210_read_resolution_pin(struct ad2s1210_state *st) ad2s1210_read_resolution_pin() argument
168 (gpio_get_value(st->pdata->res[0]) << 1) | ad2s1210_read_resolution_pin()
169 gpio_get_value(st->pdata->res[1])]; ad2s1210_read_resolution_pin()
176 static inline void ad2s1210_set_resolution_pin(struct ad2s1210_state *st) ad2s1210_set_resolution_pin() argument
178 gpio_set_value(st->pdata->res[0], ad2s1210_set_resolution_pin()
179 ad2s1210_res_pins[(st->resolution - 10)/2][0]); ad2s1210_set_resolution_pin()
180 gpio_set_value(st->pdata->res[1], ad2s1210_set_resolution_pin()
181 ad2s1210_res_pins[(st->resolution - 10)/2][1]); ad2s1210_set_resolution_pin()
184 static inline int ad2s1210_soft_reset(struct ad2s1210_state *st) ad2s1210_soft_reset() argument
188 ret = ad2s1210_config_write(st, AD2S1210_REG_SOFT_RESET); ad2s1210_soft_reset()
192 return ad2s1210_config_write(st, 0x0); ad2s1210_soft_reset()
199 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_show_fclkin() local
201 return sprintf(buf, "%u\n", st->fclkin); ad2s1210_show_fclkin()
209 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_store_fclkin() local
221 mutex_lock(&st->lock); ad2s1210_store_fclkin()
222 st->fclkin = fclkin; ad2s1210_store_fclkin()
224 ret = ad2s1210_update_frequency_control_word(st); ad2s1210_store_fclkin()
227 ret = ad2s1210_soft_reset(st); ad2s1210_store_fclkin()
229 mutex_unlock(&st->lock); ad2s1210_store_fclkin()
238 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_show_fexcit() local
240 return sprintf(buf, "%u\n", st->fexcit); ad2s1210_show_fexcit()
247 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_store_fexcit() local
259 mutex_lock(&st->lock); ad2s1210_store_fexcit()
260 st->fexcit = fexcit; ad2s1210_store_fexcit()
261 ret = ad2s1210_update_frequency_control_word(st); ad2s1210_store_fexcit()
264 ret = ad2s1210_soft_reset(st); ad2s1210_store_fexcit()
266 mutex_unlock(&st->lock); ad2s1210_store_fexcit()
275 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_show_control() local
278 mutex_lock(&st->lock); ad2s1210_show_control()
279 ret = ad2s1210_config_read(st, AD2S1210_REG_CONTROL); ad2s1210_show_control()
280 mutex_unlock(&st->lock); ad2s1210_show_control()
288 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_store_control() local
297 mutex_lock(&st->lock); ad2s1210_store_control()
298 ret = ad2s1210_config_write(st, AD2S1210_REG_CONTROL); ad2s1210_store_control()
302 ret = ad2s1210_config_write(st, data); ad2s1210_store_control()
306 ret = ad2s1210_config_read(st, AD2S1210_REG_CONTROL); ad2s1210_store_control()
315 st->resolution ad2s1210_store_control()
317 if (st->pdata->gpioin) { ad2s1210_store_control()
318 data = ad2s1210_read_resolution_pin(st); ad2s1210_store_control()
319 if (data != st->resolution) ad2s1210_store_control()
322 ad2s1210_set_resolution_pin(st); ad2s1210_store_control()
325 st->hysteresis = !!(data & AD2S1210_ENABLE_HYSTERESIS); ad2s1210_store_control()
328 mutex_unlock(&st->lock); ad2s1210_store_control()
335 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_show_resolution() local
337 return sprintf(buf, "%d\n", st->resolution); ad2s1210_show_resolution()
344 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_store_resolution() local
354 mutex_lock(&st->lock); ad2s1210_store_resolution()
355 ret = ad2s1210_config_read(st, AD2S1210_REG_CONTROL); ad2s1210_store_resolution()
361 ret = ad2s1210_config_write(st, AD2S1210_REG_CONTROL); ad2s1210_store_resolution()
364 ret = ad2s1210_config_write(st, data & AD2S1210_MSB_IS_LOW); ad2s1210_store_resolution()
367 ret = ad2s1210_config_read(st, AD2S1210_REG_CONTROL); ad2s1210_store_resolution()
376 st->resolution ad2s1210_store_resolution()
378 if (st->pdata->gpioin) { ad2s1210_store_resolution()
379 data = ad2s1210_read_resolution_pin(st); ad2s1210_store_resolution()
380 if (data != st->resolution) ad2s1210_store_resolution()
383 ad2s1210_set_resolution_pin(st); ad2s1210_store_resolution()
386 mutex_unlock(&st->lock); ad2s1210_store_resolution()
394 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_show_fault() local
397 mutex_lock(&st->lock); ad2s1210_show_fault()
398 ret = ad2s1210_config_read(st, AD2S1210_REG_FAULT); ad2s1210_show_fault()
399 mutex_unlock(&st->lock); ad2s1210_show_fault()
409 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_clear_fault() local
412 mutex_lock(&st->lock); ad2s1210_clear_fault()
413 gpio_set_value(st->pdata->sample, 0); ad2s1210_clear_fault()
416 gpio_set_value(st->pdata->sample, 1); ad2s1210_clear_fault()
417 ret = ad2s1210_config_read(st, AD2S1210_REG_FAULT); ad2s1210_clear_fault()
420 gpio_set_value(st->pdata->sample, 0); ad2s1210_clear_fault()
421 gpio_set_value(st->pdata->sample, 1); ad2s1210_clear_fault()
423 mutex_unlock(&st->lock); ad2s1210_clear_fault()
432 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_show_reg() local
436 mutex_lock(&st->lock); ad2s1210_show_reg()
437 ret = ad2s1210_config_read(st, iattr->address); ad2s1210_show_reg()
438 mutex_unlock(&st->lock); ad2s1210_show_reg()
446 struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev)); ad2s1210_store_reg() local
454 mutex_lock(&st->lock); ad2s1210_store_reg()
455 ret = ad2s1210_config_write(st, iattr->address); ad2s1210_store_reg()
458 ret = ad2s1210_config_write(st, data & AD2S1210_MSB_IS_LOW); ad2s1210_store_reg()
460 mutex_unlock(&st->lock); ad2s1210_store_reg()
470 struct ad2s1210_state *st = iio_priv(indio_dev); ad2s1210_read_raw() local
476 mutex_lock(&st->lock); ad2s1210_read_raw()
477 gpio_set_value(st->pdata->sample, 0); ad2s1210_read_raw()
483 ad2s1210_set_mode(MOD_POS, st); ad2s1210_read_raw()
486 ad2s1210_set_mode(MOD_VEL, st); ad2s1210_read_raw()
494 ret = spi_read(st->sdev, st->rx, 2); ad2s1210_read_raw()
500 pos = be16_to_cpup((__be16 *) st->rx); ad2s1210_read_raw()
501 if (st->hysteresis) ad2s1210_read_raw()
502 pos >>= 16 - st->resolution; ad2s1210_read_raw()
507 negative = st->rx[0] & 0x80; ad2s1210_read_raw()
508 vel = be16_to_cpup((__be16 *) st->rx); ad2s1210_read_raw()
509 vel >>= 16 - st->resolution; ad2s1210_read_raw()
511 negative = (0xffff >> st->resolution) << st->resolution; ad2s1210_read_raw()
518 mutex_unlock(&st->lock); ad2s1210_read_raw()
523 gpio_set_value(st->pdata->sample, 1); ad2s1210_read_raw()
526 mutex_unlock(&st->lock); ad2s1210_read_raw()
598 static int ad2s1210_initial(struct ad2s1210_state *st) ad2s1210_initial() argument
603 mutex_lock(&st->lock); ad2s1210_initial()
604 if (st->pdata->gpioin) ad2s1210_initial()
605 st->resolution = ad2s1210_read_resolution_pin(st); ad2s1210_initial()
607 ad2s1210_set_resolution_pin(st); ad2s1210_initial()
609 ret = ad2s1210_config_write(st, AD2S1210_REG_CONTROL); ad2s1210_initial()
613 data |= (st->resolution - 10) >> 1; ad2s1210_initial()
614 ret = ad2s1210_config_write(st, data); ad2s1210_initial()
617 ret = ad2s1210_config_read(st, AD2S1210_REG_CONTROL); ad2s1210_initial()
626 ret = ad2s1210_update_frequency_control_word(st); ad2s1210_initial()
629 ret = ad2s1210_soft_reset(st); ad2s1210_initial()
631 mutex_unlock(&st->lock); ad2s1210_initial()
641 static int ad2s1210_setup_gpios(struct ad2s1210_state *st) ad2s1210_setup_gpios() argument
643 unsigned long flags = st->pdata->gpioin ? GPIOF_DIR_IN : GPIOF_DIR_OUT; ad2s1210_setup_gpios()
645 { st->pdata->sample, GPIOF_DIR_IN, "sample" }, ad2s1210_setup_gpios()
646 { st->pdata->a[0], flags, "a0" }, ad2s1210_setup_gpios()
647 { st->pdata->a[1], flags, "a1" }, ad2s1210_setup_gpios()
648 { st->pdata->res[0], flags, "res0" }, ad2s1210_setup_gpios()
649 { st->pdata->res[0], flags, "res1" }, ad2s1210_setup_gpios()
655 static void ad2s1210_free_gpios(struct ad2s1210_state *st) ad2s1210_free_gpios() argument
657 unsigned long flags = st->pdata->gpioin ? GPIOF_DIR_IN : GPIOF_DIR_OUT; ad2s1210_free_gpios()
659 { st->pdata->sample, GPIOF_DIR_IN, "sample" }, ad2s1210_free_gpios()
660 { st->pdata->a[0], flags, "a0" }, ad2s1210_free_gpios()
661 { st->pdata->a[1], flags, "a1" }, ad2s1210_free_gpios()
662 { st->pdata->res[0], flags, "res0" }, ad2s1210_free_gpios()
663 { st->pdata->res[0], flags, "res1" }, ad2s1210_free_gpios()
672 struct ad2s1210_state *st; ad2s1210_probe() local
678 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad2s1210_probe()
681 st = iio_priv(indio_dev); ad2s1210_probe()
682 st->pdata = spi->dev.platform_data; ad2s1210_probe()
683 ret = ad2s1210_setup_gpios(st); ad2s1210_probe()
689 mutex_init(&st->lock); ad2s1210_probe()
690 st->sdev = spi; ad2s1210_probe()
691 st->hysteresis = true; ad2s1210_probe()
692 st->mode = MOD_CONFIG; ad2s1210_probe()
693 st->resolution = 12; ad2s1210_probe()
694 st->fexcit = AD2S1210_DEF_EXCIT; ad2s1210_probe()
707 st->fclkin = spi->max_speed_hz; ad2s1210_probe()
710 ad2s1210_initial(st); ad2s1210_probe()
715 ad2s1210_free_gpios(st); ad2s1210_probe()
101 ad2s1210_set_mode(enum ad2s1210_mode mode, struct ad2s1210_state *st) ad2s1210_set_mode() argument
H A Dad2s1200.c52 struct ad2s1200_state *st = iio_priv(indio_dev); ad2s1200_read_raw() local
54 mutex_lock(&st->lock); ad2s1200_read_raw()
55 gpio_set_value(st->sample, 0); ad2s1200_read_raw()
58 gpio_set_value(st->sample, 1); ad2s1200_read_raw()
59 gpio_set_value(st->rdvel, !!(chan->type == IIO_ANGL)); ad2s1200_read_raw()
60 ret = spi_read(st->sdev, st->rx, 2); ad2s1200_read_raw()
62 mutex_unlock(&st->lock); ad2s1200_read_raw()
68 *val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4); ad2s1200_read_raw()
71 vel = (((s16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4); ad2s1200_read_raw()
76 mutex_unlock(&st->lock); ad2s1200_read_raw()
81 mutex_unlock(&st->lock); ad2s1200_read_raw()
106 struct ad2s1200_state *st; ad2s1200_probe() local
120 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad2s1200_probe()
124 st = iio_priv(indio_dev); ad2s1200_probe()
125 mutex_init(&st->lock); ad2s1200_probe()
126 st->sdev = spi; ad2s1200_probe()
127 st->sample = pins[0]; ad2s1200_probe()
128 st->rdvel = pins[1]; ad2s1200_probe()
H A Dad2s90.c35 struct ad2s90_state *st = iio_priv(indio_dev); ad2s90_read_raw() local
37 mutex_lock(&st->lock); ad2s90_read_raw()
38 ret = spi_read(st->sdev, st->rx, 2); ad2s90_read_raw()
41 *val = (((u16)(st->rx[0])) << 4) | ((st->rx[1] & 0xF0) >> 4); ad2s90_read_raw()
44 mutex_unlock(&st->lock); ad2s90_read_raw()
64 struct ad2s90_state *st; ad2s90_probe() local
67 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad2s90_probe()
70 st = iio_priv(indio_dev); ad2s90_probe()
73 mutex_init(&st->lock); ad2s90_probe()
74 st->sdev = spi; ad2s90_probe()
/linux-4.1.27/drivers/isdn/mISDN/
H A Dstack.c27 _queue_message(struct mISDNstack *st, struct sk_buff *skb) _queue_message() argument
34 skb_queue_tail(&st->msgq, skb); _queue_message()
35 if (likely(!test_bit(mISDN_STACK_STOPPED, &st->status))) { _queue_message()
36 test_and_set_bit(mISDN_STACK_WORK, &st->status); _queue_message()
37 wake_up_interruptible(&st->workq); _queue_message()
44 _queue_message(ch->st, skb); mISDN_queue_message()
49 get_channel4id(struct mISDNstack *st, u_int id) get_channel4id() argument
53 mutex_lock(&st->lmutex); get_channel4id()
54 list_for_each_entry(ch, &st->layer2, list) { get_channel4id()
60 mutex_unlock(&st->lmutex); get_channel4id()
89 send_layer2(struct mISDNstack *st, struct sk_buff *skb) send_layer2() argument
96 if (!st) send_layer2()
98 mutex_lock(&st->lmutex); send_layer2()
100 list_for_each_entry(ch, &st->layer2, list) { send_layer2()
101 if (list_is_last(&ch->list, &st->layer2)) { send_layer2()
125 list_for_each_entry(ch, &st->layer2, list) { send_layer2()
133 ret = st->dev->teimgr->ctrl(st->dev->teimgr, CHECK_DATA, skb); send_layer2()
142 mutex_unlock(&st->lmutex); send_layer2()
148 send_msg_to_layer(struct mISDNstack *st, struct sk_buff *skb) send_msg_to_layer() argument
159 if (!hlist_empty(&st->l1sock.head)) { send_msg_to_layer()
161 send_socklist(&st->l1sock, skb); send_msg_to_layer()
163 return st->layer1->send(st->layer1, skb); send_msg_to_layer()
165 if (!hlist_empty(&st->l1sock.head)) send_msg_to_layer()
166 send_socklist(&st->l1sock, skb); send_msg_to_layer()
167 send_layer2(st, skb); send_msg_to_layer()
170 ch = get_channel4id(st, hh->id); send_msg_to_layer()
176 __func__, dev_name(&st->dev->dev), hh->prim, send_msg_to_layer()
180 ch = get_channel4id(st, hh->id); send_msg_to_layer()
186 __func__, dev_name(&st->dev->dev), hh->prim, send_msg_to_layer()
191 __func__, dev_name(&st->dev->dev), hh->prim); send_msg_to_layer()
197 do_clear_stack(struct mISDNstack *st) do_clear_stack() argument
204 struct mISDNstack *st = data; mISDNStackd() local
213 dev_name(&st->dev->dev)); mISDNStackd()
215 if (st->notify != NULL) { mISDNStackd()
216 complete(st->notify); mISDNStackd()
217 st->notify = NULL; mISDNStackd()
223 if (unlikely(test_bit(mISDN_STACK_STOPPED, &st->status))) { mISDNStackd()
224 test_and_clear_bit(mISDN_STACK_WORK, &st->status); mISDNStackd()
225 test_and_clear_bit(mISDN_STACK_RUNNING, &st->status); mISDNStackd()
227 test_and_set_bit(mISDN_STACK_RUNNING, &st->status); mISDNStackd()
228 while (test_bit(mISDN_STACK_WORK, &st->status)) { mISDNStackd()
229 skb = skb_dequeue(&st->msgq); mISDNStackd()
232 &st->status); mISDNStackd()
234 skb = skb_dequeue(&st->msgq); mISDNStackd()
238 &st->status); mISDNStackd()
241 st->msg_cnt++; mISDNStackd()
243 err = send_msg_to_layer(st, skb); mISDNStackd()
249 __func__, dev_name(&st->dev->dev), mISDNStackd()
256 &st->status))) { mISDNStackd()
258 &st->status); mISDNStackd()
260 &st->status); mISDNStackd()
264 if (test_bit(mISDN_STACK_CLEARING, &st->status)) { mISDNStackd()
265 test_and_set_bit(mISDN_STACK_STOPPED, &st->status); mISDNStackd()
266 test_and_clear_bit(mISDN_STACK_RUNNING, &st->status); mISDNStackd()
267 do_clear_stack(st); mISDNStackd()
268 test_and_clear_bit(mISDN_STACK_CLEARING, &st->status); mISDNStackd()
269 test_and_set_bit(mISDN_STACK_RESTART, &st->status); mISDNStackd()
271 if (test_and_clear_bit(mISDN_STACK_RESTART, &st->status)) { mISDNStackd()
272 test_and_clear_bit(mISDN_STACK_STOPPED, &st->status); mISDNStackd()
273 test_and_set_bit(mISDN_STACK_RUNNING, &st->status); mISDNStackd()
274 if (!skb_queue_empty(&st->msgq)) mISDNStackd()
276 &st->status); mISDNStackd()
278 if (test_bit(mISDN_STACK_ABORT, &st->status)) mISDNStackd()
280 if (st->notify != NULL) { mISDNStackd()
281 complete(st->notify); mISDNStackd()
282 st->notify = NULL; mISDNStackd()
285 st->sleep_cnt++; mISDNStackd()
287 test_and_clear_bit(mISDN_STACK_ACTIVE, &st->status); mISDNStackd()
288 wait_event_interruptible(st->workq, (st->status & mISDNStackd()
292 __func__, dev_name(&st->dev->dev), st->status); mISDNStackd()
293 test_and_set_bit(mISDN_STACK_ACTIVE, &st->status); mISDNStackd()
295 test_and_clear_bit(mISDN_STACK_WAKEUP, &st->status); mISDNStackd()
297 if (test_bit(mISDN_STACK_STOPPED, &st->status)) { mISDNStackd()
298 test_and_clear_bit(mISDN_STACK_RUNNING, &st->status); mISDNStackd()
300 st->stopped_cnt++; mISDNStackd()
307 dev_name(&st->dev->dev), st->msg_cnt, st->sleep_cnt, mISDNStackd()
308 st->stopped_cnt); mISDNStackd()
309 task_cputime(st->thread, &utime, &stime); mISDNStackd()
312 dev_name(&st->dev->dev), utime, stime); mISDNStackd()
315 dev_name(&st->dev->dev), st->thread->nvcsw, st->thread->nivcsw); mISDNStackd()
317 dev_name(&st->dev->dev)); mISDNStackd()
319 test_and_set_bit(mISDN_STACK_KILLED, &st->status); mISDNStackd()
320 test_and_clear_bit(mISDN_STACK_RUNNING, &st->status); mISDNStackd()
321 test_and_clear_bit(mISDN_STACK_ACTIVE, &st->status); mISDNStackd()
322 test_and_clear_bit(mISDN_STACK_ABORT, &st->status); mISDNStackd()
323 skb_queue_purge(&st->msgq); mISDNStackd()
324 st->thread = NULL; mISDNStackd()
325 if (st->notify != NULL) { mISDNStackd()
326 complete(st->notify); mISDNStackd()
327 st->notify = NULL; mISDNStackd()
335 if (!ch->st) l1_receive()
338 _queue_message(ch->st, skb); l1_receive()
349 __add_layer2(struct mISDNchannel *ch, struct mISDNstack *st) __add_layer2() argument
351 list_add_tail(&ch->list, &st->layer2); __add_layer2()
355 add_layer2(struct mISDNchannel *ch, struct mISDNstack *st) add_layer2() argument
357 mutex_lock(&st->lmutex); add_layer2()
358 __add_layer2(ch, st); add_layer2()
359 mutex_unlock(&st->lmutex); add_layer2()
365 if (!ch->st || !ch->st->layer1) st_own_ctrl()
367 return ch->st->layer1->ctrl(ch->st->layer1, cmd, arg); st_own_ctrl()
389 dev->D.st = newst; create_stack()
398 dev->teimgr->st = newst; create_stack()
402 newst->own.st = newst; create_stack()
407 printk(KERN_DEBUG "%s: st(%s)\n", __func__, create_stack()
443 ch->peer = &dev->D.st->own; connect_layer1()
444 ch->st = dev->D.st; connect_layer1()
452 write_lock_bh(&dev->D.st->l1sock.lock); connect_layer1()
453 sk_add_node(&msk->sk, &dev->D.st->l1sock.head); connect_layer1()
454 write_unlock_bh(&dev->D.st->l1sock.lock); connect_layer1()
475 ch->st = dev->D.st; connect_Bstack()
487 rq.ch->st = dev->D.st; connect_Bstack()
500 rq2.ch->st = dev->D.st; connect_Bstack()
512 rq.ch->st = dev->D.st; connect_Bstack()
541 ch->peer = &dev->D.st->own; create_l2entity()
542 ch->st = dev->D.st; create_l2entity()
556 add_layer2(rq.ch, dev->D.st); create_l2entity()
558 rq.ch->peer = &dev->D.st->own; create_l2entity()
574 if (!ch->st) { delete_channel()
579 printk(KERN_DEBUG "%s: st(%s) protocol(%x)\n", __func__, delete_channel()
580 dev_name(&ch->st->dev->dev), ch->protocol); delete_channel()
593 write_lock_bh(&ch->st->l1sock.lock); delete_channel()
595 write_unlock_bh(&ch->st->l1sock.lock); delete_channel()
596 ch->st->dev->D.ctrl(&ch->st->dev->D, CLOSE_CHANNEL, NULL); delete_channel()
599 pch = get_channel4id(ch->st, ch->nr); delete_channel()
601 mutex_lock(&ch->st->lmutex); delete_channel()
603 mutex_unlock(&ch->st->lmutex); delete_channel()
605 pch = ch->st->dev->teimgr; delete_channel()
612 pch = ch->st->dev->teimgr; delete_channel()
628 struct mISDNstack *st = dev->D.st; delete_stack() local
632 printk(KERN_DEBUG "%s: st(%s)\n", __func__, delete_stack()
633 dev_name(&st->dev->dev)); delete_stack()
636 if (st->thread) { delete_stack()
637 if (st->notify) { delete_stack()
640 complete(st->notify); delete_stack()
642 st->notify = &done; delete_stack()
643 test_and_set_bit(mISDN_STACK_ABORT, &st->status); delete_stack()
644 test_and_set_bit(mISDN_STACK_WAKEUP, &st->status); delete_stack()
645 wake_up_interruptible(&st->workq); delete_stack()
648 if (!list_empty(&st->layer2)) delete_stack()
651 if (!hlist_empty(&st->l1sock.head)) delete_stack()
654 kfree(st); delete_stack()
/linux-4.1.27/drivers/staging/iio/trigger/
H A Diio-trig-bfin-timer.c68 struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig); iio_bfin_tmr_set_state() local
70 if (get_gptimer_period(st->t->id) == 0) iio_bfin_tmr_set_state()
74 enable_gptimers(st->t->bit); iio_bfin_tmr_set_state()
76 disable_gptimers(st->t->bit); iio_bfin_tmr_set_state()
85 struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig); iio_bfin_tmr_frequency_store() local
97 enabled = get_enabled_gptimers() & st->t->bit; iio_bfin_tmr_frequency_store()
100 disable_gptimers(st->t->bit); iio_bfin_tmr_frequency_store()
106 if (val <= 4 || val <= st->duty) iio_bfin_tmr_frequency_store()
109 set_gptimer_period(st->t->id, val); iio_bfin_tmr_frequency_store()
110 set_gptimer_pwidth(st->t->id, val - st->duty); iio_bfin_tmr_frequency_store()
113 enable_gptimers(st->t->bit); iio_bfin_tmr_frequency_store()
123 struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig); iio_bfin_tmr_frequency_show() local
124 unsigned int period = get_gptimer_period(st->t->id); iio_bfin_tmr_frequency_show()
130 val = get_sclk() / get_gptimer_period(st->t->id); iio_bfin_tmr_frequency_show()
154 struct bfin_tmr_state *st = devid; iio_bfin_tmr_trigger_isr() local
156 clear_gptimer_intr(st->t->id); iio_bfin_tmr_trigger_isr()
157 iio_trigger_poll(st->trig); iio_bfin_tmr_trigger_isr()
181 struct bfin_tmr_state *st; iio_bfin_tmr_trigger_probe() local
185 st = devm_kzalloc(&pdev->dev, sizeof(*st), GFP_KERNEL); iio_bfin_tmr_trigger_probe()
186 if (!st) iio_bfin_tmr_trigger_probe()
189 st->irq = platform_get_irq(pdev, 0); iio_bfin_tmr_trigger_probe()
190 if (!st->irq) { iio_bfin_tmr_trigger_probe()
195 ret = iio_bfin_tmr_get_number(st->irq); iio_bfin_tmr_trigger_probe()
199 st->timer_num = ret; iio_bfin_tmr_trigger_probe()
200 st->t = &iio_bfin_timer_code[st->timer_num]; iio_bfin_tmr_trigger_probe()
202 st->trig = iio_trigger_alloc("bfintmr%d", st->timer_num); iio_bfin_tmr_trigger_probe()
203 if (!st->trig) iio_bfin_tmr_trigger_probe()
206 st->trig->ops = &iio_bfin_tmr_trigger_ops; iio_bfin_tmr_trigger_probe()
207 st->trig->dev.groups = iio_bfin_tmr_trigger_attr_groups; iio_bfin_tmr_trigger_probe()
208 iio_trigger_set_drvdata(st->trig, st); iio_bfin_tmr_trigger_probe()
209 ret = iio_trigger_register(st->trig); iio_bfin_tmr_trigger_probe()
213 ret = request_irq(st->irq, iio_bfin_tmr_trigger_isr, iio_bfin_tmr_trigger_probe()
214 0, st->trig->name, st); iio_bfin_tmr_trigger_probe()
217 "request IRQ-%d failed", st->irq); iio_bfin_tmr_trigger_probe()
226 st->output_enable = true; iio_bfin_tmr_trigger_probe()
228 ret = peripheral_request(st->t->pin, st->trig->name); iio_bfin_tmr_trigger_probe()
234 st->duty = val; iio_bfin_tmr_trigger_probe()
245 st->duty = 1; iio_bfin_tmr_trigger_probe()
249 set_gptimer_config(st->t->id, config); iio_bfin_tmr_trigger_probe()
252 st->timer_num, st->irq); iio_bfin_tmr_trigger_probe()
253 platform_set_drvdata(pdev, st); iio_bfin_tmr_trigger_probe()
257 free_irq(st->irq, st); iio_bfin_tmr_trigger_probe()
259 iio_trigger_unregister(st->trig); iio_bfin_tmr_trigger_probe()
261 iio_trigger_put(st->trig); iio_bfin_tmr_trigger_probe()
267 struct bfin_tmr_state *st = platform_get_drvdata(pdev); iio_bfin_tmr_trigger_remove() local
269 disable_gptimers(st->t->bit); iio_bfin_tmr_trigger_remove()
270 if (st->output_enable) iio_bfin_tmr_trigger_remove()
271 peripheral_free(st->t->pin); iio_bfin_tmr_trigger_remove()
272 free_irq(st->irq, st); iio_bfin_tmr_trigger_remove()
273 iio_trigger_unregister(st->trig); iio_bfin_tmr_trigger_remove()
274 iio_trigger_put(st->trig); iio_bfin_tmr_trigger_remove()
/linux-4.1.27/drivers/iio/common/hid-sensors/
H A Dhid-sensor-trigger.c32 static int _hid_sensor_power_state(struct hid_sensor_common *st, bool state) _hid_sensor_power_state() argument
39 if (!atomic_read(&st->user_requested_state)) _hid_sensor_power_state()
41 if (sensor_hub_device_open(st->hsdev)) _hid_sensor_power_state()
44 atomic_inc(&st->data_ready); _hid_sensor_power_state()
46 state_val = hid_sensor_get_usage_index(st->hsdev, _hid_sensor_power_state()
47 st->power_state.report_id, _hid_sensor_power_state()
48 st->power_state.index, _hid_sensor_power_state()
50 report_val = hid_sensor_get_usage_index(st->hsdev, _hid_sensor_power_state()
51 st->report_state.report_id, _hid_sensor_power_state()
52 st->report_state.index, _hid_sensor_power_state()
55 poll_value = hid_sensor_read_poll_value(st); _hid_sensor_power_state()
59 val = atomic_dec_if_positive(&st->data_ready); _hid_sensor_power_state()
63 sensor_hub_device_close(st->hsdev); _hid_sensor_power_state()
64 state_val = hid_sensor_get_usage_index(st->hsdev, _hid_sensor_power_state()
65 st->power_state.report_id, _hid_sensor_power_state()
66 st->power_state.index, _hid_sensor_power_state()
68 report_val = hid_sensor_get_usage_index(st->hsdev, _hid_sensor_power_state()
69 st->report_state.report_id, _hid_sensor_power_state()
70 st->report_state.index, _hid_sensor_power_state()
75 state_val += st->power_state.logical_minimum; _hid_sensor_power_state()
76 sensor_hub_set_feature(st->hsdev, st->power_state.report_id, _hid_sensor_power_state()
77 st->power_state.index, sizeof(state_val), _hid_sensor_power_state()
82 report_val += st->report_state.logical_minimum; _hid_sensor_power_state()
83 sensor_hub_set_feature(st->hsdev, st->report_state.report_id, _hid_sensor_power_state()
84 st->report_state.index, _hid_sensor_power_state()
89 sensor_hub_get_feature(st->hsdev, st->power_state.report_id, _hid_sensor_power_state()
90 st->power_state.index, _hid_sensor_power_state()
99 int hid_sensor_power_state(struct hid_sensor_common *st, bool state) hid_sensor_power_state() argument
105 atomic_set(&st->user_requested_state, state); hid_sensor_power_state()
107 ret = pm_runtime_get_sync(&st->pdev->dev); hid_sensor_power_state()
109 pm_runtime_mark_last_busy(&st->pdev->dev); hid_sensor_power_state()
110 ret = pm_runtime_put_autosuspend(&st->pdev->dev); hid_sensor_power_state()
114 pm_runtime_put_noidle(&st->pdev->dev); hid_sensor_power_state()
120 atomic_set(&st->user_requested_state, state); hid_sensor_power_state()
121 return _hid_sensor_power_state(st, state); hid_sensor_power_state()
H A Dhid-sensor-attributes.c150 s32 hid_sensor_read_poll_value(struct hid_sensor_common *st) hid_sensor_read_poll_value() argument
155 ret = sensor_hub_get_feature(st->hsdev, hid_sensor_read_poll_value()
156 st->poll.report_id, hid_sensor_read_poll_value()
157 st->poll.index, sizeof(value), &value); hid_sensor_read_poll_value()
162 if (st->poll.units == HID_USAGE_SENSOR_UNITS_SECOND) hid_sensor_read_poll_value()
170 int hid_sensor_read_samp_freq_value(struct hid_sensor_common *st, hid_sensor_read_samp_freq_value() argument
176 ret = sensor_hub_get_feature(st->hsdev, hid_sensor_read_samp_freq_value()
177 st->poll.report_id, hid_sensor_read_samp_freq_value()
178 st->poll.index, sizeof(value), &value); hid_sensor_read_samp_freq_value()
183 if (st->poll.units == HID_USAGE_SENSOR_UNITS_MILLISECOND) hid_sensor_read_samp_freq_value()
185 else if (st->poll.units == HID_USAGE_SENSOR_UNITS_SECOND) hid_sensor_read_samp_freq_value()
197 int hid_sensor_write_samp_freq_value(struct hid_sensor_common *st, hid_sensor_write_samp_freq_value() argument
208 if (st->poll.units == HID_USAGE_SENSOR_UNITS_MILLISECOND) hid_sensor_write_samp_freq_value()
210 else if (st->poll.units == HID_USAGE_SENSOR_UNITS_SECOND) hid_sensor_write_samp_freq_value()
215 ret = sensor_hub_set_feature(st->hsdev, st->poll.report_id, hid_sensor_write_samp_freq_value()
216 st->poll.index, sizeof(value), &value); hid_sensor_write_samp_freq_value()
224 int hid_sensor_read_raw_hyst_value(struct hid_sensor_common *st, hid_sensor_read_raw_hyst_value() argument
230 ret = sensor_hub_get_feature(st->hsdev, hid_sensor_read_raw_hyst_value()
231 st->sensitivity.report_id, hid_sensor_read_raw_hyst_value()
232 st->sensitivity.index, sizeof(value), hid_sensor_read_raw_hyst_value()
238 convert_from_vtf_format(value, st->sensitivity.size, hid_sensor_read_raw_hyst_value()
239 st->sensitivity.unit_expo, hid_sensor_read_raw_hyst_value()
247 int hid_sensor_write_raw_hyst_value(struct hid_sensor_common *st, hid_sensor_write_raw_hyst_value() argument
253 value = convert_to_vtf_format(st->sensitivity.size, hid_sensor_write_raw_hyst_value()
254 st->sensitivity.unit_expo, hid_sensor_write_raw_hyst_value()
256 ret = sensor_hub_set_feature(st->hsdev, st->sensitivity.report_id, hid_sensor_write_raw_hyst_value()
257 st->sensitivity.index, sizeof(value), hid_sensor_write_raw_hyst_value()
349 struct hid_sensor_common *st) hid_sensor_get_reporting_interval()
354 &st->poll); hid_sensor_get_reporting_interval()
356 if (st->poll.units == 0) hid_sensor_get_reporting_interval()
357 st->poll.units = HID_USAGE_SENSOR_UNITS_MILLISECOND; hid_sensor_get_reporting_interval()
364 struct hid_sensor_common *st) hid_sensor_parse_common_attributes()
368 hid_sensor_get_reporting_interval(hsdev, usage_id, st); hid_sensor_parse_common_attributes()
373 &st->report_state); hid_sensor_parse_common_attributes()
378 &st->power_state); hid_sensor_parse_common_attributes()
383 &st->sensitivity); hid_sensor_parse_common_attributes()
386 st->poll.index, st->poll.report_id, hid_sensor_parse_common_attributes()
387 st->report_state.index, st->report_state.report_id, hid_sensor_parse_common_attributes()
388 st->power_state.index, st->power_state.report_id, hid_sensor_parse_common_attributes()
389 st->sensitivity.index, st->sensitivity.report_id); hid_sensor_parse_common_attributes()
347 hid_sensor_get_reporting_interval(struct hid_sensor_hub_device *hsdev, u32 usage_id, struct hid_sensor_common *st) hid_sensor_get_reporting_interval() argument
362 hid_sensor_parse_common_attributes(struct hid_sensor_hub_device *hsdev, u32 usage_id, struct hid_sensor_common *st) hid_sensor_parse_common_attributes() argument
/linux-4.1.27/drivers/staging/iio/impedance-analyzer/
H A Dad5933.c182 static int ad5933_cmd(struct ad5933_state *st, unsigned char cmd) ad5933_cmd() argument
184 unsigned char dat = st->ctrl_hb | cmd; ad5933_cmd()
186 return ad5933_i2c_write(st->client, ad5933_cmd()
190 static int ad5933_reset(struct ad5933_state *st) ad5933_reset() argument
192 unsigned char dat = st->ctrl_lb | AD5933_CTRL_RESET; ad5933_reset()
194 return ad5933_i2c_write(st->client, ad5933_reset()
198 static int ad5933_wait_busy(struct ad5933_state *st, unsigned char event) ad5933_wait_busy() argument
204 ret = ad5933_i2c_read(st->client, AD5933_REG_STATUS, 1, &val); ad5933_wait_busy()
216 static int ad5933_set_freq(struct ad5933_state *st, ad5933_set_freq() argument
226 do_div(freqreg, st->mclk_hz / 4); ad5933_set_freq()
230 st->freq_start = freq; ad5933_set_freq()
233 st->freq_inc = freq; ad5933_set_freq()
240 return ad5933_i2c_write(st->client, reg, 3, &dat.d8[1]); ad5933_set_freq()
243 static int ad5933_setup(struct ad5933_state *st) ad5933_setup() argument
248 ret = ad5933_reset(st); ad5933_setup()
252 ret = ad5933_set_freq(st, AD5933_REG_FREQ_START, 10000); ad5933_setup()
256 ret = ad5933_set_freq(st, AD5933_REG_FREQ_INC, 200); ad5933_setup()
260 st->settling_cycles = 10; ad5933_setup()
261 dat = cpu_to_be16(st->settling_cycles); ad5933_setup()
263 ret = ad5933_i2c_write(st->client, ad5933_setup()
268 st->freq_points = 100; ad5933_setup()
269 dat = cpu_to_be16(st->freq_points); ad5933_setup()
271 return ad5933_i2c_write(st->client, AD5933_REG_INC_NUM, 2, (u8 *)&dat); ad5933_setup()
274 static void ad5933_calc_out_ranges(struct ad5933_state *st) ad5933_calc_out_ranges() argument
280 st->range_avail[i] = normalized_3v3[i] * st->vref_mv / 3300; ad5933_calc_out_ranges()
293 struct ad5933_state *st = iio_priv(indio_dev); ad5933_show_frequency() local
303 ret = ad5933_i2c_read(st->client, this_attr->address, 3, &dat.d8[1]); ad5933_show_frequency()
310 freqreg = (u64) freqreg * (u64) (st->mclk_hz / 4); ad5933_show_frequency()
322 struct ad5933_state *st = iio_priv(indio_dev); ad5933_store_frequency() local
335 ret = ad5933_set_freq(st, this_attr->address, val); ad5933_store_frequency()
356 struct ad5933_state *st = iio_priv(indio_dev); ad5933_show() local
364 st->range_avail[(st->ctrl_hb >> 1) & 0x3]); ad5933_show()
367 len = sprintf(buf, "%u %u %u %u\n", st->range_avail[0], ad5933_show()
368 st->range_avail[3], st->range_avail[2], ad5933_show()
369 st->range_avail[1]); ad5933_show()
372 len = sprintf(buf, "%d\n", st->settling_cycles); ad5933_show()
376 (st->ctrl_hb & AD5933_CTRL_PGA_GAIN_1) ? ad5933_show()
383 len = sprintf(buf, "%d\n", st->freq_points); ad5933_show()
399 struct ad5933_state *st = iio_priv(indio_dev); ad5933_store() local
415 if (val == st->range_avail[i]) { ad5933_store()
416 st->ctrl_hb &= ~AD5933_CTRL_RANGE(0x3); ad5933_store()
417 st->ctrl_hb |= AD5933_CTRL_RANGE(i); ad5933_store()
418 ret = ad5933_cmd(st, 0); ad5933_store()
425 st->ctrl_hb |= AD5933_CTRL_PGA_GAIN_1; ad5933_store()
427 st->ctrl_hb &= ~AD5933_CTRL_PGA_GAIN_1; ad5933_store()
432 ret = ad5933_cmd(st, 0); ad5933_store()
436 st->settling_cycles = val; ad5933_store()
445 ret = ad5933_i2c_write(st->client, ad5933_store()
450 st->freq_points = val; ad5933_store()
453 ret = ad5933_i2c_write(st->client, AD5933_REG_INC_NUM, 2, ad5933_store()
521 struct ad5933_state *st = iio_priv(indio_dev); ad5933_read_raw() local
532 ret = ad5933_cmd(st, AD5933_CTRL_MEASURE_TEMP); ad5933_read_raw()
535 ret = ad5933_wait_busy(st, AD5933_STAT_TEMP_VALID); ad5933_read_raw()
539 ret = ad5933_i2c_read(st->client, ad5933_read_raw()
568 struct ad5933_state *st = iio_priv(indio_dev); ad5933_ring_preenable() local
574 ret = ad5933_reset(st); ad5933_ring_preenable()
578 ret = ad5933_cmd(st, AD5933_CTRL_STANDBY); ad5933_ring_preenable()
582 ret = ad5933_cmd(st, AD5933_CTRL_INIT_START_FREQ); ad5933_ring_preenable()
586 st->state = AD5933_CTRL_INIT_START_FREQ; ad5933_ring_preenable()
593 struct ad5933_state *st = iio_priv(indio_dev); ad5933_ring_postenable() local
605 schedule_delayed_work(&st->work, ad5933_ring_postenable()
612 struct ad5933_state *st = iio_priv(indio_dev); ad5933_ring_postdisable() local
614 cancel_delayed_work_sync(&st->work); ad5933_ring_postdisable()
615 return ad5933_cmd(st, AD5933_CTRL_POWER_DOWN); ad5933_ring_postdisable()
644 struct ad5933_state *st = container_of(work, ad5933_work() local
646 struct iio_dev *indio_dev = i2c_get_clientdata(st->client); ad5933_work()
651 if (st->state == AD5933_CTRL_INIT_START_FREQ) { ad5933_work()
653 ad5933_cmd(st, AD5933_CTRL_START_SWEEP); ad5933_work()
654 st->state = AD5933_CTRL_START_SWEEP; ad5933_work()
655 schedule_delayed_work(&st->work, st->poll_time_jiffies); ad5933_work()
660 ad5933_i2c_read(st->client, AD5933_REG_STATUS, 1, &status); ad5933_work()
665 ad5933_i2c_read(st->client, ad5933_work()
679 schedule_delayed_work(&st->work, st->poll_time_jiffies); ad5933_work()
687 ad5933_cmd(st, AD5933_CTRL_POWER_DOWN); ad5933_work()
690 ad5933_cmd(st, AD5933_CTRL_INC_FREQ); ad5933_work()
691 schedule_delayed_work(&st->work, st->poll_time_jiffies); ad5933_work()
702 struct ad5933_state *st; ad5933_probe() local
705 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); ad5933_probe()
709 st = iio_priv(indio_dev); ad5933_probe()
711 st->client = client; ad5933_probe()
716 st->reg = devm_regulator_get(&client->dev, "vcc"); ad5933_probe()
717 if (!IS_ERR(st->reg)) { ad5933_probe()
718 ret = regulator_enable(st->reg); ad5933_probe()
721 voltage_uv = regulator_get_voltage(st->reg); ad5933_probe()
725 st->vref_mv = voltage_uv / 1000; ad5933_probe()
727 st->vref_mv = pdata->vref_mv; ad5933_probe()
730 st->mclk_hz = pdata->ext_clk_Hz; ad5933_probe()
731 st->ctrl_lb = AD5933_CTRL_EXT_SYSCLK; ad5933_probe()
733 st->mclk_hz = AD5933_INT_OSC_FREQ_Hz; ad5933_probe()
734 st->ctrl_lb = AD5933_CTRL_INT_SYSCLK; ad5933_probe()
737 ad5933_calc_out_ranges(st); ad5933_probe()
738 INIT_DELAYED_WORK(&st->work, ad5933_work); ad5933_probe()
739 st->poll_time_jiffies = msecs_to_jiffies(AD5933_POLL_TIME_ms); ad5933_probe()
752 ret = ad5933_setup(st); ad5933_probe()
765 if (!IS_ERR(st->reg)) ad5933_probe()
766 regulator_disable(st->reg); ad5933_probe()
774 struct ad5933_state *st = iio_priv(indio_dev); ad5933_remove() local
778 if (!IS_ERR(st->reg)) ad5933_remove()
779 regulator_disable(st->reg); ad5933_remove()
/linux-4.1.27/drivers/media/usb/dvb-usb/
H A Dvp702x-fe.c42 static int vp702x_fe_refresh_state(struct vp702x_fe_state *st) vp702x_fe_refresh_state() argument
44 struct vp702x_device_state *dst = st->d->priv; vp702x_fe_refresh_state()
47 if (time_after(jiffies, st->next_status_check)) { vp702x_fe_refresh_state()
51 vp702x_usb_in_op(st->d, READ_STATUS, 0, 0, buf, 10); vp702x_fe_refresh_state()
52 st->lock = buf[4]; vp702x_fe_refresh_state()
54 vp702x_usb_in_op(st->d, READ_TUNER_REG_REQ, 0x11, 0, buf, 1); vp702x_fe_refresh_state()
55 st->snr = buf[0]; vp702x_fe_refresh_state()
57 vp702x_usb_in_op(st->d, READ_TUNER_REG_REQ, 0x15, 0, buf, 1); vp702x_fe_refresh_state()
58 st->sig = buf[0]; vp702x_fe_refresh_state()
61 st->next_status_check = jiffies + (st->status_check_interval*HZ)/1000; vp702x_fe_refresh_state()
77 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_read_status() local
78 vp702x_fe_refresh_state(st); vp702x_fe_read_status()
81 if (st->lock == 0) vp702x_fe_read_status()
87 st->status_check_interval = 1000; vp702x_fe_read_status()
89 st->status_check_interval = 250; vp702x_fe_read_status()
96 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_read_ber() local
97 vp702x_fe_refresh_state(st); vp702x_fe_read_ber()
105 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_read_unc_blocks() local
106 vp702x_fe_refresh_state(st); vp702x_fe_read_unc_blocks()
113 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_read_signal_strength() local
114 vp702x_fe_refresh_state(st); vp702x_fe_read_signal_strength()
116 *strength = (st->sig << 8) | st->sig; vp702x_fe_read_signal_strength()
123 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_read_snr() local
124 vp702x_fe_refresh_state(st); vp702x_fe_read_snr()
126 _snr = (st->snr & 0x1f) * 0xff / 0x1f; vp702x_fe_read_snr()
141 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_set_frontend() local
142 struct vp702x_device_state *dst = st->d->priv; vp702x_fe_set_frontend()
171 if (st->voltage == SEC_VOLTAGE_18) vp702x_fe_set_frontend()
180 if (st->tone_mode == SEC_TONE_ON) vp702x_fe_set_frontend()
185 st->status_check_interval = 250; vp702x_fe_set_frontend()
186 st->next_status_check = jiffies; vp702x_fe_set_frontend()
188 vp702x_usb_inout_op(st->d, cmd, 8, cmd, 10, 100); vp702x_fe_set_frontend()
202 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_init() local
204 vp702x_usb_in_op(st->d, RESET_TUNER, 0, 0, NULL, 0); vp702x_fe_init()
218 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_send_diseqc_msg() local
219 struct vp702x_device_state *dst = st->d->priv; vp702x_fe_send_diseqc_msg()
234 vp702x_usb_inout_op(st->d, cmd, 8, cmd, 10, 100); vp702x_fe_send_diseqc_msg()
254 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_set_tone() local
255 struct vp702x_device_state *dst = st->d->priv; vp702x_fe_set_tone()
260 st->tone_mode = tone; vp702x_fe_set_tone()
263 st->lnb_buf[2] = 0x02; vp702x_fe_set_tone()
265 st->lnb_buf[2] = 0x00; vp702x_fe_set_tone()
267 st->lnb_buf[7] = vp702x_chksum(st->lnb_buf, 0, 7); vp702x_fe_set_tone()
272 memcpy(buf, st->lnb_buf, 8); vp702x_fe_set_tone()
274 vp702x_usb_inout_op(st->d, buf, 8, buf, 10, 100); vp702x_fe_set_tone()
288 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_set_voltage() local
289 struct vp702x_device_state *dst = st->d->priv; vp702x_fe_set_voltage()
293 st->voltage = voltage; vp702x_fe_set_voltage()
296 st->lnb_buf[4] = 0x01; vp702x_fe_set_voltage()
298 st->lnb_buf[4] = 0x00; vp702x_fe_set_voltage()
300 st->lnb_buf[7] = vp702x_chksum(st->lnb_buf, 0, 7); vp702x_fe_set_voltage()
305 memcpy(buf, st->lnb_buf, 8); vp702x_fe_set_voltage()
307 vp702x_usb_inout_op(st->d, buf, 8, buf, 10, 100); vp702x_fe_set_voltage()
319 struct vp702x_fe_state *st = fe->demodulator_priv; vp702x_fe_release() local
320 kfree(st); vp702x_fe_release()
H A Ddib0700_core.c30 struct dib0700_state *st = d->priv; dib0700_get_version() local
41 st->buf, 16, USB_CTRL_GET_TIMEOUT); dib0700_get_version()
43 *hwversion = (st->buf[0] << 24) | (st->buf[1] << 16) | dib0700_get_version()
44 (st->buf[2] << 8) | st->buf[3]; dib0700_get_version()
46 *romversion = (st->buf[4] << 24) | (st->buf[5] << 16) | dib0700_get_version()
47 (st->buf[6] << 8) | st->buf[7]; dib0700_get_version()
49 *ramversion = (st->buf[8] << 24) | (st->buf[9] << 16) | dib0700_get_version()
50 (st->buf[10] << 8) | st->buf[11]; dib0700_get_version()
52 *fwtype = (st->buf[12] << 24) | (st->buf[13] << 16) | dib0700_get_version()
53 (st->buf[14] << 8) | st->buf[15]; dib0700_get_version()
116 struct dib0700_state *st = d->priv; dib0700_set_gpio() local
124 st->buf[0] = REQUEST_SET_GPIO; dib0700_set_gpio()
125 st->buf[1] = gpio; dib0700_set_gpio()
126 st->buf[2] = ((gpio_dir & 0x01) << 7) | ((gpio_val & 0x01) << 6); dib0700_set_gpio()
128 ret = dib0700_ctrl_wr(d, st->buf, 3); dib0700_set_gpio()
136 struct dib0700_state *st = d->priv; dib0700_set_usb_xfer_len() local
139 if (st->fw_version >= 0x10201) { dib0700_set_usb_xfer_len()
145 st->buf[0] = REQUEST_SET_USB_XFER_LEN; dib0700_set_usb_xfer_len()
146 st->buf[1] = (nb_ts_packets >> 8) & 0xff; dib0700_set_usb_xfer_len()
147 st->buf[2] = nb_ts_packets & 0xff; dib0700_set_usb_xfer_len()
151 ret = dib0700_ctrl_wr(d, st->buf, 3); dib0700_set_usb_xfer_len()
171 struct dib0700_state *st = d->priv; dib0700_i2c_xfer_new() local
234 st->buf[0] = REQUEST_NEW_I2C_WRITE; dib0700_i2c_xfer_new()
235 st->buf[1] = msg[i].addr << 1; dib0700_i2c_xfer_new()
236 st->buf[2] = (en_start << 7) | (en_stop << 6) | dib0700_i2c_xfer_new()
239 st->buf[3] = ((gen_mode << 6) & 0xC0) | dib0700_i2c_xfer_new()
242 memcpy(&st->buf[4], msg[i].buf, msg[i].len); dib0700_i2c_xfer_new()
245 debug_dump(st->buf, msg[i].len + 4, deb_data); dib0700_i2c_xfer_new()
251 0, 0, st->buf, msg[i].len + 4, dib0700_i2c_xfer_new()
271 struct dib0700_state *st = d->priv; dib0700_i2c_xfer_legacy() local
284 st->buf[1] = msg[i].addr << 1; dib0700_i2c_xfer_legacy()
286 memcpy(&st->buf[2], msg[i].buf, msg[i].len); dib0700_i2c_xfer_legacy()
290 st->buf[0] = REQUEST_I2C_READ; dib0700_i2c_xfer_legacy()
291 st->buf[1] |= 1; dib0700_i2c_xfer_legacy()
294 len = dib0700_ctrl_rd(d, st->buf, msg[i].len + 2, dib0700_i2c_xfer_legacy()
306 st->buf[0] = REQUEST_I2C_WRITE; dib0700_i2c_xfer_legacy()
307 if (dib0700_ctrl_wr(d, st->buf, msg[i].len + 2) < 0) dib0700_i2c_xfer_legacy()
321 struct dib0700_state *st = d->priv; dib0700_i2c_xfer() local
323 if (st->fw_use_new_i2c_api == 1) { dib0700_i2c_xfer()
369 struct dib0700_state *st = d->priv; dib0700_set_clock() local
377 st->buf[0] = REQUEST_SET_CLOCK; dib0700_set_clock()
378 st->buf[1] = (en_pll << 7) | (pll_src << 6) | dib0700_set_clock()
380 st->buf[2] = (pll_prediv >> 8) & 0xff; /* MSB */ dib0700_set_clock()
381 st->buf[3] = pll_prediv & 0xff; /* LSB */ dib0700_set_clock()
382 st->buf[4] = (pll_loopdiv >> 8) & 0xff; /* MSB */ dib0700_set_clock()
383 st->buf[5] = pll_loopdiv & 0xff; /* LSB */ dib0700_set_clock()
384 st->buf[6] = (free_div >> 8) & 0xff; /* MSB */ dib0700_set_clock()
385 st->buf[7] = free_div & 0xff; /* LSB */ dib0700_set_clock()
386 st->buf[8] = (dsuScaler >> 8) & 0xff; /* MSB */ dib0700_set_clock()
387 st->buf[9] = dsuScaler & 0xff; /* LSB */ dib0700_set_clock()
389 ret = dib0700_ctrl_wr(d, st->buf, 10); dib0700_set_clock()
397 struct dib0700_state *st = d->priv; dib0700_set_i2c_speed() local
409 st->buf[0] = REQUEST_SET_I2C_PARAM; dib0700_set_i2c_speed()
411 st->buf[1] = 0; dib0700_set_i2c_speed()
412 st->buf[2] = (u8) (divider >> 8); dib0700_set_i2c_speed()
413 st->buf[3] = (u8) (divider & 0xff); dib0700_set_i2c_speed()
415 st->buf[4] = (u8) (divider >> 8); dib0700_set_i2c_speed()
416 st->buf[5] = (u8) (divider & 0xff); dib0700_set_i2c_speed()
418 st->buf[6] = (u8) (divider >> 8); dib0700_set_i2c_speed()
419 st->buf[7] = (u8) (divider & 0xff); dib0700_set_i2c_speed()
422 (st->buf[2] << 8) | (st->buf[3]), (st->buf[4] << 8) | dib0700_set_i2c_speed()
423 st->buf[5], (st->buf[6] << 8) | st->buf[7], scl_kHz); dib0700_set_i2c_speed()
425 ret = dib0700_ctrl_wr(d, st->buf, 8); dib0700_set_i2c_speed()
550 struct dib0700_state *st = adap->dev->priv; dib0700_streaming_ctrl() local
553 if ((onoff != 0) && (st->fw_version >= 0x10201)) { dib0700_streaming_ctrl()
557 st->nb_packet_buffer_size); dib0700_streaming_ctrl()
566 st->buf[0] = REQUEST_ENABLE_VIDEO; dib0700_streaming_ctrl()
569 st->buf[1] = (onoff << 4) | 0x00; dib0700_streaming_ctrl()
571 if (st->disable_streaming_master_mode == 1) dib0700_streaming_ctrl()
572 st->buf[2] = 0x00; dib0700_streaming_ctrl()
574 st->buf[2] = 0x01 << 4; /* Master mode */ dib0700_streaming_ctrl()
576 st->buf[3] = 0x00; dib0700_streaming_ctrl()
580 st->channel_state &= ~0x3; dib0700_streaming_ctrl()
585 st->channel_state |= 1 << (adap->id); dib0700_streaming_ctrl()
587 st->channel_state |= 1 << ~(adap->id); dib0700_streaming_ctrl()
590 st->channel_state |= 1 << (adap->fe_adap[0].stream.props.endpoint-2); dib0700_streaming_ctrl()
592 st->channel_state |= 1 << (3-adap->fe_adap[0].stream.props.endpoint); dib0700_streaming_ctrl()
595 st->buf[2] |= st->channel_state; dib0700_streaming_ctrl()
597 deb_info("data for streaming: %x %x\n", st->buf[1], st->buf[2]); dib0700_streaming_ctrl()
599 ret = dib0700_ctrl_wr(adap->dev, st->buf, 4); dib0700_streaming_ctrl()
608 struct dib0700_state *st = d->priv; dib0700_change_protocol() local
616 st->buf[0] = REQUEST_SET_RC; dib0700_change_protocol()
617 st->buf[1] = 0; dib0700_change_protocol()
618 st->buf[2] = 0; dib0700_change_protocol()
628 if (st->fw_version < 0x10200) { dib0700_change_protocol()
639 st->buf[1] = new_proto; dib0700_change_protocol()
641 ret = dib0700_ctrl_wr(d, st->buf, 3); dib0700_change_protocol()
773 struct dib0700_state *st = d->priv; dib0700_rc_setup() local
780 if (st->fw_version < 0x10200 || !intf) dib0700_rc_setup()
848 struct dib0700_state *st = dev->priv; dib0700_probe() local
857 st->fw_version = fw_version; dib0700_probe()
858 st->nb_packet_buffer_size = (u32)nb_packet_buffer_size; dib0700_probe()
861 if (st->fw_version >= 0x10200) dib0700_probe()
H A Dvp702x.c119 struct vp702x_device_state *st = d->priv; vp702x_usb_inout_cmd() local
124 ret = mutex_lock_interruptible(&st->buf_mutex); vp702x_usb_inout_cmd()
128 if (buflen > st->buf_len) { vp702x_usb_inout_cmd()
131 mutex_unlock(&st->buf_mutex); vp702x_usb_inout_cmd()
135 kfree(st->buf); vp702x_usb_inout_cmd()
136 st->buf = buf; vp702x_usb_inout_cmd()
137 st->buf_len = buflen; vp702x_usb_inout_cmd()
139 buf = st->buf; vp702x_usb_inout_cmd()
150 mutex_unlock(&st->buf_mutex); vp702x_usb_inout_cmd()
158 struct vp702x_device_state *st = adap->dev->priv; vp702x_set_pld_mode() local
161 mutex_lock(&st->buf_mutex); vp702x_set_pld_mode()
163 buf = st->buf; vp702x_set_pld_mode()
168 mutex_unlock(&st->buf_mutex); vp702x_set_pld_mode()
175 struct vp702x_device_state *st = adap->dev->priv; vp702x_set_pld_state() local
178 mutex_lock(&st->buf_mutex); vp702x_set_pld_state()
180 buf = st->buf; vp702x_set_pld_state()
185 mutex_unlock(&st->buf_mutex); vp702x_set_pld_state()
192 struct vp702x_adapter_state *st = adap->priv; vp702x_set_pid() local
197 st->pid_filter_state |= (1 << id); vp702x_set_pid()
199 st->pid_filter_state &= ~(1 << id); vp702x_set_pid()
205 vp702x_set_pld_state(adap, st->pid_filter_state); vp702x_set_pid()
222 struct vp702x_adapter_state *st = adap->priv; vp702x_init_pid_filter() local
227 st->pid_filter_count = 8; vp702x_init_pid_filter()
228 st->pid_filter_can_bypass = 1; vp702x_init_pid_filter()
229 st->pid_filter_state = 0x00; vp702x_init_pid_filter()
233 for (i = 0; i < st->pid_filter_count; i++) vp702x_init_pid_filter()
296 struct vp702x_device_state *st = d->priv; vp702x_read_mac_addr() local
298 mutex_lock(&st->buf_mutex); vp702x_read_mac_addr()
299 buf = st->buf; vp702x_read_mac_addr()
304 mutex_unlock(&st->buf_mutex); vp702x_read_mac_addr()
335 struct vp702x_device_state *st; vp702x_usb_probe() local
343 st = d->priv; vp702x_usb_probe()
344 st->buf_len = 16; vp702x_usb_probe()
345 st->buf = kmalloc(st->buf_len, GFP_KERNEL); vp702x_usb_probe()
346 if (!st->buf) { vp702x_usb_probe()
351 mutex_init(&st->buf_mutex); vp702x_usb_probe()
361 struct vp702x_device_state *st = d->priv; vp702x_usb_disconnect() local
362 mutex_lock(&st->buf_mutex); vp702x_usb_disconnect()
363 kfree(st->buf); vp702x_usb_disconnect()
364 mutex_unlock(&st->buf_mutex); vp702x_usb_disconnect()
H A Dgp8psk-fe.c30 struct gp8psk_fe_state *st = fe->demodulator_priv; gp8psk_tuned_to_DCII() local
32 gp8psk_usb_in_op(st->d, GET_8PSK_CONFIG, 0, 0, &status, 1); gp8psk_tuned_to_DCII()
42 static int gp8psk_fe_update_status(struct gp8psk_fe_state *st) gp8psk_fe_update_status() argument
45 if (time_after(jiffies,st->next_status_check)) { gp8psk_fe_update_status()
46 gp8psk_usb_in_op(st->d, GET_SIGNAL_LOCK, 0,0,&st->lock,1); gp8psk_fe_update_status()
47 gp8psk_usb_in_op(st->d, GET_SIGNAL_STRENGTH, 0,0,buf,6); gp8psk_fe_update_status()
48 st->snr = (buf[1]) << 8 | buf[0]; gp8psk_fe_update_status()
49 st->next_status_check = jiffies + (st->status_check_interval*HZ)/1000; gp8psk_fe_update_status()
56 struct gp8psk_fe_state *st = fe->demodulator_priv; gp8psk_fe_read_status() local
57 gp8psk_fe_update_status(st); gp8psk_fe_read_status()
59 if (st->lock) gp8psk_fe_read_status()
65 st->status_check_interval = 1000; gp8psk_fe_read_status()
67 st->status_check_interval = 100; gp8psk_fe_read_status()
89 struct gp8psk_fe_state *st = fe->demodulator_priv; gp8psk_fe_read_snr() local
90 gp8psk_fe_update_status(st); gp8psk_fe_read_snr()
92 *snr = st->snr; gp8psk_fe_read_snr()
98 struct gp8psk_fe_state *st = fe->demodulator_priv; gp8psk_fe_read_signal_strength() local
99 gp8psk_fe_update_status(st); gp8psk_fe_read_signal_strength()
103 if (st->snr > 0xf00) gp8psk_fe_read_signal_strength()
106 *strength = (st->snr << 4) + st->snr; /* snr*17 */ gp8psk_fe_read_signal_strength()
228 struct gp8psk_fe_state *st = fe->demodulator_priv; gp8psk_fe_send_diseqc_msg() local
232 if (gp8psk_usb_out_op(st->d,SEND_DISEQC_COMMAND, m->msg[0], 0, gp8psk_fe_send_diseqc_msg()
242 struct gp8psk_fe_state *st = fe->demodulator_priv; gp8psk_fe_send_diseqc_burst() local
250 if (gp8psk_usb_out_op(st->d,SEND_DISEQC_COMMAND, cmd, 0, gp8psk_fe_send_diseqc_burst()
/linux-4.1.27/drivers/iio/accel/
H A Dst_accel_i2c.c6 * Denis Ciocca <denis.ciocca@st.com>
24 .compatible = "st,lis3lv02dl-accel",
28 .compatible = "st,lsm303dlh-accel",
32 .compatible = "st,lsm303dlhc-accel",
36 .compatible = "st,lis3dh-accel",
40 .compatible = "st,lsm330d-accel",
44 .compatible = "st,lsm330dl-accel",
48 .compatible = "st,lsm330dlc-accel",
52 .compatible = "st,lis331dlh-accel",
56 .compatible = "st,lsm303dl-accel",
60 .compatible = "st,lsm303dlm-accel",
64 .compatible = "st,lsm330-accel",
122 .name = "st-accel-i2c",
131 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
H A Dkxsd9.c71 struct kxsd9_state *st = iio_priv(indio_dev); kxsd9_write_scale() local
82 mutex_lock(&st->buf_lock); kxsd9_write_scale()
83 ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C)); kxsd9_write_scale()
86 st->tx[0] = KXSD9_WRITE(KXSD9_REG_CTRL_C); kxsd9_write_scale()
87 st->tx[1] = (ret & ~KXSD9_FS_MASK) | i; kxsd9_write_scale()
89 ret = spi_write(st->us, st->tx, 2); kxsd9_write_scale()
91 mutex_unlock(&st->buf_lock); kxsd9_write_scale()
98 struct kxsd9_state *st = iio_priv(indio_dev); kxsd9_read() local
104 .tx_buf = st->tx, kxsd9_read()
108 .rx_buf = st->rx, kxsd9_read()
112 mutex_lock(&st->buf_lock); kxsd9_read()
113 st->tx[0] = KXSD9_READ(address); kxsd9_read()
114 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); kxsd9_read()
116 ret = (((u16)(st->rx[0])) << 8) | (st->rx[1] & 0xF0); kxsd9_read()
117 mutex_unlock(&st->buf_lock); kxsd9_read()
155 struct kxsd9_state *st = iio_priv(indio_dev); kxsd9_read_raw() local
165 ret = spi_w8r8(st->us, KXSD9_READ(KXSD9_REG_CTRL_C)); kxsd9_read_raw()
200 static int kxsd9_power_up(struct kxsd9_state *st) kxsd9_power_up() argument
204 st->tx[0] = 0x0d; kxsd9_power_up()
205 st->tx[1] = 0x40; kxsd9_power_up()
206 ret = spi_write(st->us, st->tx, 2); kxsd9_power_up()
210 st->tx[0] = 0x0c; kxsd9_power_up()
211 st->tx[1] = 0x9b; kxsd9_power_up()
212 return spi_write(st->us, st->tx, 2); kxsd9_power_up()
225 struct kxsd9_state *st; kxsd9_probe() local
227 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); kxsd9_probe()
231 st = iio_priv(indio_dev); kxsd9_probe()
234 st->us = spi; kxsd9_probe()
235 mutex_init(&st->buf_lock); kxsd9_probe()
245 kxsd9_power_up(st); kxsd9_probe()
H A Dst_accel_spi.c6 * Denis Ciocca <denis.ciocca@st.com>
67 .name = "st-accel-spi",
75 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
/linux-4.1.27/drivers/iio/pressure/
H A Dms5611_i2c.c25 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_i2c_reset() local
27 return i2c_smbus_write_byte(st->client, MS5611_RESET); ms5611_i2c_reset()
33 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_i2c_read_prom_word() local
35 ret = i2c_smbus_read_word_swapped(st->client, ms5611_i2c_read_prom_word()
45 static int ms5611_i2c_read_adc(struct ms5611_state *st, s32 *val) ms5611_i2c_read_adc() argument
50 ret = i2c_smbus_read_i2c_block_data(st->client, MS5611_READ_ADC, ms5611_i2c_read_adc()
64 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_i2c_read_adc_temp_and_pressure() local
66 ret = i2c_smbus_write_byte(st->client, MS5611_START_TEMP_CONV); ms5611_i2c_read_adc_temp_and_pressure()
72 ret = ms5611_i2c_read_adc(st, temp); ms5611_i2c_read_adc_temp_and_pressure()
76 ret = i2c_smbus_write_byte(st->client, MS5611_START_PRESSURE_CONV); ms5611_i2c_read_adc_temp_and_pressure()
82 return ms5611_i2c_read_adc(st, pressure); ms5611_i2c_read_adc_temp_and_pressure()
88 struct ms5611_state *st; ms5611_i2c_probe() local
97 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); ms5611_i2c_probe()
101 st = iio_priv(indio_dev); ms5611_i2c_probe()
102 st->reset = ms5611_i2c_reset; ms5611_i2c_probe()
103 st->read_prom_word = ms5611_i2c_read_prom_word; ms5611_i2c_probe()
104 st->read_adc_temp_and_pressure = ms5611_i2c_read_adc_temp_and_pressure; ms5611_i2c_probe()
105 st->client = client; ms5611_i2c_probe()
H A Dms5611_spi.c21 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_spi_reset() local
23 return spi_write_then_read(st->client, &cmd, 1, NULL, 0); ms5611_spi_reset()
29 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_spi_read_prom_word() local
31 ret = spi_w8r16be(st->client, MS5611_READ_PROM_WORD + (index << 1)); ms5611_spi_read_prom_word()
44 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_spi_read_adc() local
46 ret = spi_write_then_read(st->client, buf, 1, buf, 3); ms5611_spi_read_adc()
60 struct ms5611_state *st = iio_priv(dev_to_iio_dev(dev)); ms5611_spi_read_adc_temp_and_pressure() local
63 ret = spi_write_then_read(st->client, &cmd, 1, NULL, 0); ms5611_spi_read_adc_temp_and_pressure()
74 ret = spi_write_then_read(st->client, &cmd, 1, NULL, 0); ms5611_spi_read_adc_temp_and_pressure()
86 struct ms5611_state *st; ms5611_spi_probe() local
89 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ms5611_spi_probe()
100 st = iio_priv(indio_dev); ms5611_spi_probe()
101 st->reset = ms5611_spi_reset; ms5611_spi_probe()
102 st->read_prom_word = ms5611_spi_read_prom_word; ms5611_spi_probe()
103 st->read_adc_temp_and_pressure = ms5611_spi_read_adc_temp_and_pressure; ms5611_spi_probe()
104 st->client = spi; ms5611_spi_probe()
H A Dms5611_core.c50 struct ms5611_state *st = iio_priv(indio_dev); ms5611_read_prom() local
53 ret = st->read_prom_word(&indio_dev->dev, i, &st->prom[i]); ms5611_read_prom()
61 if (!ms5611_prom_is_valid(st->prom, MS5611_PROM_WORDS_NB)) { ms5611_read_prom()
75 struct ms5611_state *st = iio_priv(indio_dev); ms5611_read_temp_and_pressure() local
77 ret = st->read_adc_temp_and_pressure(&indio_dev->dev, &t, &p); ms5611_read_temp_and_pressure()
84 dt = t - (st->prom[5] << 8); ms5611_read_temp_and_pressure()
85 off = ((s64)st->prom[2] << 16) + ((st->prom[4] * dt) >> 7); ms5611_read_temp_and_pressure()
86 sens = ((s64)st->prom[1] << 15) + ((st->prom[3] * dt) >> 8); ms5611_read_temp_and_pressure()
88 t = 2000 + ((st->prom[6] * dt) >> 23); ms5611_read_temp_and_pressure()
117 struct ms5611_state *st = iio_priv(indio_dev); ms5611_reset() local
119 ret = st->reset(&indio_dev->dev); ms5611_reset()
136 struct ms5611_state *st = iio_priv(indio_dev); ms5611_read_raw() local
140 mutex_lock(&st->lock); ms5611_read_raw()
143 mutex_unlock(&st->lock); ms5611_read_raw()
195 struct ms5611_state *st = iio_priv(indio_dev); ms5611_probe() local
197 mutex_init(&st->lock); ms5611_probe()
H A Dst_pressure_i2c.c6 * Denis Ciocca <denis.ciocca@st.com>
24 .compatible = "st,lps001wp-press",
28 .compatible = "st,lps25h-press",
32 .compatible = "st,lps331ap-press",
83 .name = "st-press-i2c",
92 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
H A Dst_pressure_spi.c6 * Denis Ciocca <denis.ciocca@st.com>
60 .name = "st-press-spi",
68 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
/linux-4.1.27/arch/arm/mach-sti/
H A Dboard-dt.c3 * Author(s): Srinivas Kandagatla <srinivas.kandagatla@st.com>
18 "st,stih415",
19 "st,stih416",
20 "st,stih407",
21 "st,stih410",
22 "st,stih418",
H A Dsmp.h5 * http://www.st.com
/linux-4.1.27/drivers/iio/dac/
H A Dad5791.c111 static int ad5791_spi_write(struct ad5791_state *st, u8 addr, u32 val) ad5791_spi_write() argument
113 st->data[0].d32 = cpu_to_be32(AD5791_CMD_WRITE | ad5791_spi_write()
117 return spi_write(st->spi, &st->data[0].d8[1], 3); ad5791_spi_write()
120 static int ad5791_spi_read(struct ad5791_state *st, u8 addr, u32 *val) ad5791_spi_read() argument
125 .tx_buf = &st->data[0].d8[1], ad5791_spi_read()
130 .tx_buf = &st->data[1].d8[1], ad5791_spi_read()
131 .rx_buf = &st->data[2].d8[1], ad5791_spi_read()
137 st->data[0].d32 = cpu_to_be32(AD5791_CMD_READ | ad5791_spi_read()
139 st->data[1].d32 = cpu_to_be32(AD5791_ADDR(AD5791_ADDR_NOOP)); ad5791_spi_read()
141 ret = spi_sync_transfer(st->spi, xfers, ARRAY_SIZE(xfers)); ad5791_spi_read()
143 *val = be32_to_cpu(st->data[2].d32); ad5791_spi_read()
156 struct ad5791_state *st = iio_priv(indio_dev); ad5791_get_powerdown_mode() local
158 return st->pwr_down_mode; ad5791_get_powerdown_mode()
164 struct ad5791_state *st = iio_priv(indio_dev); ad5791_set_powerdown_mode() local
166 st->pwr_down_mode = mode; ad5791_set_powerdown_mode()
181 struct ad5791_state *st = iio_priv(indio_dev); ad5791_read_dac_powerdown() local
183 return sprintf(buf, "%d\n", st->pwr_down); ad5791_read_dac_powerdown()
192 struct ad5791_state *st = iio_priv(indio_dev); ad5791_write_dac_powerdown() local
199 st->ctrl &= ~(AD5791_CTRL_OPGND | AD5791_CTRL_DACTRI); ad5791_write_dac_powerdown()
201 if (st->pwr_down_mode == AD5791_DAC_PWRDN_6K) ad5791_write_dac_powerdown()
202 st->ctrl |= AD5791_CTRL_OPGND; ad5791_write_dac_powerdown()
203 else if (st->pwr_down_mode == AD5791_DAC_PWRDN_3STATE) ad5791_write_dac_powerdown()
204 st->ctrl |= AD5791_CTRL_DACTRI; ad5791_write_dac_powerdown()
206 st->pwr_down = pwr_down; ad5791_write_dac_powerdown()
208 ret = ad5791_spi_write(st, AD5791_ADDR_CTRL, st->ctrl); ad5791_write_dac_powerdown()
255 struct ad5791_state *st = iio_priv(indio_dev); ad5791_read_raw() local
261 ret = ad5791_spi_read(st, chan->address, val); ad5791_read_raw()
268 *val = st->vref_mv; ad5791_read_raw()
272 val64 = (((u64)st->vref_neg_mv) << chan->scan_type.realbits); ad5791_read_raw()
273 do_div(val64, st->vref_mv); ad5791_read_raw()
326 struct ad5791_state *st = iio_priv(indio_dev); ad5791_write_raw() local
333 return ad5791_spi_write(st, chan->address, val); ad5791_write_raw()
350 struct ad5791_state *st; ad5791_probe() local
353 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5791_probe()
356 st = iio_priv(indio_dev); ad5791_probe()
357 st->reg_vdd = devm_regulator_get(&spi->dev, "vdd"); ad5791_probe()
358 if (!IS_ERR(st->reg_vdd)) { ad5791_probe()
359 ret = regulator_enable(st->reg_vdd); ad5791_probe()
363 ret = regulator_get_voltage(st->reg_vdd); ad5791_probe()
370 st->reg_vss = devm_regulator_get(&spi->dev, "vss"); ad5791_probe()
371 if (!IS_ERR(st->reg_vss)) { ad5791_probe()
372 ret = regulator_enable(st->reg_vss); ad5791_probe()
376 ret = regulator_get_voltage(st->reg_vss); ad5791_probe()
383 st->pwr_down = true; ad5791_probe()
384 st->spi = spi; ad5791_probe()
386 if (!IS_ERR(st->reg_vss) && !IS_ERR(st->reg_vdd)) { ad5791_probe()
387 st->vref_mv = (pos_voltage_uv + neg_voltage_uv) / 1000; ad5791_probe()
388 st->vref_neg_mv = neg_voltage_uv / 1000; ad5791_probe()
390 st->vref_mv = pdata->vref_pos_mv + pdata->vref_neg_mv; ad5791_probe()
391 st->vref_neg_mv = pdata->vref_neg_mv; ad5791_probe()
396 ret = ad5791_spi_write(st, AD5791_ADDR_SW_CTRL, AD5791_SWCTRL_RESET); ad5791_probe()
400 st->chip_info = &ad5791_chip_info_tbl[spi_get_device_id(spi) ad5791_probe()
404 st->ctrl = AD5761_CTRL_LINCOMP(st->chip_info->get_lin_comp(st->vref_mv)) ad5791_probe()
408 ret = ad5791_spi_write(st, AD5791_ADDR_CTRL, st->ctrl | ad5791_probe()
420 indio_dev->name = spi_get_device_id(st->spi)->name; ad5791_probe()
428 if (!IS_ERR(st->reg_vss)) ad5791_probe()
429 regulator_disable(st->reg_vss); ad5791_probe()
431 if (!IS_ERR(st->reg_vdd)) ad5791_probe()
432 regulator_disable(st->reg_vdd); ad5791_probe()
439 struct ad5791_state *st = iio_priv(indio_dev); ad5791_remove() local
442 if (!IS_ERR(st->reg_vdd)) ad5791_remove()
443 regulator_disable(st->reg_vdd); ad5791_remove()
445 if (!IS_ERR(st->reg_vss)) ad5791_remove()
446 regulator_disable(st->reg_vss); ad5791_remove()
H A Dad5686.c95 static int ad5686_spi_write(struct ad5686_state *st, ad5686_spi_write() argument
100 st->data[0].d32 = cpu_to_be32(AD5686_CMD(cmd) | ad5686_spi_write()
104 return spi_write(st->spi, &st->data[0].d8[1], 3); ad5686_spi_write()
107 static int ad5686_spi_read(struct ad5686_state *st, u8 addr) ad5686_spi_read() argument
111 .tx_buf = &st->data[0].d8[1], ad5686_spi_read()
115 .tx_buf = &st->data[1].d8[1], ad5686_spi_read()
116 .rx_buf = &st->data[2].d8[1], ad5686_spi_read()
122 st->data[0].d32 = cpu_to_be32(AD5686_CMD(AD5686_CMD_READBACK_ENABLE) | ad5686_spi_read()
124 st->data[1].d32 = cpu_to_be32(AD5686_CMD(AD5686_CMD_NOOP)); ad5686_spi_read()
126 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad5686_spi_read()
130 return be32_to_cpu(st->data[2].d32); ad5686_spi_read()
142 struct ad5686_state *st = iio_priv(indio_dev); ad5686_get_powerdown_mode() local
144 return ((st->pwr_down_mode >> (chan->channel * 2)) & 0x3) - 1; ad5686_get_powerdown_mode()
150 struct ad5686_state *st = iio_priv(indio_dev); ad5686_set_powerdown_mode() local
152 st->pwr_down_mode &= ~(0x3 << (chan->channel * 2)); ad5686_set_powerdown_mode()
153 st->pwr_down_mode |= ((mode + 1) << (chan->channel * 2)); ad5686_set_powerdown_mode()
168 struct ad5686_state *st = iio_priv(indio_dev); ad5686_read_dac_powerdown() local
170 return sprintf(buf, "%d\n", !!(st->pwr_down_mask & ad5686_read_dac_powerdown()
180 struct ad5686_state *st = iio_priv(indio_dev); ad5686_write_dac_powerdown() local
187 st->pwr_down_mask |= (0x3 << (chan->channel * 2)); ad5686_write_dac_powerdown()
189 st->pwr_down_mask &= ~(0x3 << (chan->channel * 2)); ad5686_write_dac_powerdown()
191 ret = ad5686_spi_write(st, AD5686_CMD_POWERDOWN_DAC, 0, ad5686_write_dac_powerdown()
192 st->pwr_down_mask & st->pwr_down_mode, 0); ad5686_write_dac_powerdown()
203 struct ad5686_state *st = iio_priv(indio_dev); ad5686_read_raw() local
209 ret = ad5686_spi_read(st, chan->address); ad5686_read_raw()
216 *val = st->vref_mv; ad5686_read_raw()
229 struct ad5686_state *st = iio_priv(indio_dev); ad5686_write_raw() local
238 ret = ad5686_spi_write(st, ad5686_write_raw()
314 struct ad5686_state *st; ad5686_probe() local
318 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5686_probe()
322 st = iio_priv(indio_dev); ad5686_probe()
325 st->reg = devm_regulator_get_optional(&spi->dev, "vcc"); ad5686_probe()
326 if (!IS_ERR(st->reg)) { ad5686_probe()
327 ret = regulator_enable(st->reg); ad5686_probe()
331 ret = regulator_get_voltage(st->reg); ad5686_probe()
338 st->chip_info = ad5686_probe()
342 st->vref_mv = voltage_uv / 1000; ad5686_probe()
344 st->vref_mv = st->chip_info->int_vref_mv; ad5686_probe()
346 st->spi = spi; ad5686_probe()
349 st->pwr_down_mode = 0x55; ad5686_probe()
355 indio_dev->channels = st->chip_info->channel; ad5686_probe()
358 ret = ad5686_spi_write(st, AD5686_CMD_INTERNAL_REFER_SETUP, 0, ad5686_probe()
370 if (!IS_ERR(st->reg)) ad5686_probe()
371 regulator_disable(st->reg); ad5686_probe()
378 struct ad5686_state *st = iio_priv(indio_dev); ad5686_remove() local
381 if (!IS_ERR(st->reg)) ad5686_remove()
382 regulator_disable(st->reg); ad5686_remove()
H A Dad7303.c52 static int ad7303_write(struct ad7303_state *st, unsigned int chan, ad7303_write() argument
55 st->data = cpu_to_be16(AD7303_CMD_UPDATE_DAC | ad7303_write()
57 st->config | val); ad7303_write()
59 return spi_write(st->spi, &st->data, sizeof(st->data)); ad7303_write()
65 struct ad7303_state *st = iio_priv(indio_dev); ad7303_read_dac_powerdown() local
67 return sprintf(buf, "%d\n", (bool)(st->config & ad7303_read_dac_powerdown()
75 struct ad7303_state *st = iio_priv(indio_dev); ad7303_write_dac_powerdown() local
86 st->config |= AD7303_CFG_POWER_DOWN(chan->channel); ad7303_write_dac_powerdown()
88 st->config &= ~AD7303_CFG_POWER_DOWN(chan->channel); ad7303_write_dac_powerdown()
92 ad7303_write(st, chan->channel, st->dac_cache[chan->channel]); ad7303_write_dac_powerdown()
98 static int ad7303_get_vref(struct ad7303_state *st, ad7303_get_vref() argument
103 if (st->config & AD7303_CFG_EXTERNAL_VREF) ad7303_get_vref()
104 return regulator_get_voltage(st->vref_reg); ad7303_get_vref()
106 ret = regulator_get_voltage(st->vdd_reg); ad7303_get_vref()
115 struct ad7303_state *st = iio_priv(indio_dev); ad7303_read_raw() local
120 *val = st->dac_cache[chan->channel]; ad7303_read_raw()
123 vref_uv = ad7303_get_vref(st, chan); ad7303_read_raw()
140 struct ad7303_state *st = iio_priv(indio_dev); ad7303_write_raw() local
149 ret = ad7303_write(st, chan->address, val); ad7303_write_raw()
151 st->dac_cache[chan->channel] = val; ad7303_write_raw()
203 struct ad7303_state *st; ad7303_probe() local
207 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad7303_probe()
211 st = iio_priv(indio_dev); ad7303_probe()
214 st->spi = spi; ad7303_probe()
216 st->vdd_reg = devm_regulator_get(&spi->dev, "Vdd"); ad7303_probe()
217 if (IS_ERR(st->vdd_reg)) ad7303_probe()
218 return PTR_ERR(st->vdd_reg); ad7303_probe()
220 ret = regulator_enable(st->vdd_reg); ad7303_probe()
236 st->vref_reg = devm_regulator_get(&spi->dev, "REF"); ad7303_probe()
237 if (IS_ERR(st->vref_reg)) { ad7303_probe()
238 ret = PTR_ERR(st->vref_reg); ad7303_probe()
242 ret = regulator_enable(st->vref_reg); ad7303_probe()
246 st->config |= AD7303_CFG_EXTERNAL_VREF; ad7303_probe()
263 if (st->vref_reg) ad7303_probe()
264 regulator_disable(st->vref_reg); ad7303_probe()
266 regulator_disable(st->vdd_reg); ad7303_probe()
273 struct ad7303_state *st = iio_priv(indio_dev); ad7303_remove() local
277 if (st->vref_reg) ad7303_remove()
278 regulator_disable(st->vref_reg); ad7303_remove()
279 regulator_disable(st->vdd_reg); ad7303_remove()
H A Dad5449.c88 struct ad5449 *st = iio_priv(indio_dev); ad5449_write() local
92 st->data[0] = cpu_to_be16((addr << 12) | val); ad5449_write()
93 ret = spi_write(st->spi, st->data, 2); ad5449_write()
102 struct ad5449 *st = iio_priv(indio_dev); ad5449_read() local
106 .tx_buf = &st->data[0], ad5449_read()
110 .tx_buf = &st->data[1], ad5449_read()
111 .rx_buf = &st->data[1], ad5449_read()
117 st->data[0] = cpu_to_be16(addr << 12); ad5449_read()
118 st->data[1] = cpu_to_be16(AD5449_CMD_NOOP); ad5449_read()
120 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad5449_read()
124 *val = be16_to_cpu(st->data[1]); ad5449_read()
134 struct ad5449 *st = iio_priv(indio_dev); ad5449_read_raw() local
141 if (st->has_sdo) { ad5449_read_raw()
148 *val = st->dac_cache[chan->address]; ad5449_read_raw()
153 reg = &st->vref_reg[chan->channel]; ad5449_read_raw()
172 struct ad5449 *st = iio_priv(indio_dev); ad5449_write_raw() local
184 st->dac_cache[chan->address] = val; ad5449_write_raw()
258 static const char *ad5449_vref_name(struct ad5449 *st, int n) ad5449_vref_name() argument
260 if (st->chip_info->num_channels == 1) ad5449_vref_name()
274 struct ad5449 *st; ad5449_spi_probe() local
278 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5449_spi_probe()
282 st = iio_priv(indio_dev); ad5449_spi_probe()
285 st->chip_info = &ad5449_chip_info[id->driver_data]; ad5449_spi_probe()
286 st->spi = spi; ad5449_spi_probe()
288 for (i = 0; i < st->chip_info->num_channels; ++i) ad5449_spi_probe()
289 st->vref_reg[i].supply = ad5449_vref_name(st, i); ad5449_spi_probe()
291 ret = devm_regulator_bulk_get(&spi->dev, st->chip_info->num_channels, ad5449_spi_probe()
292 st->vref_reg); ad5449_spi_probe()
296 ret = regulator_bulk_enable(st->chip_info->num_channels, st->vref_reg); ad5449_spi_probe()
304 indio_dev->channels = st->chip_info->channels; ad5449_spi_probe()
305 indio_dev->num_channels = st->chip_info->num_channels; ad5449_spi_probe()
307 if (st->chip_info->has_ctrl) { ad5449_spi_probe()
313 st->has_sdo = pdata->sdo_mode != AD5449_SDO_DISABLED; ad5449_spi_probe()
315 st->has_sdo = true; ad5449_spi_probe()
327 regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg); ad5449_spi_probe()
335 struct ad5449 *st = iio_priv(indio_dev); ad5449_spi_remove() local
339 regulator_bulk_disable(st->chip_info->num_channels, st->vref_reg); ad5449_spi_remove()
H A Dad5504.c70 static int ad5504_spi_write(struct ad5504_state *st, u8 addr, u16 val) ad5504_spi_write() argument
72 st->data[0] = cpu_to_be16(AD5504_CMD_WRITE | AD5504_ADDR(addr) | ad5504_spi_write()
75 return spi_write(st->spi, &st->data[0], 2); ad5504_spi_write()
78 static int ad5504_spi_read(struct ad5504_state *st, u8 addr) ad5504_spi_read() argument
82 .tx_buf = &st->data[0], ad5504_spi_read()
83 .rx_buf = &st->data[1], ad5504_spi_read()
87 st->data[0] = cpu_to_be16(AD5504_CMD_READ | AD5504_ADDR(addr)); ad5504_spi_read()
88 ret = spi_sync_transfer(st->spi, &t, 1); ad5504_spi_read()
92 return be16_to_cpu(st->data[1]) & AD5504_RES_MASK; ad5504_spi_read()
101 struct ad5504_state *st = iio_priv(indio_dev); ad5504_read_raw() local
106 ret = ad5504_spi_read(st, chan->address); ad5504_read_raw()
114 *val = st->vref_mv; ad5504_read_raw()
127 struct ad5504_state *st = iio_priv(indio_dev); ad5504_write_raw() local
134 return ad5504_spi_write(st, chan->address, val); ad5504_write_raw()
148 struct ad5504_state *st = iio_priv(indio_dev); ad5504_get_powerdown_mode() local
150 return st->pwr_down_mode; ad5504_get_powerdown_mode()
156 struct ad5504_state *st = iio_priv(indio_dev); ad5504_set_powerdown_mode() local
158 st->pwr_down_mode = mode; ad5504_set_powerdown_mode()
173 struct ad5504_state *st = iio_priv(indio_dev); ad5504_read_dac_powerdown() local
176 !(st->pwr_down_mask & (1 << chan->channel))); ad5504_read_dac_powerdown()
185 struct ad5504_state *st = iio_priv(indio_dev); ad5504_write_dac_powerdown() local
192 st->pwr_down_mask |= (1 << chan->channel); ad5504_write_dac_powerdown()
194 st->pwr_down_mask &= ~(1 << chan->channel); ad5504_write_dac_powerdown()
196 ret = ad5504_spi_write(st, AD5504_ADDR_CTRL, ad5504_write_dac_powerdown()
197 AD5504_DAC_PWRDWN_MODE(st->pwr_down_mode) | ad5504_write_dac_powerdown()
198 AD5504_DAC_PWR(st->pwr_down_mask)); ad5504_write_dac_powerdown()
201 ad5504_spi_write(st, AD5504_ADDR_NOOP, 0); ad5504_write_dac_powerdown()
279 struct ad5504_state *st; ad5504_probe() local
283 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5504_probe()
300 st = iio_priv(indio_dev); ad5504_probe()
302 st->vref_mv = voltage_uv / 1000; ad5504_probe()
304 st->vref_mv = pdata->vref_mv; ad5504_probe()
308 st->reg = reg; ad5504_probe()
309 st->spi = spi; ad5504_probe()
311 indio_dev->name = spi_get_device_id(st->spi)->name; ad5504_probe()
313 if (spi_get_device_id(st->spi)->driver_data == ID_AD5501) ad5504_probe()
325 spi_get_device_id(st->spi)->name, ad5504_probe()
347 struct ad5504_state *st = iio_priv(indio_dev); ad5504_remove() local
351 if (!IS_ERR(st->reg)) ad5504_remove()
352 regulator_disable(st->reg); ad5504_remove()
H A Dad5064.c68 typedef int (*ad5064_write_func)(struct ad5064_state *st, unsigned int cmd,
124 static int ad5064_write(struct ad5064_state *st, unsigned int cmd, ad5064_write() argument
129 return st->write(st, cmd, addr, val); ad5064_write()
132 static int ad5064_sync_powerdown_mode(struct ad5064_state *st, ad5064_sync_powerdown_mode() argument
140 if (st->pwr_down[chan->channel]) ad5064_sync_powerdown_mode()
141 val |= st->pwr_down_mode[chan->channel] << 8; ad5064_sync_powerdown_mode()
143 ret = ad5064_write(st, AD5064_CMD_POWERDOWN_DAC, 0, val, 0); ad5064_sync_powerdown_mode()
157 struct ad5064_state *st = iio_priv(indio_dev); ad5064_get_powerdown_mode() local
159 return st->pwr_down_mode[chan->channel] - 1; ad5064_get_powerdown_mode()
165 struct ad5064_state *st = iio_priv(indio_dev); ad5064_set_powerdown_mode() local
169 st->pwr_down_mode[chan->channel] = mode + 1; ad5064_set_powerdown_mode()
171 ret = ad5064_sync_powerdown_mode(st, chan); ad5064_set_powerdown_mode()
187 struct ad5064_state *st = iio_priv(indio_dev); ad5064_read_dac_powerdown() local
189 return sprintf(buf, "%d\n", st->pwr_down[chan->channel]); ad5064_read_dac_powerdown()
196 struct ad5064_state *st = iio_priv(indio_dev); ad5064_write_dac_powerdown() local
205 st->pwr_down[chan->channel] = pwr_down; ad5064_write_dac_powerdown()
207 ret = ad5064_sync_powerdown_mode(st, chan); ad5064_write_dac_powerdown()
212 static int ad5064_get_vref(struct ad5064_state *st, ad5064_get_vref() argument
217 if (st->use_internal_vref) ad5064_get_vref()
218 return st->chip_info->internal_vref; ad5064_get_vref()
220 i = st->chip_info->shared_vref ? 0 : chan->channel; ad5064_get_vref()
221 return regulator_get_voltage(st->vref_reg[i].consumer); ad5064_get_vref()
230 struct ad5064_state *st = iio_priv(indio_dev); ad5064_read_raw() local
235 *val = st->dac_cache[chan->channel]; ad5064_read_raw()
238 scale_uv = ad5064_get_vref(st, chan); ad5064_read_raw()
254 struct ad5064_state *st = iio_priv(indio_dev); ad5064_write_raw() local
263 ret = ad5064_write(st, AD5064_CMD_WRITE_INPUT_N_UPDATE_N, ad5064_write_raw()
266 st->dac_cache[chan->channel] = val; ad5064_write_raw()
423 static inline unsigned int ad5064_num_vref(struct ad5064_state *st) ad5064_num_vref() argument
425 return st->chip_info->shared_vref ? 1 : st->chip_info->num_channels; ad5064_num_vref()
435 static const char * const ad5064_vref_name(struct ad5064_state *st, ad5064_vref_name() argument
438 return st->chip_info->shared_vref ? "vref" : ad5064_vref_names[vref]; ad5064_vref_name()
445 struct ad5064_state *st; ad5064_probe() local
450 indio_dev = devm_iio_device_alloc(dev, sizeof(*st)); ad5064_probe()
454 st = iio_priv(indio_dev); ad5064_probe()
457 st->chip_info = &ad5064_chip_info_tbl[type]; ad5064_probe()
458 st->dev = dev; ad5064_probe()
459 st->write = write; ad5064_probe()
461 for (i = 0; i < ad5064_num_vref(st); ++i) ad5064_probe()
462 st->vref_reg[i].supply = ad5064_vref_name(st, i); ad5064_probe()
464 ret = devm_regulator_bulk_get(dev, ad5064_num_vref(st), ad5064_probe()
465 st->vref_reg); ad5064_probe()
467 if (!st->chip_info->internal_vref) ad5064_probe()
469 st->use_internal_vref = true; ad5064_probe()
470 ret = ad5064_write(st, AD5064_CMD_CONFIG, 0, ad5064_probe()
478 ret = regulator_bulk_enable(ad5064_num_vref(st), st->vref_reg); ad5064_probe()
487 indio_dev->channels = st->chip_info->channels; ad5064_probe()
488 indio_dev->num_channels = st->chip_info->num_channels; ad5064_probe()
492 for (i = 0; i < st->chip_info->num_channels; ++i) { ad5064_probe()
493 st->pwr_down_mode[i] = AD5064_LDAC_PWRDN_1K; ad5064_probe()
494 st->dac_cache[i] = midscale; ad5064_probe()
504 if (!st->use_internal_vref) ad5064_probe()
505 regulator_bulk_disable(ad5064_num_vref(st), st->vref_reg); ad5064_probe()
513 struct ad5064_state *st = iio_priv(indio_dev); ad5064_remove() local
517 if (!st->use_internal_vref) ad5064_remove()
518 regulator_bulk_disable(ad5064_num_vref(st), st->vref_reg); ad5064_remove()
525 static int ad5064_spi_write(struct ad5064_state *st, unsigned int cmd, ad5064_spi_write() argument
528 struct spi_device *spi = to_spi_device(st->dev); ad5064_spi_write()
530 st->data.spi = cpu_to_be32(AD5064_CMD(cmd) | AD5064_ADDR(addr) | val); ad5064_spi_write()
531 return spi_write(spi, &st->data.spi, sizeof(st->data.spi)); ad5064_spi_write()
597 static int ad5064_i2c_write(struct ad5064_state *st, unsigned int cmd, ad5064_i2c_write() argument
600 struct i2c_client *i2c = to_i2c_client(st->dev); ad5064_i2c_write()
602 st->data.i2c[0] = (cmd << 4) | addr; ad5064_i2c_write()
603 put_unaligned_be16(val, &st->data.i2c[1]); ad5064_i2c_write()
604 return i2c_master_send(i2c, st->data.i2c, 3); ad5064_i2c_write()
H A Dad5360.c169 static unsigned int ad5360_get_channel_vref_index(struct ad5360_state *st, ad5360_get_channel_vref_index() argument
176 i = channel / st->chip_info->channels_per_group; ad5360_get_channel_vref_index()
177 if (i >= st->chip_info->num_vrefs) ad5360_get_channel_vref_index()
178 i = st->chip_info->num_vrefs - 1; ad5360_get_channel_vref_index()
183 static int ad5360_get_channel_vref(struct ad5360_state *st, ad5360_get_channel_vref() argument
186 unsigned int i = ad5360_get_channel_vref_index(st, channel); ad5360_get_channel_vref()
188 return regulator_get_voltage(st->vref_reg[i].consumer); ad5360_get_channel_vref()
196 struct ad5360_state *st = iio_priv(indio_dev); ad5360_write_unlocked() local
200 st->data[0].d32 = cpu_to_be32(val); ad5360_write_unlocked()
202 return spi_write(st->spi, &st->data[0].d8[1], 3); ad5360_write_unlocked()
220 struct ad5360_state *st = iio_priv(indio_dev); ad5360_read() local
224 .tx_buf = &st->data[0].d8[1], ad5360_read()
228 .rx_buf = &st->data[1].d8[1], ad5360_read()
235 st->data[0].d32 = cpu_to_be32(AD5360_CMD(AD5360_CMD_SPECIAL_FUNCTION) | ad5360_read()
240 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad5360_read()
242 ret = be32_to_cpu(st->data[1].d32) & 0xffff; ad5360_read()
254 struct ad5360_state *st = iio_priv(indio_dev); ad5360_read_dac_powerdown() local
256 return sprintf(buf, "%d\n", (bool)(st->ctrl & AD5360_SF_CTRL_PWR_DOWN)); ad5360_read_dac_powerdown()
262 struct ad5360_state *st = iio_priv(indio_dev); ad5360_update_ctrl() local
267 st->ctrl |= set; ad5360_update_ctrl()
268 st->ctrl &= ~clr; ad5360_update_ctrl()
271 AD5360_REG_SF_CTRL, st->ctrl, 0); ad5360_update_ctrl()
317 struct ad5360_state *st = iio_priv(indio_dev); ad5360_write_raw() local
357 ofs_index = ad5360_get_channel_vref_index(st, chan->channel); ad5360_write_raw()
373 struct ad5360_state *st = iio_priv(indio_dev); ad5360_read_raw() local
387 scale_uv = ad5360_get_channel_vref(st, chan->channel); ad5360_read_raw()
410 ofs_index = ad5360_get_channel_vref_index(st, chan->channel); ad5360_read_raw()
437 struct ad5360_state *st = iio_priv(indio_dev); ad5360_alloc_channels() local
441 channels = kcalloc(st->chip_info->num_channels, ad5360_alloc_channels()
447 for (i = 0; i < st->chip_info->num_channels; ++i) { ad5360_alloc_channels()
448 channels[i] = st->chip_info->channel_template; ad5360_alloc_channels()
462 struct ad5360_state *st; ad5360_probe() local
466 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5360_probe()
472 st = iio_priv(indio_dev); ad5360_probe()
475 st->chip_info = &ad5360_chip_info_tbl[type]; ad5360_probe()
476 st->spi = spi; ad5360_probe()
482 indio_dev->num_channels = st->chip_info->num_channels; ad5360_probe()
490 for (i = 0; i < st->chip_info->num_vrefs; ++i) ad5360_probe()
491 st->vref_reg[i].supply = ad5360_vref_name[i]; ad5360_probe()
493 ret = devm_regulator_bulk_get(&st->spi->dev, st->chip_info->num_vrefs, ad5360_probe()
494 st->vref_reg); ad5360_probe()
500 ret = regulator_bulk_enable(st->chip_info->num_vrefs, st->vref_reg); ad5360_probe()
515 regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg); ad5360_probe()
525 struct ad5360_state *st = iio_priv(indio_dev); ad5360_remove() local
531 regulator_bulk_disable(st->chip_info->num_vrefs, st->vref_reg); ad5360_remove()
H A Dad5764.c127 struct ad5764_state *st = iio_priv(indio_dev); ad5764_write() local
131 st->data[0].d32 = cpu_to_be32((reg << 16) | val); ad5764_write()
133 ret = spi_write(st->spi, &st->data[0].d8[1], 3); ad5764_write()
142 struct ad5764_state *st = iio_priv(indio_dev); ad5764_read() local
146 .tx_buf = &st->data[0].d8[1], ad5764_read()
150 .rx_buf = &st->data[1].d8[1], ad5764_read()
157 st->data[0].d32 = cpu_to_be32((1 << 23) | (reg << 16)); ad5764_read()
159 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad5764_read()
161 *val = be32_to_cpu(st->data[1].d32) & 0xffff; ad5764_read()
212 static int ad5764_get_channel_vref(struct ad5764_state *st, ad5764_get_channel_vref() argument
215 if (st->chip_info->int_vref) ad5764_get_channel_vref()
216 return st->chip_info->int_vref; ad5764_get_channel_vref()
218 return regulator_get_voltage(st->vref_reg[channel / 2].consumer); ad5764_get_channel_vref()
224 struct ad5764_state *st = iio_priv(indio_dev); ad5764_read_raw() local
253 vref = ad5764_get_channel_vref(st, chan->channel); ad5764_read_raw()
278 struct ad5764_state *st; ad5764_probe() local
281 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5764_probe()
287 st = iio_priv(indio_dev); ad5764_probe()
290 st->spi = spi; ad5764_probe()
291 st->chip_info = &ad5764_chip_infos[type]; ad5764_probe()
298 indio_dev->channels = st->chip_info->channels; ad5764_probe()
300 if (st->chip_info->int_vref == 0) { ad5764_probe()
301 st->vref_reg[0].supply = "vrefAB"; ad5764_probe()
302 st->vref_reg[1].supply = "vrefCD"; ad5764_probe()
304 ret = devm_regulator_bulk_get(&st->spi->dev, ad5764_probe()
305 ARRAY_SIZE(st->vref_reg), st->vref_reg); ad5764_probe()
312 ret = regulator_bulk_enable(ARRAY_SIZE(st->vref_reg), ad5764_probe()
313 st->vref_reg); ad5764_probe()
330 if (st->chip_info->int_vref == 0) ad5764_probe()
331 regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg); ad5764_probe()
338 struct ad5764_state *st = iio_priv(indio_dev); ad5764_remove() local
342 if (st->chip_info->int_vref == 0) ad5764_remove()
343 regulator_bulk_disable(ARRAY_SIZE(st->vref_reg), st->vref_reg); ad5764_remove()
H A Dad5624r_spi.c52 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_read_raw() local
56 *val = st->vref_mv; ad5624r_read_raw()
69 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_write_raw() local
76 return ad5624r_spi_write(st->us, ad5624r_write_raw()
94 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_get_powerdown_mode() local
96 return st->pwr_down_mode; ad5624r_get_powerdown_mode()
102 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_set_powerdown_mode() local
104 st->pwr_down_mode = mode; ad5624r_set_powerdown_mode()
119 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_read_dac_powerdown() local
122 !!(st->pwr_down_mask & (1 << chan->channel))); ad5624r_read_dac_powerdown()
131 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_write_dac_powerdown() local
138 st->pwr_down_mask |= (1 << chan->channel); ad5624r_write_dac_powerdown()
140 st->pwr_down_mask &= ~(1 << chan->channel); ad5624r_write_dac_powerdown()
142 ret = ad5624r_spi_write(st->us, AD5624R_CMD_POWERDOWN_DAC, 0, ad5624r_write_dac_powerdown()
143 (st->pwr_down_mode << 4) | ad5624r_write_dac_powerdown()
144 st->pwr_down_mask, 16); ad5624r_write_dac_powerdown()
226 struct ad5624r_state *st; ad5624r_probe() local
230 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5624r_probe()
233 st = iio_priv(indio_dev); ad5624r_probe()
234 st->reg = devm_regulator_get(&spi->dev, "vcc"); ad5624r_probe()
235 if (!IS_ERR(st->reg)) { ad5624r_probe()
236 ret = regulator_enable(st->reg); ad5624r_probe()
240 ret = regulator_get_voltage(st->reg); ad5624r_probe()
248 st->chip_info = ad5624r_probe()
252 st->vref_mv = voltage_uv / 1000; ad5624r_probe()
254 st->vref_mv = st->chip_info->int_vref_mv; ad5624r_probe()
256 st->us = spi; ad5624r_probe()
262 indio_dev->channels = st->chip_info->channels; ad5624r_probe()
277 if (!IS_ERR(st->reg)) ad5624r_probe()
278 regulator_disable(st->reg); ad5624r_probe()
286 struct ad5624r_state *st = iio_priv(indio_dev); ad5624r_remove() local
289 if (!IS_ERR(st->reg)) ad5624r_remove()
290 regulator_disable(st->reg); ad5624r_remove()
H A Dad5446.c57 int (*write)(struct ad5446_state *st, unsigned val);
67 struct ad5446_state *st = iio_priv(indio_dev); ad5446_set_powerdown_mode() local
69 st->pwr_down_mode = mode + 1; ad5446_set_powerdown_mode()
77 struct ad5446_state *st = iio_priv(indio_dev); ad5446_get_powerdown_mode() local
79 return st->pwr_down_mode - 1; ad5446_get_powerdown_mode()
94 struct ad5446_state *st = iio_priv(indio_dev); ad5446_read_dac_powerdown() local
96 return sprintf(buf, "%d\n", st->pwr_down); ad5446_read_dac_powerdown()
104 struct ad5446_state *st = iio_priv(indio_dev); ad5446_write_dac_powerdown() local
115 st->pwr_down = powerdown; ad5446_write_dac_powerdown()
117 if (st->pwr_down) { ad5446_write_dac_powerdown()
119 val = st->pwr_down_mode << shift; ad5446_write_dac_powerdown()
121 val = st->cached_val; ad5446_write_dac_powerdown()
124 ret = st->chip_info->write(st, val); ad5446_write_dac_powerdown()
170 struct ad5446_state *st = iio_priv(indio_dev); ad5446_read_raw() local
174 *val = st->cached_val; ad5446_read_raw()
177 *val = st->vref_mv; ad5446_read_raw()
190 struct ad5446_state *st = iio_priv(indio_dev); ad5446_write_raw() local
200 st->cached_val = val; ad5446_write_raw()
201 if (!st->pwr_down) ad5446_write_raw()
202 ret = st->chip_info->write(st, val); ad5446_write_raw()
221 struct ad5446_state *st; ad5446_probe() local
239 indio_dev = devm_iio_device_alloc(dev, sizeof(*st)); ad5446_probe()
244 st = iio_priv(indio_dev); ad5446_probe()
245 st->chip_info = chip_info; ad5446_probe()
248 st->reg = reg; ad5446_probe()
249 st->dev = dev; ad5446_probe()
256 indio_dev->channels = &st->chip_info->channel; ad5446_probe()
259 st->pwr_down_mode = MODE_PWRDWN_1k; ad5446_probe()
261 if (st->chip_info->int_vref_mv) ad5446_probe()
262 st->vref_mv = st->chip_info->int_vref_mv; ad5446_probe()
264 st->vref_mv = voltage_uv / 1000; ad5446_probe()
283 struct ad5446_state *st = iio_priv(indio_dev); ad5446_remove() local
286 if (!IS_ERR(st->reg)) ad5446_remove()
287 regulator_disable(st->reg); ad5446_remove()
294 static int ad5446_write(struct ad5446_state *st, unsigned val) ad5446_write() argument
296 struct spi_device *spi = to_spi_device(st->dev); ad5446_write()
302 static int ad5660_write(struct ad5446_state *st, unsigned val) ad5660_write() argument
304 struct spi_device *spi = to_spi_device(st->dev); ad5660_write()
510 static int ad5622_write(struct ad5446_state *st, unsigned val) ad5622_write() argument
512 struct i2c_client *client = to_i2c_client(st->dev); ad5622_write()
H A Dad5380.c85 struct ad5380_state *st = iio_priv(indio_dev); ad5380_read_dac_powerdown() local
87 return sprintf(buf, "%d\n", st->pwr_down); ad5380_read_dac_powerdown()
94 struct ad5380_state *st = iio_priv(indio_dev); ad5380_write_dac_powerdown() local
105 ret = regmap_write(st->regmap, AD5380_REG_SF_PWR_DOWN, 0); ad5380_write_dac_powerdown()
107 ret = regmap_write(st->regmap, AD5380_REG_SF_PWR_UP, 0); ad5380_write_dac_powerdown()
109 st->pwr_down = pwr_down; ad5380_write_dac_powerdown()
124 struct ad5380_state *st = iio_priv(indio_dev); ad5380_get_powerdown_mode() local
128 ret = regmap_read(st->regmap, AD5380_REG_SF_CTRL, &mode); ad5380_get_powerdown_mode()
140 struct ad5380_state *st = iio_priv(indio_dev); ad5380_set_powerdown_mode() local
143 ret = regmap_update_bits(st->regmap, AD5380_REG_SF_CTRL, ad5380_set_powerdown_mode()
178 struct ad5380_state *st = iio_priv(indio_dev); ad5380_write_raw() local
186 return regmap_write(st->regmap, ad5380_write_raw()
194 return regmap_write(st->regmap, ad5380_write_raw()
206 struct ad5380_state *st = iio_priv(indio_dev); ad5380_read_raw() local
212 ret = regmap_read(st->regmap, ad5380_info_to_reg(chan, info), ad5380_read_raw()
219 ret = regmap_read(st->regmap, AD5380_REG_OFFSET(chan->address), ad5380_read_raw()
227 *val = 2 * st->vref; ad5380_read_raw()
348 struct ad5380_state *st = iio_priv(indio_dev); ad5380_alloc_channels() local
352 channels = kcalloc(st->chip_info->num_channels, ad5380_alloc_channels()
358 for (i = 0; i < st->chip_info->num_channels; ++i) { ad5380_alloc_channels()
359 channels[i] = st->chip_info->channel_template; ad5380_alloc_channels()
373 struct ad5380_state *st; ad5380_probe() local
377 indio_dev = devm_iio_device_alloc(dev, sizeof(*st)); ad5380_probe()
383 st = iio_priv(indio_dev); ad5380_probe()
386 st->chip_info = &ad5380_chip_info_tbl[type]; ad5380_probe()
387 st->regmap = regmap; ad5380_probe()
393 indio_dev->num_channels = st->chip_info->num_channels; ad5380_probe()
401 if (st->chip_info->int_vref == 2500) ad5380_probe()
404 st->vref_reg = devm_regulator_get(dev, "vref"); ad5380_probe()
405 if (!IS_ERR(st->vref_reg)) { ad5380_probe()
406 ret = regulator_enable(st->vref_reg); ad5380_probe()
413 ret = regulator_get_voltage(st->vref_reg); ad5380_probe()
417 st->vref = ret / 1000; ad5380_probe()
419 st->vref = st->chip_info->int_vref; ad5380_probe()
423 ret = regmap_write(st->regmap, AD5380_REG_SF_CTRL, ctrl); ad5380_probe()
438 if (!IS_ERR(st->vref_reg)) ad5380_probe()
439 regulator_disable(st->vref_reg); ad5380_probe()
449 struct ad5380_state *st = iio_priv(indio_dev); ad5380_remove() local
455 if (!IS_ERR(st->vref_reg)) { ad5380_remove()
456 regulator_disable(st->vref_reg); ad5380_remove()
H A Dad5421.c136 struct ad5421_state *st = iio_priv(indio_dev); ad5421_write_unlocked() local
138 st->data[0].d32 = cpu_to_be32((reg << 16) | val); ad5421_write_unlocked()
140 return spi_write(st->spi, &st->data[0].d8[1], 3); ad5421_write_unlocked()
157 struct ad5421_state *st = iio_priv(indio_dev); ad5421_read() local
161 .tx_buf = &st->data[0].d8[1], ad5421_read()
165 .rx_buf = &st->data[1].d8[1], ad5421_read()
172 st->data[0].d32 = cpu_to_be32((1 << 23) | (reg << 16)); ad5421_read()
174 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad5421_read()
176 ret = be32_to_cpu(st->data[1].d32) & 0xffff; ad5421_read()
186 struct ad5421_state *st = iio_priv(indio_dev); ad5421_update_ctrl() local
191 st->ctrl &= ~clr; ad5421_update_ctrl()
192 st->ctrl |= set; ad5421_update_ctrl()
194 ret = ad5421_write_unlocked(indio_dev, AD5421_REG_CTRL, st->ctrl); ad5421_update_ctrl()
204 struct ad5421_state *st = iio_priv(indio_dev); ad5421_fault_handler() local
237 events &= st->fault_mask; ad5421_fault_handler()
279 static void ad5421_get_current_min_max(struct ad5421_state *st, ad5421_get_current_min_max() argument
284 switch (st->current_range) { ad5421_get_current_min_max()
304 static inline unsigned int ad5421_get_offset(struct ad5421_state *st) ad5421_get_offset() argument
308 ad5421_get_current_min_max(st, &min, &max); ad5421_get_offset()
315 struct ad5421_state *st = iio_priv(indio_dev); ad5421_read_raw() local
330 ad5421_get_current_min_max(st, &min, &max); ad5421_read_raw()
335 *val = ad5421_get_offset(st); ad5421_read_raw()
387 struct ad5421_state *st = iio_priv(indio_dev); ad5421_write_event_config() local
406 st->fault_mask |= mask; ad5421_write_event_config()
408 st->fault_mask &= ~mask; ad5421_write_event_config()
418 struct ad5421_state *st = iio_priv(indio_dev); ad5421_read_event_config() local
435 return (bool)(st->fault_mask & mask); ad5421_read_event_config()
475 struct ad5421_state *st; ad5421_probe() local
478 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5421_probe()
484 st = iio_priv(indio_dev); ad5421_probe()
487 st->spi = spi; ad5421_probe()
496 st->ctrl = AD5421_CTRL_WATCHDOG_DISABLE | ad5421_probe()
500 st->current_range = pdata->current_range; ad5421_probe()
502 st->ctrl |= AD5421_CTRL_PWR_DOWN_INT_VREF; ad5421_probe()
504 st->current_range = AD5421_CURRENT_RANGE_4mA_20mA; ad5421_probe()
H A Dad5755.c115 struct ad5755_state *st = iio_priv(indio_dev); ad5755_write_unlocked() local
117 st->data[0].d32 = cpu_to_be32((reg << 16) | val); ad5755_write_unlocked()
119 return spi_write(st->spi, &st->data[0].d8[1], 3); ad5755_write_unlocked()
155 struct ad5755_state *st = iio_priv(indio_dev); ad5755_read() local
159 .tx_buf = &st->data[0].d8[1], ad5755_read()
163 .tx_buf = &st->data[1].d8[1], ad5755_read()
164 .rx_buf = &st->data[1].d8[1], ad5755_read()
171 st->data[0].d32 = cpu_to_be32(AD5755_READ_FLAG | (addr << 16)); ad5755_read()
172 st->data[1].d32 = cpu_to_be32(AD5755_NOOP); ad5755_read()
174 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); ad5755_read()
176 ret = be32_to_cpu(st->data[1].d32) & 0xffff; ad5755_read()
186 struct ad5755_state *st = iio_priv(indio_dev); ad5755_update_dac_ctrl() local
189 st->ctrl[channel] |= set; ad5755_update_dac_ctrl()
190 st->ctrl[channel] &= ~clr; ad5755_update_dac_ctrl()
193 AD5755_CTRL_REG_DAC, st->ctrl[channel]); ad5755_update_dac_ctrl()
201 struct ad5755_state *st = iio_priv(indio_dev); ad5755_set_channel_pwr_down() local
206 if ((bool)(st->pwr_down & mask) == pwr_down) ad5755_set_channel_pwr_down()
210 st->pwr_down &= ~mask; ad5755_set_channel_pwr_down()
217 st->pwr_down |= mask; ad5755_set_channel_pwr_down()
239 static void ad5755_get_min_max(struct ad5755_state *st, ad5755_get_min_max() argument
242 enum ad5755_mode mode = st->ctrl[chan->channel] & 7; ad5755_get_min_max()
247 static inline int ad5755_get_offset(struct ad5755_state *st, ad5755_get_offset() argument
252 ad5755_get_min_max(st, chan, &min, &max); ad5755_get_offset()
256 static int ad5755_chan_reg_info(struct ad5755_state *st, ad5755_chan_reg_info() argument
274 *shift = st->chip_info->calib_shift; ad5755_chan_reg_info()
282 *shift = st->chip_info->calib_shift; ad5755_chan_reg_info()
295 struct ad5755_state *st = iio_priv(indio_dev); ad5755_read_raw() local
302 ad5755_get_min_max(st, chan, &min, &max); ad5755_read_raw()
307 *val = ad5755_get_offset(st, chan); ad5755_read_raw()
310 ret = ad5755_chan_reg_info(st, chan, info, false, ad5755_read_raw()
330 struct ad5755_state *st = iio_priv(indio_dev); ad5755_write_raw() local
334 ret = ad5755_chan_reg_info(st, chan, info, true, ad5755_write_raw()
351 struct ad5755_state *st = iio_priv(indio_dev); ad5755_read_powerdown() local
354 (bool)(st->pwr_down & (1 << chan->channel))); ad5755_read_powerdown()
427 static bool ad5755_is_valid_mode(struct ad5755_state *st, enum ad5755_mode mode) ad5755_is_valid_mode() argument
434 return st->chip_info->has_voltage_out; ad5755_is_valid_mode()
447 struct ad5755_state *st = iio_priv(indio_dev); ad5755_setup_pdata() local
482 if (!ad5755_is_valid_mode(st, pdata->dac[i].mode)) ad5755_setup_pdata()
516 struct ad5755_state *st = iio_priv(indio_dev); ad5755_init_channels() local
517 struct iio_chan_spec *channels = st->channels; ad5755_init_channels()
521 channels[i] = st->chip_info->channel_template; ad5755_init_channels()
564 struct ad5755_state *st; ad5755_probe() local
567 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad5755_probe()
573 st = iio_priv(indio_dev); ad5755_probe()
576 st->chip_info = &ad5755_chip_info_tbl[type]; ad5755_probe()
577 st->spi = spi; ad5755_probe()
578 st->pwr_down = 0xf; ad5755_probe()
/linux-4.1.27/drivers/staging/iio/accel/
H A Dsca3000_core.c83 int sca3000_write_reg(struct sca3000_state *st, u8 address, u8 val) sca3000_write_reg() argument
85 st->tx[0] = SCA3000_WRITE_REG(address); sca3000_write_reg()
86 st->tx[1] = val; sca3000_write_reg()
87 return spi_write(st->us, st->tx, 2); sca3000_write_reg()
90 int sca3000_read_data_short(struct sca3000_state *st, sca3000_read_data_short() argument
97 .tx_buf = st->tx, sca3000_read_data_short()
100 .rx_buf = st->rx, sca3000_read_data_short()
103 st->tx[0] = SCA3000_READ_REG(reg_address_high); sca3000_read_data_short()
105 return spi_sync_transfer(st->us, xfer, ARRAY_SIZE(xfer)); sca3000_read_data_short()
113 static int sca3000_reg_lock_on(struct sca3000_state *st) sca3000_reg_lock_on() argument
117 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_STATUS, 1); sca3000_reg_lock_on()
121 return !(st->rx[0] & SCA3000_LOCKED); sca3000_reg_lock_on()
131 static int __sca3000_unlock_reg_lock(struct sca3000_state *st) __sca3000_unlock_reg_lock() argument
137 .tx_buf = st->tx, __sca3000_unlock_reg_lock()
141 .tx_buf = st->tx + 2, __sca3000_unlock_reg_lock()
144 .tx_buf = st->tx + 4, __sca3000_unlock_reg_lock()
147 st->tx[0] = SCA3000_WRITE_REG(SCA3000_REG_ADDR_UNLOCK); __sca3000_unlock_reg_lock()
148 st->tx[1] = 0x00; __sca3000_unlock_reg_lock()
149 st->tx[2] = SCA3000_WRITE_REG(SCA3000_REG_ADDR_UNLOCK); __sca3000_unlock_reg_lock()
150 st->tx[3] = 0x50; __sca3000_unlock_reg_lock()
151 st->tx[4] = SCA3000_WRITE_REG(SCA3000_REG_ADDR_UNLOCK); __sca3000_unlock_reg_lock()
152 st->tx[5] = 0xA0; __sca3000_unlock_reg_lock()
154 return spi_sync_transfer(st->us, xfer, ARRAY_SIZE(xfer)); __sca3000_unlock_reg_lock()
167 static int sca3000_write_ctrl_reg(struct sca3000_state *st, sca3000_write_ctrl_reg() argument
174 ret = sca3000_reg_lock_on(st); sca3000_write_ctrl_reg()
178 ret = __sca3000_unlock_reg_lock(st); sca3000_write_ctrl_reg()
184 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_CTRL_SEL, sel); sca3000_write_ctrl_reg()
189 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_CTRL_DATA, val); sca3000_write_ctrl_reg()
200 static int sca3000_read_ctrl_reg(struct sca3000_state *st, sca3000_read_ctrl_reg() argument
205 ret = sca3000_reg_lock_on(st); sca3000_read_ctrl_reg()
209 ret = __sca3000_unlock_reg_lock(st); sca3000_read_ctrl_reg()
214 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_CTRL_SEL, ctrl_reg); sca3000_read_ctrl_reg()
217 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_CTRL_DATA, 1); sca3000_read_ctrl_reg()
221 return st->rx[0]; sca3000_read_ctrl_reg()
235 struct sca3000_state *st = iio_priv(indio_dev); sca3000_show_rev() local
237 mutex_lock(&st->lock); sca3000_show_rev()
238 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_REVID, 1); sca3000_show_rev()
243 st->rx[0] & SCA3000_REVID_MAJOR_MASK, sca3000_show_rev()
244 st->rx[0] & SCA3000_REVID_MINOR_MASK); sca3000_show_rev()
246 mutex_unlock(&st->lock); sca3000_show_rev()
263 struct sca3000_state *st = iio_priv(indio_dev); sca3000_show_available_measurement_modes() local
267 switch (st->info->option_mode_1) { sca3000_show_available_measurement_modes()
275 switch (st->info->option_mode_2) { sca3000_show_available_measurement_modes()
295 struct sca3000_state *st = iio_priv(indio_dev); sca3000_show_measurement_mode() local
298 mutex_lock(&st->lock); sca3000_show_measurement_mode()
299 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_show_measurement_mode()
303 st->rx[0] &= 0x03; sca3000_show_measurement_mode()
304 switch (st->rx[0]) { sca3000_show_measurement_mode()
312 switch (st->info->option_mode_1) { sca3000_show_measurement_mode()
322 switch (st->info->option_mode_2) { sca3000_show_measurement_mode()
331 mutex_unlock(&st->lock); sca3000_show_measurement_mode()
346 struct sca3000_state *st = iio_priv(indio_dev); sca3000_store_measurement_mode() local
351 mutex_lock(&st->lock); sca3000_store_measurement_mode()
359 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_store_measurement_mode()
362 st->rx[0] &= ~mask; sca3000_store_measurement_mode()
363 st->rx[0] |= (val & mask); sca3000_store_measurement_mode()
364 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE, st->rx[0]); sca3000_store_measurement_mode()
367 mutex_unlock(&st->lock); sca3000_store_measurement_mode()
372 mutex_unlock(&st->lock); sca3000_store_measurement_mode()
455 struct sca3000_state *st = iio_priv(indio_dev); sca3000_read_raw() local
461 mutex_lock(&st->lock); sca3000_read_raw()
463 if (st->mo_det_use_count) { sca3000_read_raw()
464 mutex_unlock(&st->lock); sca3000_read_raw()
468 ret = sca3000_read_data_short(st, address, 2); sca3000_read_raw()
470 mutex_unlock(&st->lock); sca3000_read_raw()
473 *val = (be16_to_cpup((__be16 *)st->rx) >> 3) & 0x1FFF; sca3000_read_raw()
478 ret = sca3000_read_data_short(st, sca3000_read_raw()
481 mutex_unlock(&st->lock); sca3000_read_raw()
484 *val = ((st->rx[0] & 0x3F) << 3) | sca3000_read_raw()
485 ((st->rx[1] & 0xE0) >> 5); sca3000_read_raw()
487 mutex_unlock(&st->lock); sca3000_read_raw()
492 *val2 = st->info->scale; sca3000_read_raw()
518 struct sca3000_state *st = iio_priv(indio_dev); sca3000_read_av_freq() local
521 mutex_lock(&st->lock); sca3000_read_av_freq()
522 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_read_av_freq()
523 val = st->rx[0]; sca3000_read_av_freq()
524 mutex_unlock(&st->lock); sca3000_read_av_freq()
531 st->info->measurement_mode_freq, sca3000_read_av_freq()
532 st->info->measurement_mode_freq/2, sca3000_read_av_freq()
533 st->info->measurement_mode_freq/4); sca3000_read_av_freq()
537 st->info->option_mode_1_freq, sca3000_read_av_freq()
538 st->info->option_mode_1_freq/2, sca3000_read_av_freq()
539 st->info->option_mode_1_freq/4); sca3000_read_av_freq()
543 st->info->option_mode_2_freq, sca3000_read_av_freq()
544 st->info->option_mode_2_freq/2, sca3000_read_av_freq()
545 st->info->option_mode_2_freq/4); sca3000_read_av_freq()
557 static inline int __sca3000_get_base_freq(struct sca3000_state *st, __sca3000_get_base_freq() argument
563 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); __sca3000_get_base_freq()
566 switch (0x03 & st->rx[0]) { __sca3000_get_base_freq()
589 struct sca3000_state *st = iio_priv(indio_dev); sca3000_read_frequency() local
592 mutex_lock(&st->lock); sca3000_read_frequency()
593 ret = __sca3000_get_base_freq(st, st->info, &base_freq); sca3000_read_frequency()
596 ret = sca3000_read_ctrl_reg(st, SCA3000_REG_CTRL_SEL_OUT_CTRL); sca3000_read_frequency()
597 mutex_unlock(&st->lock); sca3000_read_frequency()
617 mutex_unlock(&st->lock); sca3000_read_frequency()
631 struct sca3000_state *st = iio_priv(indio_dev); sca3000_set_frequency() local
640 mutex_lock(&st->lock); sca3000_set_frequency()
642 ret = __sca3000_get_base_freq(st, st->info, &base_freq); sca3000_set_frequency()
646 ret = sca3000_read_ctrl_reg(st, SCA3000_REG_CTRL_SEL_OUT_CTRL); sca3000_set_frequency()
661 ret = sca3000_write_ctrl_reg(st, SCA3000_REG_CTRL_SEL_OUT_CTRL, sca3000_set_frequency()
664 mutex_unlock(&st->lock); sca3000_set_frequency()
690 struct sca3000_state *st = iio_priv(indio_dev); sca3000_read_thresh() local
693 mutex_lock(&st->lock); sca3000_read_thresh()
694 ret = sca3000_read_ctrl_reg(st, sca3000_addresses[num][1]); sca3000_read_thresh()
695 mutex_unlock(&st->lock); sca3000_read_thresh()
701 ARRAY_SIZE(st->info->mot_det_mult_y)) sca3000_read_thresh()
702 *val += st->info->mot_det_mult_y[i]; sca3000_read_thresh()
705 ARRAY_SIZE(st->info->mot_det_mult_xz)) sca3000_read_thresh()
706 *val += st->info->mot_det_mult_xz[i]; sca3000_read_thresh()
721 struct sca3000_state *st = iio_priv(indio_dev); sca3000_write_thresh() local
728 i = ARRAY_SIZE(st->info->mot_det_mult_y); sca3000_write_thresh()
730 if (val >= st->info->mot_det_mult_y[--i]) { sca3000_write_thresh()
732 val -= st->info->mot_det_mult_y[i]; sca3000_write_thresh()
735 i = ARRAY_SIZE(st->info->mot_det_mult_xz); sca3000_write_thresh()
737 if (val >= st->info->mot_det_mult_xz[--i]) { sca3000_write_thresh()
739 val -= st->info->mot_det_mult_xz[i]; sca3000_write_thresh()
743 mutex_lock(&st->lock); sca3000_write_thresh()
744 ret = sca3000_write_ctrl_reg(st, sca3000_addresses[num][1], nonlinear); sca3000_write_thresh()
745 mutex_unlock(&st->lock); sca3000_write_thresh()
776 struct sca3000_state *st = iio_priv(indio_dev); sca3000_event_handler() local
784 mutex_lock(&st->lock); sca3000_event_handler()
785 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_STATUS, 1); sca3000_event_handler()
786 val = st->rx[0]; sca3000_event_handler()
787 mutex_unlock(&st->lock); sca3000_event_handler()
841 struct sca3000_state *st = iio_priv(indio_dev); sca3000_read_event_config() local
847 mutex_lock(&st->lock); sca3000_read_event_config()
848 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_read_event_config()
852 if ((st->rx[0] & protect_mask) != SCA3000_MEAS_MODE_MOT_DET) sca3000_read_event_config()
855 ret = sca3000_read_ctrl_reg(st, SCA3000_REG_CTRL_SEL_MD_CTRL); sca3000_read_event_config()
862 mutex_unlock(&st->lock); sca3000_read_event_config()
875 struct sca3000_state *st = iio_priv(indio_dev); sca3000_query_free_fall_mode() local
878 mutex_lock(&st->lock); sca3000_query_free_fall_mode()
879 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_query_free_fall_mode()
880 val = st->rx[0]; sca3000_query_free_fall_mode()
881 mutex_unlock(&st->lock); sca3000_query_free_fall_mode()
900 struct sca3000_state *st = iio_priv(indio_dev); sca3000_set_free_fall_mode() local
905 mutex_lock(&st->lock); sca3000_set_free_fall_mode()
911 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_set_free_fall_mode()
916 if (val && !(st->rx[0] & protect_mask)) sca3000_set_free_fall_mode()
917 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE, sca3000_set_free_fall_mode()
918 (st->rx[0] | SCA3000_FREE_FALL_DETECT)); sca3000_set_free_fall_mode()
920 else if (!val && (st->rx[0] & protect_mask)) sca3000_set_free_fall_mode()
921 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE, sca3000_set_free_fall_mode()
922 (st->rx[0] & ~protect_mask)); sca3000_set_free_fall_mode()
924 mutex_unlock(&st->lock); sca3000_set_free_fall_mode()
944 struct sca3000_state *st = iio_priv(indio_dev); sca3000_write_event_config() local
949 mutex_lock(&st->lock); sca3000_write_event_config()
954 ret = sca3000_read_ctrl_reg(st, SCA3000_REG_CTRL_SEL_MD_CTRL); sca3000_write_event_config()
960 ret = sca3000_write_ctrl_reg(st, sca3000_write_event_config()
966 st->mo_det_use_count++; sca3000_write_event_config()
968 ret = sca3000_write_ctrl_reg(st, sca3000_write_event_config()
974 st->mo_det_use_count--; sca3000_write_event_config()
978 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_write_event_config()
982 if ((st->mo_det_use_count) sca3000_write_event_config()
983 && ((st->rx[0] & protect_mask) != SCA3000_MEAS_MODE_MOT_DET)) sca3000_write_event_config()
984 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE, sca3000_write_event_config()
985 (st->rx[0] & ~protect_mask) sca3000_write_event_config()
988 else if (!(st->mo_det_use_count) sca3000_write_event_config()
989 && ((st->rx[0] & protect_mask) == SCA3000_MEAS_MODE_MOT_DET)) sca3000_write_event_config()
990 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE, sca3000_write_event_config()
991 (st->rx[0] & ~protect_mask)); sca3000_write_event_config()
993 mutex_unlock(&st->lock); sca3000_write_event_config()
1028 static int sca3000_clean_setup(struct sca3000_state *st) sca3000_clean_setup() argument
1032 mutex_lock(&st->lock); sca3000_clean_setup()
1034 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_STATUS, 1); sca3000_clean_setup()
1039 ret = sca3000_read_ctrl_reg(st, SCA3000_REG_CTRL_SEL_MD_CTRL); sca3000_clean_setup()
1042 ret = sca3000_write_ctrl_reg(st, SCA3000_REG_CTRL_SEL_MD_CTRL, sca3000_clean_setup()
1048 ret = sca3000_read_ctrl_reg(st, SCA3000_REG_CTRL_SEL_OUT_CTRL); sca3000_clean_setup()
1049 ret = sca3000_write_ctrl_reg(st, SCA3000_REG_CTRL_SEL_OUT_CTRL, sca3000_clean_setup()
1058 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_MASK, 1); sca3000_clean_setup()
1061 ret = sca3000_write_reg(st, sca3000_clean_setup()
1072 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); sca3000_clean_setup()
1075 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_MODE, sca3000_clean_setup()
1076 (st->rx[0] & SCA3000_MODE_PROT_MASK)); sca3000_clean_setup()
1077 st->bpse = 11; sca3000_clean_setup()
1080 mutex_unlock(&st->lock); sca3000_clean_setup()
1098 struct sca3000_state *st; sca3000_probe() local
1101 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); sca3000_probe()
1105 st = iio_priv(indio_dev); sca3000_probe()
1107 st->us = spi; sca3000_probe()
1108 mutex_init(&st->lock); sca3000_probe()
1109 st->info = &sca3000_spi_chip_info_tbl[spi_get_device_id(spi) sca3000_probe()
1115 if (st->info->temp_output) { sca3000_probe()
1141 ret = sca3000_clean_setup(st); sca3000_probe()
1154 static int sca3000_stop_all_interrupts(struct sca3000_state *st) sca3000_stop_all_interrupts() argument
1158 mutex_lock(&st->lock); sca3000_stop_all_interrupts()
1159 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_MASK, 1); sca3000_stop_all_interrupts()
1162 ret = sca3000_write_reg(st, SCA3000_REG_ADDR_INT_MASK, sca3000_stop_all_interrupts()
1163 (st->rx[0] & sca3000_stop_all_interrupts()
1168 mutex_unlock(&st->lock); sca3000_stop_all_interrupts()
1175 struct sca3000_state *st = iio_priv(indio_dev); sca3000_remove() local
1178 sca3000_stop_all_interrupts(st); sca3000_remove()
H A Dsca3000_ring.c36 static int sca3000_read_data(struct sca3000_state *st, sca3000_read_data() argument
45 .tx_buf = st->tx, sca3000_read_data()
56 st->tx[0] = SCA3000_READ_REG(reg_address_high); sca3000_read_data()
57 ret = spi_sync_transfer(st->us, xfer, ARRAY_SIZE(xfer)); sca3000_read_data()
59 dev_err(get_device(&st->us->dev), "problem reading register"); sca3000_read_data()
85 struct sca3000_state *st = iio_priv(indio_dev); sca3000_read_first_n_hw_rb() local
90 if (st->bpse == 11) sca3000_read_first_n_hw_rb()
93 mutex_lock(&st->lock); sca3000_read_first_n_hw_rb()
99 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_BUF_COUNT, 1); sca3000_read_first_n_hw_rb()
103 num_available = st->rx[0]; sca3000_read_first_n_hw_rb()
113 ret = sca3000_read_data(st, sca3000_read_first_n_hw_rb()
127 mutex_unlock(&st->lock); sca3000_read_first_n_hw_rb()
147 struct sca3000_state *st = iio_priv(indio_dev); sca3000_query_ring_int() local
149 mutex_lock(&st->lock); sca3000_query_ring_int()
150 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_MASK, 1); sca3000_query_ring_int()
151 val = st->rx[0]; sca3000_query_ring_int()
152 mutex_unlock(&st->lock); sca3000_query_ring_int()
168 struct sca3000_state *st = iio_priv(indio_dev); sca3000_set_ring_int() local
173 mutex_lock(&st->lock); sca3000_set_ring_int()
177 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_MASK, 1); sca3000_set_ring_int()
181 ret = sca3000_write_reg(st, sca3000_set_ring_int()
183 st->rx[0] | this_attr->address); sca3000_set_ring_int()
185 ret = sca3000_write_reg(st, sca3000_set_ring_int()
187 st->rx[0] & ~this_attr->address); sca3000_set_ring_int()
189 mutex_unlock(&st->lock); sca3000_set_ring_int()
209 struct sca3000_state *st = iio_priv(indio_dev); sca3000_show_buffer_scale() local
211 return sprintf(buf, "0.%06d\n", 4*st->info->scale); sca3000_show_buffer_scale()
287 struct sca3000_state *st = iio_priv(indio_dev); __sca3000_hw_ring_state_set() local
290 mutex_lock(&st->lock); __sca3000_hw_ring_state_set()
291 ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_MODE, 1); __sca3000_hw_ring_state_set()
296 ret = sca3000_write_reg(st, __sca3000_hw_ring_state_set()
298 (st->rx[0] | SCA3000_RING_BUF_ENABLE)); __sca3000_hw_ring_state_set()
300 ret = sca3000_write_reg(st, __sca3000_hw_ring_state_set()
302 (st->rx[0] & ~SCA3000_RING_BUF_ENABLE)); __sca3000_hw_ring_state_set()
304 mutex_unlock(&st->lock); __sca3000_hw_ring_state_set()
H A Dlis3l02dq_core.c55 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_spi_read_reg_8() local
58 .tx_buf = st->tx, lis3l02dq_spi_read_reg_8()
59 .rx_buf = st->rx, lis3l02dq_spi_read_reg_8()
64 mutex_lock(&st->buf_lock); lis3l02dq_spi_read_reg_8()
65 st->tx[0] = LIS3L02DQ_READ_REG(reg_address); lis3l02dq_spi_read_reg_8()
66 st->tx[1] = 0; lis3l02dq_spi_read_reg_8()
68 ret = spi_sync_transfer(st->us, &xfer, 1); lis3l02dq_spi_read_reg_8()
69 *val = st->rx[1]; lis3l02dq_spi_read_reg_8()
70 mutex_unlock(&st->buf_lock); lis3l02dq_spi_read_reg_8()
86 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_spi_write_reg_8() local
88 mutex_lock(&st->buf_lock); lis3l02dq_spi_write_reg_8()
89 st->tx[0] = LIS3L02DQ_WRITE_REG(reg_address); lis3l02dq_spi_write_reg_8()
90 st->tx[1] = val; lis3l02dq_spi_write_reg_8()
91 ret = spi_write(st->us, st->tx, 2); lis3l02dq_spi_write_reg_8()
92 mutex_unlock(&st->buf_lock); lis3l02dq_spi_write_reg_8()
109 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_spi_write_reg_s16() local
111 .tx_buf = st->tx, lis3l02dq_spi_write_reg_s16()
116 .tx_buf = st->tx + 2, lis3l02dq_spi_write_reg_s16()
122 mutex_lock(&st->buf_lock); lis3l02dq_spi_write_reg_s16()
123 st->tx[0] = LIS3L02DQ_WRITE_REG(lower_reg_address); lis3l02dq_spi_write_reg_s16()
124 st->tx[1] = value & 0xFF; lis3l02dq_spi_write_reg_s16()
125 st->tx[2] = LIS3L02DQ_WRITE_REG(lower_reg_address + 1); lis3l02dq_spi_write_reg_s16()
126 st->tx[3] = (value >> 8) & 0xFF; lis3l02dq_spi_write_reg_s16()
128 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); lis3l02dq_spi_write_reg_s16()
129 mutex_unlock(&st->buf_lock); lis3l02dq_spi_write_reg_s16()
138 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_read_reg_s16() local
142 .tx_buf = st->tx, lis3l02dq_read_reg_s16()
143 .rx_buf = st->rx, lis3l02dq_read_reg_s16()
148 .tx_buf = st->tx + 2, lis3l02dq_read_reg_s16()
149 .rx_buf = st->rx + 2, lis3l02dq_read_reg_s16()
155 mutex_lock(&st->buf_lock); lis3l02dq_read_reg_s16()
156 st->tx[0] = LIS3L02DQ_READ_REG(lower_reg_address); lis3l02dq_read_reg_s16()
157 st->tx[1] = 0; lis3l02dq_read_reg_s16()
158 st->tx[2] = LIS3L02DQ_READ_REG(lower_reg_address + 1); lis3l02dq_read_reg_s16()
159 st->tx[3] = 0; lis3l02dq_read_reg_s16()
161 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); lis3l02dq_read_reg_s16()
163 dev_err(&st->us->dev, "problem when reading 16 bit register"); lis3l02dq_read_reg_s16()
166 tempval = (s16)(st->rx[1]) | ((s16)(st->rx[3]) << 8); lis3l02dq_read_reg_s16()
170 mutex_unlock(&st->buf_lock); lis3l02dq_read_reg_s16()
383 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_initial_setup() local
387 st->us->mode = SPI_MODE_3; lis3l02dq_initial_setup()
389 spi_setup(st->us); lis3l02dq_initial_setup()
397 dev_err(&st->us->dev, "problem with setup control register 1"); lis3l02dq_initial_setup()
405 dev_err(&st->us->dev, "problem with setup control register 1"); lis3l02dq_initial_setup()
426 dev_err(&st->us->dev, "problem with setup control register 2"); lis3l02dq_initial_setup()
435 dev_err(&st->us->dev, "problem with interrupt cfg register"); lis3l02dq_initial_setup()
692 struct lis3l02dq_state *st; lis3l02dq_probe() local
695 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); lis3l02dq_probe()
698 st = iio_priv(indio_dev); lis3l02dq_probe()
702 st->us = spi; lis3l02dq_probe()
703 st->gpio = of_get_gpio(spi->dev.of_node, 0); lis3l02dq_probe()
704 mutex_init(&st->buf_lock); lis3l02dq_probe()
718 ret = request_threaded_irq(st->us->irq, lis3l02dq_probe()
748 free_irq(st->us->irq, indio_dev); lis3l02dq_probe()
758 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_stop_device() local
766 dev_err(&st->us->dev, "problem with turning device off: ctrl1"); lis3l02dq_stop_device()
774 dev_err(&st->us->dev, "problem with turning device off: ctrl2"); lis3l02dq_stop_device()
784 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_remove() local
792 free_irq(st->us->irq, indio_dev); lis3l02dq_remove()
H A Dlis3l02dq_ring.c32 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_data_rdy_trig_poll() local
34 if (st->trigger_on) { lis3l02dq_data_rdy_trig_poll()
35 iio_trigger_poll(st->trig); lis3l02dq_data_rdy_trig_poll()
59 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_read_all() local
70 mutex_lock(&st->buf_lock); lis3l02dq_read_all()
75 xfers[j].tx_buf = st->tx + 2*j; lis3l02dq_read_all()
76 st->tx[2*j] = read_all_tx_array[i*4]; lis3l02dq_read_all()
77 st->tx[2*j + 1] = 0; lis3l02dq_read_all()
86 xfers[j].tx_buf = st->tx + 2*j; lis3l02dq_read_all()
87 st->tx[2*j] = read_all_tx_array[i*4 + 2]; lis3l02dq_read_all()
88 st->tx[2*j + 1] = 0; lis3l02dq_read_all()
105 ret = spi_sync(st->us, &msg); lis3l02dq_read_all()
106 mutex_unlock(&st->buf_lock); lis3l02dq_read_all()
166 struct lis3l02dq_state *st = iio_priv(indio_dev); __lis3l02dq_write_data_ready_config() local
194 st->trigger_on = false; __lis3l02dq_write_data_ready_config()
206 st->trigger_on = true; __lis3l02dq_write_data_ready_config()
254 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_trig_try_reen() local
260 if (gpio_get_value(st->gpio)) lis3l02dq_trig_try_reen()
280 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_probe_trigger() local
282 st->trig = iio_trigger_alloc("lis3l02dq-dev%d", indio_dev->id); lis3l02dq_probe_trigger()
283 if (!st->trig) { lis3l02dq_probe_trigger()
288 st->trig->dev.parent = &st->us->dev; lis3l02dq_probe_trigger()
289 st->trig->ops = &lis3l02dq_trigger_ops; lis3l02dq_probe_trigger()
290 iio_trigger_set_drvdata(st->trig, indio_dev); lis3l02dq_probe_trigger()
291 ret = iio_trigger_register(st->trig); lis3l02dq_probe_trigger()
298 iio_trigger_free(st->trig); lis3l02dq_probe_trigger()
305 struct lis3l02dq_state *st = iio_priv(indio_dev); lis3l02dq_remove_trigger() local
307 iio_trigger_unregister(st->trig); lis3l02dq_remove_trigger()
308 iio_trigger_free(st->trig); lis3l02dq_remove_trigger()
H A Dadis16201_core.c37 struct adis *st = iio_priv(indio_dev); adis16201_read_raw() local
90 ret = adis_read_reg_16(st, addr, &val16); adis16201_read_raw()
110 struct adis *st = iio_priv(indio_dev); adis16201_write_raw() local
129 return adis_write_reg_16(st, addr, val16); adis16201_write_raw()
182 struct adis *st; adis16201_probe() local
186 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16201_probe()
190 st = iio_priv(indio_dev); adis16201_probe()
202 ret = adis_init(st, indio_dev, spi, &adis16201_data); adis16201_probe()
205 ret = adis_setup_buffer_and_trigger(st, indio_dev, NULL); adis16201_probe()
210 ret = adis_initial_startup(st); adis16201_probe()
220 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16201_probe()
227 struct adis *st = iio_priv(indio_dev); adis16201_remove() local
230 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16201_remove()
H A Dadis16203_core.c37 struct adis *st = iio_priv(indio_dev); adis16203_write_raw() local
41 return adis_write_reg_16(st, addr, val & 0x3FFF); adis16203_write_raw()
49 struct adis *st = iio_priv(indio_dev); adis16203_read_raw() local
88 ret = adis_read_reg_16(st, addr, &val16); adis16203_read_raw()
151 struct adis *st; adis16203_probe() local
154 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16203_probe()
157 st = iio_priv(indio_dev); adis16203_probe()
168 ret = adis_init(st, indio_dev, spi, &adis16203_data); adis16203_probe()
172 ret = adis_setup_buffer_and_trigger(st, indio_dev, NULL); adis16203_probe()
177 ret = adis_initial_startup(st); adis16203_probe()
188 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16203_probe()
195 struct adis *st = iio_priv(indio_dev); adis16203_remove() local
198 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16203_remove()
H A Dadis16204_core.c41 struct adis *st = iio_priv(indio_dev); adis16204_read_raw() local
98 ret = adis_read_reg_16(st, addr, &val16); adis16204_read_raw()
118 struct adis *st = iio_priv(indio_dev); adis16204_write_raw() local
134 return adis_write_reg_16(st, addr, val16); adis16204_write_raw()
189 struct adis *st; adis16204_probe() local
193 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16204_probe()
196 st = iio_priv(indio_dev); adis16204_probe()
207 ret = adis_init(st, indio_dev, spi, &adis16204_data); adis16204_probe()
211 ret = adis_setup_buffer_and_trigger(st, indio_dev, NULL); adis16204_probe()
216 ret = adis_initial_startup(st); adis16204_probe()
226 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16204_probe()
233 struct adis *st = iio_priv(indio_dev); adis16204_remove() local
236 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16204_remove()
H A Dadis16209_core.c43 struct adis *st = iio_priv(indio_dev); adis16209_write_raw() local
60 return adis_write_reg_16(st, addr, val16); adis16209_write_raw()
70 struct adis *st = iio_priv(indio_dev); adis16209_read_raw() local
119 ret = adis_read_reg_16(st, addr, &val16); adis16209_read_raw()
184 struct adis *st; adis16209_probe() local
188 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16209_probe()
191 st = iio_priv(indio_dev); adis16209_probe()
202 ret = adis_init(st, indio_dev, spi, &adis16209_data); adis16209_probe()
205 ret = adis_setup_buffer_and_trigger(st, indio_dev, NULL); adis16209_probe()
210 ret = adis_initial_startup(st); adis16209_probe()
220 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16209_probe()
227 struct adis *st = iio_priv(indio_dev); adis16209_remove() local
230 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16209_remove()
H A Dadis16220_core.c29 struct adis16220_state *st = iio_priv(indio_dev); adis16220_read_16bit() local
35 ret = adis_read_reg_16(&st->adis, this_attr->address, &val); adis16220_read_16bit()
49 struct adis16220_state *st = iio_priv(indio_dev); adis16220_write_16bit() local
56 ret = adis_write_reg_16(&st->adis, this_attr->address, val); adis16220_write_16bit()
64 struct adis16220_state *st = iio_priv(indio_dev); adis16220_capture() local
68 ret = adis_write_reg_16(&st->adis, ADIS16220_GLOB_CMD, 0xBF08); adis16220_capture()
103 struct adis16220_state *st = iio_priv(indio_dev); adis16220_capture_buffer_read() local
106 .tx_buf = st->tx, adis16220_capture_buffer_read()
112 .tx_buf = st->tx, adis16220_capture_buffer_read()
113 .rx_buf = st->rx, adis16220_capture_buffer_read()
132 ret = adis_write_reg_16(&st->adis, adis16220_capture_buffer_read()
139 mutex_lock(&st->buf_lock); adis16220_capture_buffer_read()
142 st->tx[i] = ADIS_READ_REG(addr); adis16220_capture_buffer_read()
143 st->tx[i + 1] = 0; adis16220_capture_buffer_read()
147 ret = spi_sync_transfer(st->adis.spi, xfers, ARRAY_SIZE(xfers)); adis16220_capture_buffer_read()
149 mutex_unlock(&st->buf_lock); adis16220_capture_buffer_read()
153 memcpy(buf, st->rx, count); adis16220_capture_buffer_read()
155 mutex_unlock(&st->buf_lock); adis16220_capture_buffer_read()
266 struct adis16220_state *st = iio_priv(indio_dev); adis16220_read_raw() local
314 ret = adis_read_reg_16(&st->adis, addr->addr, &sval); adis16220_read_raw()
323 ret = adis_read_reg_16(&st->adis, addr->addr, &uval); adis16220_read_raw()
418 struct adis16220_state *st; adis16220_probe() local
422 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16220_probe()
426 st = iio_priv(indio_dev); adis16220_probe()
453 ret = adis_init(&st->adis, indio_dev, spi, &adis16220_data); adis16220_probe()
457 ret = adis_initial_startup(&st->adis); adis16220_probe()
H A Dadis16240_core.c35 struct adis *st = iio_priv(indio_dev); adis16240_spi_read_signed() local
41 ret = adis_read_reg_16(st, adis16240_spi_read_signed()
47 adis_check_status(st); adis16240_spi_read_signed()
85 struct adis *st = iio_priv(indio_dev); adis16240_read_raw() local
127 ret = adis_read_reg_16(st, addr, &val16); adis16240_read_raw()
141 ret = adis_read_reg_16(st, addr, &val16); adis16240_read_raw()
161 struct adis *st = iio_priv(indio_dev); adis16240_write_raw() local
170 return adis_write_reg_16(st, addr, val16); adis16240_write_raw()
238 struct adis *st; adis16240_probe() local
242 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16240_probe()
245 st = iio_priv(indio_dev); adis16240_probe()
256 ret = adis_init(st, indio_dev, spi, &adis16240_data); adis16240_probe()
259 ret = adis_setup_buffer_and_trigger(st, indio_dev, NULL); adis16240_probe()
264 ret = adis_initial_startup(st); adis16240_probe()
273 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16240_probe()
280 struct adis *st = iio_priv(indio_dev); adis16240_remove() local
283 adis_cleanup_buffer_and_trigger(st, indio_dev); adis16240_remove()
/linux-4.1.27/arch/arm64/mm/
H A Ddump.c166 static void dump_prot(struct pg_state *st, const struct prot_bits *bits, dump_prot() argument
174 if ((st->current_prot & bits->mask) == bits->val) dump_prot()
180 seq_printf(st->seq, " %s", s); dump_prot()
184 static void note_page(struct pg_state *st, unsigned long addr, unsigned level, note_page() argument
190 if (!st->level) { note_page()
191 st->level = level; note_page()
192 st->current_prot = prot; note_page()
193 st->start_address = addr; note_page()
194 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); note_page()
195 } else if (prot != st->current_prot || level != st->level || note_page()
196 addr >= st->marker[1].start_address) { note_page()
200 if (st->current_prot) { note_page()
201 seq_printf(st->seq, "0x%16lx-0x%16lx ", note_page()
202 st->start_address, addr); note_page()
204 delta = (addr - st->start_address) >> 10; note_page()
209 seq_printf(st->seq, "%9lu%c", delta, *unit); note_page()
210 if (pg_level[st->level].bits) note_page()
211 dump_prot(st, pg_level[st->level].bits, note_page()
212 pg_level[st->level].num); note_page()
213 seq_puts(st->seq, "\n"); note_page()
216 if (addr >= st->marker[1].start_address) { note_page()
217 st->marker++; note_page()
218 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); note_page()
221 st->start_address = addr; note_page()
222 st->current_prot = prot; note_page()
223 st->level = level; note_page()
226 if (addr >= st->marker[1].start_address) { note_page()
227 st->marker++; note_page()
228 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); note_page()
233 static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start) walk_pte() argument
241 note_page(st, addr, 4, pte_val(*pte)); walk_pte()
245 static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) walk_pmd() argument
254 note_page(st, addr, 3, pmd_val(*pmd)); walk_pmd()
257 walk_pte(st, pmd, addr); walk_pmd()
262 static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) walk_pud() argument
271 note_page(st, addr, 2, pud_val(*pud)); walk_pud()
274 walk_pmd(st, pud, addr); walk_pud()
279 static void walk_pgd(struct pg_state *st, struct mm_struct *mm, unsigned long start) walk_pgd() argument
288 note_page(st, addr, 1, pgd_val(*pgd)); walk_pgd()
291 walk_pud(st, pgd, addr); walk_pgd()
298 struct pg_state st = { ptdump_show() local
303 walk_pgd(&st, &init_mm, LOWEST_ADDR); ptdump_show()
305 note_page(&st, 0, 0, 0); ptdump_show()
/linux-4.1.27/arch/x86/mm/
H A Ddump_pagetables.c190 static void note_page(struct seq_file *m, struct pg_state *st, note_page() argument
202 cur = pgprot_val(st->current_prot) & PTE_FLAGS_MASK; note_page()
204 if (!st->level) { note_page()
206 st->current_prot = new_prot; note_page()
207 st->level = level; note_page()
208 st->marker = address_markers; note_page()
209 st->lines = 0; note_page()
210 pt_dump_seq_printf(m, st->to_dmesg, "---[ %s ]---\n", note_page()
211 st->marker->name); note_page()
212 } else if (prot != cur || level != st->level || note_page()
213 st->current_address >= st->marker[1].start_address) { note_page()
221 if (!st->marker->max_lines || note_page()
222 st->lines < st->marker->max_lines) { note_page()
223 pt_dump_seq_printf(m, st->to_dmesg, note_page()
225 width, st->start_address, note_page()
226 width, st->current_address); note_page()
228 delta = st->current_address - st->start_address; note_page()
233 pt_dump_cont_printf(m, st->to_dmesg, "%9lu%c ", note_page()
235 printk_prot(m, st->current_prot, st->level, note_page()
236 st->to_dmesg); note_page()
238 st->lines++; note_page()
245 if (st->current_address >= st->marker[1].start_address) { note_page()
246 if (st->marker->max_lines && note_page()
247 st->lines > st->marker->max_lines) { note_page()
249 st->lines - st->marker->max_lines; note_page()
250 pt_dump_seq_printf(m, st->to_dmesg, note_page()
255 st->marker++; note_page()
256 st->lines = 0; note_page()
257 pt_dump_seq_printf(m, st->to_dmesg, "---[ %s ]---\n", note_page()
258 st->marker->name); note_page()
261 st->start_address = st->current_address; note_page()
262 st->current_prot = new_prot; note_page()
263 st->level = level; note_page()
267 static void walk_pte_level(struct seq_file *m, struct pg_state *st, pmd_t addr, walk_pte_level() argument
277 st->current_address = normalize_addr(P + i * PTE_LEVEL_MULT); walk_pte_level()
278 note_page(m, st, prot, 4); walk_pte_level()
285 static void walk_pmd_level(struct seq_file *m, struct pg_state *st, pud_t addr, walk_pmd_level() argument
293 st->current_address = normalize_addr(P + i * PMD_LEVEL_MULT); walk_pmd_level()
298 note_page(m, st, __pgprot(prot), 3); walk_pmd_level()
300 walk_pte_level(m, st, *start, walk_pmd_level()
303 note_page(m, st, __pgprot(0), 3); walk_pmd_level()
316 static void walk_pud_level(struct seq_file *m, struct pg_state *st, pgd_t addr, walk_pud_level() argument
325 st->current_address = normalize_addr(P + i * PUD_LEVEL_MULT); walk_pud_level()
330 note_page(m, st, __pgprot(prot), 2); walk_pud_level()
332 walk_pmd_level(m, st, *start, walk_pud_level()
335 note_page(m, st, __pgprot(0), 2); walk_pud_level()
355 struct pg_state st = {}; ptdump_walk_pgd_level() local
359 st.to_dmesg = true; ptdump_walk_pgd_level()
363 st.current_address = normalize_addr(i * PGD_LEVEL_MULT); ptdump_walk_pgd_level()
368 note_page(m, &st, __pgprot(prot), 1); ptdump_walk_pgd_level()
370 walk_pud_level(m, &st, *start, ptdump_walk_pgd_level()
373 note_page(m, &st, __pgprot(0), 1); ptdump_walk_pgd_level()
379 st.current_address = normalize_addr(PTRS_PER_PGD*PGD_LEVEL_MULT); ptdump_walk_pgd_level()
380 note_page(m, &st, __pgprot(0), 0); ptdump_walk_pgd_level()
/linux-4.1.27/drivers/iio/gyro/
H A Ditg3200_buffer.c51 struct itg3200 *st = iio_priv(indio_dev); itg3200_trigger_handler() local
54 int ret = itg3200_read_all_channels(st->i2c, buf); itg3200_trigger_handler()
111 struct itg3200 *st = iio_priv(indio_dev); itg3200_probe_trigger() local
113 st->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name, itg3200_probe_trigger()
115 if (!st->trig) itg3200_probe_trigger()
118 ret = request_irq(st->i2c->irq, itg3200_probe_trigger()
122 st->trig); itg3200_probe_trigger()
127 st->trig->dev.parent = &st->i2c->dev; itg3200_probe_trigger()
128 st->trig->ops = &itg3200_trigger_ops; itg3200_probe_trigger()
129 iio_trigger_set_drvdata(st->trig, indio_dev); itg3200_probe_trigger()
130 ret = iio_trigger_register(st->trig); itg3200_probe_trigger()
135 indio_dev->trig = iio_trigger_get(st->trig); itg3200_probe_trigger()
140 free_irq(st->i2c->irq, st->trig); itg3200_probe_trigger()
142 iio_trigger_free(st->trig); itg3200_probe_trigger()
148 struct itg3200 *st = iio_priv(indio_dev); itg3200_remove_trigger() local
150 iio_trigger_unregister(st->trig); itg3200_remove_trigger()
151 free_irq(st->i2c->irq, st->trig); itg3200_remove_trigger()
152 iio_trigger_free(st->trig); itg3200_remove_trigger()
H A Dadxrs450.c93 struct adxrs450_state *st = iio_priv(indio_dev); adxrs450_spi_read_reg_16() local
98 .tx_buf = &st->tx, adxrs450_spi_read_reg_16()
100 .len = sizeof(st->tx), adxrs450_spi_read_reg_16()
103 .rx_buf = &st->rx, adxrs450_spi_read_reg_16()
105 .len = sizeof(st->rx), adxrs450_spi_read_reg_16()
109 mutex_lock(&st->buf_lock); adxrs450_spi_read_reg_16()
115 st->tx = cpu_to_be32(tx); adxrs450_spi_read_reg_16()
116 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); adxrs450_spi_read_reg_16()
118 dev_err(&st->us->dev, "problem while reading 16 bit register 0x%02x\n", adxrs450_spi_read_reg_16()
123 *val = (be32_to_cpu(st->rx) >> 5) & 0xFFFF; adxrs450_spi_read_reg_16()
126 mutex_unlock(&st->buf_lock); adxrs450_spi_read_reg_16()
141 struct adxrs450_state *st = iio_priv(indio_dev); adxrs450_spi_write_reg_16() local
145 mutex_lock(&st->buf_lock); adxrs450_spi_write_reg_16()
151 st->tx = cpu_to_be32(tx); adxrs450_spi_write_reg_16()
152 ret = spi_write(st->us, &st->tx, sizeof(st->tx)); adxrs450_spi_write_reg_16()
154 dev_err(&st->us->dev, "problem while writing 16 bit register 0x%02x\n", adxrs450_spi_write_reg_16()
157 mutex_unlock(&st->buf_lock); adxrs450_spi_write_reg_16()
168 struct adxrs450_state *st = iio_priv(indio_dev); adxrs450_spi_sensor_data() local
172 .tx_buf = &st->tx, adxrs450_spi_sensor_data()
174 .len = sizeof(st->tx), adxrs450_spi_sensor_data()
177 .rx_buf = &st->rx, adxrs450_spi_sensor_data()
179 .len = sizeof(st->rx), adxrs450_spi_sensor_data()
183 mutex_lock(&st->buf_lock); adxrs450_spi_sensor_data()
184 st->tx = cpu_to_be32(ADXRS450_SENSOR_DATA); adxrs450_spi_sensor_data()
186 ret = spi_sync_transfer(st->us, xfers, ARRAY_SIZE(xfers)); adxrs450_spi_sensor_data()
188 dev_err(&st->us->dev, "Problem while reading sensor data\n"); adxrs450_spi_sensor_data()
192 *val = (be32_to_cpu(st->rx) >> 10) & 0xFFFF; adxrs450_spi_sensor_data()
195 mutex_unlock(&st->buf_lock); adxrs450_spi_sensor_data()
201 * @st: device instance specific data
205 static int adxrs450_spi_initial(struct adxrs450_state *st, adxrs450_spi_initial() argument
211 .tx_buf = &st->tx, adxrs450_spi_initial()
212 .rx_buf = &st->rx, adxrs450_spi_initial()
214 .len = sizeof(st->tx), adxrs450_spi_initial()
217 mutex_lock(&st->buf_lock); adxrs450_spi_initial()
221 st->tx = cpu_to_be32(tx); adxrs450_spi_initial()
222 ret = spi_sync_transfer(st->us, &xfers, 1); adxrs450_spi_initial()
224 dev_err(&st->us->dev, "Problem while reading initializing data\n"); adxrs450_spi_initial()
228 *val = be32_to_cpu(st->rx); adxrs450_spi_initial()
231 mutex_unlock(&st->buf_lock); adxrs450_spi_initial()
241 struct adxrs450_state *st = iio_priv(indio_dev); adxrs450_initial_setup() local
244 ret = adxrs450_spi_initial(st, &t, 1); adxrs450_initial_setup()
248 dev_warn(&st->us->dev, "The initial power on response is not correct! Restart without reset?\n"); adxrs450_initial_setup()
251 ret = adxrs450_spi_initial(st, &t, 0); adxrs450_initial_setup()
256 ret = adxrs450_spi_initial(st, &t, 0); adxrs450_initial_setup()
260 dev_err(&st->us->dev, "The second response is not correct!\n"); adxrs450_initial_setup()
264 ret = adxrs450_spi_initial(st, &t, 0); adxrs450_initial_setup()
268 dev_err(&st->us->dev, "The third response is not correct!\n"); adxrs450_initial_setup()
276 dev_err(&st->us->dev, "The device is not in normal status!\n"); adxrs450_initial_setup()
416 struct adxrs450_state *st; adxrs450_probe() local
420 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adxrs450_probe()
423 st = iio_priv(indio_dev); adxrs450_probe()
424 st->us = spi; adxrs450_probe()
425 mutex_init(&st->buf_lock); adxrs450_probe()
H A Dadis16130.c49 struct adis16130_state *st = iio_priv(indio_dev); adis16130_spi_read() local
51 .tx_buf = st->buf, adis16130_spi_read()
52 .rx_buf = st->buf, adis16130_spi_read()
56 mutex_lock(&st->buf_lock); adis16130_spi_read()
58 st->buf[0] = ADIS16130_CON_RD | reg_addr; adis16130_spi_read()
59 st->buf[1] = st->buf[2] = st->buf[3] = 0; adis16130_spi_read()
61 ret = spi_sync_transfer(st->us, &xfer, 1); adis16130_spi_read()
63 *val = (st->buf[1] << 16) | (st->buf[2] << 8) | st->buf[3]; adis16130_spi_read()
64 mutex_unlock(&st->buf_lock); adis16130_spi_read()
145 struct adis16130_state *st; adis16130_probe() local
149 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16130_probe()
152 st = iio_priv(indio_dev); adis16130_probe()
155 st->us = spi; adis16130_probe()
156 mutex_init(&st->buf_lock); adis16130_probe()
H A Dst_gyro_i2c.c6 * Denis Ciocca <denis.ciocca@st.com>
24 .compatible = "st,l3g4200d-gyro",
28 .compatible = "st,lsm330d-gyro",
32 .compatible = "st,lsm330dl-gyro",
36 .compatible = "st,lsm330dlc-gyro",
40 .compatible = "st,l3gd20-gyro",
44 .compatible = "st,l3g4is-gyro",
48 .compatible = "st,lsm330-gyro",
103 .name = "st-gyro-i2c",
112 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
H A Dadis16080.c53 struct adis16080_state *st = iio_priv(indio_dev); adis16080_read_sample() local
57 .tx_buf = &st->buf, adis16080_read_sample()
61 .rx_buf = &st->buf, adis16080_read_sample()
66 st->buf = cpu_to_be16(addr | ADIS16080_DIN_WRITE); adis16080_read_sample()
68 ret = spi_sync_transfer(st->us, t, ARRAY_SIZE(t)); adis16080_read_sample()
70 *val = sign_extend32(be16_to_cpu(st->buf), 11); adis16080_read_sample()
81 struct adis16080_state *st = iio_priv(indio_dev); adis16080_read_raw() local
93 *val = st->info->scale_val; adis16080_read_raw()
94 *val2 = st->info->scale_val2; adis16080_read_raw()
190 struct adis16080_state *st; adis16080_probe() local
194 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16080_probe()
197 st = iio_priv(indio_dev); adis16080_probe()
202 st->us = spi; adis16080_probe()
203 st->info = &adis16080_chip_info[id->driver_data]; adis16080_probe()
H A Dst_gyro_spi.c6 * Denis Ciocca <denis.ciocca@st.com>
64 .name = "st-gyro-spi",
72 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
H A Ditg3200_core.c38 struct itg3200 *st = iio_priv(indio_dev); itg3200_write_reg_8() local
40 return i2c_smbus_write_byte_data(st->i2c, 0x80 | reg_address, val); itg3200_write_reg_8()
46 struct itg3200 *st = iio_priv(indio_dev); itg3200_read_reg_8() local
49 ret = i2c_smbus_read_byte_data(st->i2c, reg_address); itg3200_read_reg_8()
59 struct itg3200 *st = iio_priv(indio_dev); itg3200_read_reg_s16() local
60 struct i2c_client *client = st->i2c; itg3200_read_reg_s16()
173 struct itg3200 *st = iio_priv(indio_dev); itg3200_reset() local
176 dev_dbg(&st->i2c->dev, "reset device"); itg3200_reset()
182 dev_err(&st->i2c->dev, "error resetting device"); itg3200_reset()
197 dev_err(&st->i2c->dev, "error init device"); itg3200_reset()
222 struct itg3200 *st = iio_priv(indio_dev); itg3200_initial_setup() local
235 dev_err(&st->i2c->dev, "invalid reg value 0x%02x", val); itg3200_initial_setup()
290 struct itg3200 *st; itg3200_probe() local
295 indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*st)); itg3200_probe()
299 st = iio_priv(indio_dev); itg3200_probe()
302 st->i2c = client; itg3200_probe()
357 struct itg3200 *st = iio_priv(indio_dev); itg3200_suspend() local
359 dev_dbg(&st->i2c->dev, "suspend device"); itg3200_suspend()
/linux-4.1.27/arch/arm/mm/
H A Ddump.c201 static void dump_prot(struct pg_state *st, const struct prot_bits *bits, size_t num) dump_prot() argument
208 if ((st->current_prot & bits->mask) == bits->val) dump_prot()
214 seq_printf(st->seq, " %s", s); dump_prot()
218 static void note_page(struct pg_state *st, unsigned long addr, unsigned level, u64 val) note_page() argument
223 if (!st->level) { note_page()
224 st->level = level; note_page()
225 st->current_prot = prot; note_page()
226 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); note_page()
227 } else if (prot != st->current_prot || level != st->level || note_page()
228 addr >= st->marker[1].start_address) { note_page()
232 if (st->current_prot) { note_page()
233 seq_printf(st->seq, "0x%08lx-0x%08lx ", note_page()
234 st->start_address, addr); note_page()
236 delta = (addr - st->start_address) >> 10; note_page()
241 seq_printf(st->seq, "%9lu%c", delta, *unit); note_page()
242 if (pg_level[st->level].bits) note_page()
243 dump_prot(st, pg_level[st->level].bits, pg_level[st->level].num); note_page()
244 seq_printf(st->seq, "\n"); note_page()
247 if (addr >= st->marker[1].start_address) { note_page()
248 st->marker++; note_page()
249 seq_printf(st->seq, "---[ %s ]---\n", st->marker->name); note_page()
251 st->start_address = addr; note_page()
252 st->current_prot = prot; note_page()
253 st->level = level; note_page()
257 static void walk_pte(struct pg_state *st, pmd_t *pmd, unsigned long start) walk_pte() argument
265 note_page(st, addr, 4, pte_val(*pte)); walk_pte()
269 static void walk_pmd(struct pg_state *st, pud_t *pud, unsigned long start) walk_pmd() argument
278 note_page(st, addr, 3, pmd_val(*pmd)); walk_pmd()
280 walk_pte(st, pmd, addr); walk_pmd()
283 note_page(st, addr + SECTION_SIZE, 3, pmd_val(pmd[1])); walk_pmd()
287 static void walk_pud(struct pg_state *st, pgd_t *pgd, unsigned long start) walk_pud() argument
296 walk_pmd(st, pud, addr); walk_pud()
298 note_page(st, addr, 2, pud_val(*pud)); walk_pud()
306 struct pg_state st; walk_pgd() local
310 memset(&st, 0, sizeof(st)); walk_pgd()
311 st.seq = m; walk_pgd()
312 st.marker = address_markers; walk_pgd()
317 walk_pud(&st, pgd, addr); walk_pgd()
319 note_page(&st, addr, 1, pgd_val(*pgd)); walk_pgd()
323 note_page(&st, 0, 0, 0); walk_pgd()
/linux-4.1.27/drivers/iio/imu/
H A Dadis16400_buffer.c19 struct adis16400_state *st = iio_priv(indio_dev); adis16400_update_scan_mode() local
20 struct adis *adis = &st->adis; adis16400_update_scan_mode()
24 if (st->variant->flags & ADIS16400_NO_BURST) adis16400_update_scan_mode()
32 if (st->variant->flags & ADIS16400_BURST_DIAG_STAT) adis16400_update_scan_mode()
65 struct adis16400_state *st = iio_priv(indio_dev); adis16400_trigger_handler() local
66 struct adis *adis = &st->adis; adis16400_trigger_handler()
67 u32 old_speed_hz = st->adis.spi->max_speed_hz; adis16400_trigger_handler()
74 if (!(st->variant->flags & ADIS16400_NO_BURST) && adis16400_trigger_handler()
75 st->adis.spi->max_speed_hz > ADIS16400_SPI_BURST) { adis16400_trigger_handler()
76 st->adis.spi->max_speed_hz = ADIS16400_SPI_BURST; adis16400_trigger_handler()
77 spi_setup(st->adis.spi); adis16400_trigger_handler()
84 if (!(st->variant->flags & ADIS16400_NO_BURST)) { adis16400_trigger_handler()
85 st->adis.spi->max_speed_hz = old_speed_hz; adis16400_trigger_handler()
86 spi_setup(st->adis.spi); adis16400_trigger_handler()
89 if (st->variant->flags & ADIS16400_BURST_DIAG_STAT) adis16400_trigger_handler()
H A Dadis16400_core.c42 struct adis16400_state *st = file->private_data; adis16400_show_serial_number() local
48 ret = adis_read_reg_16(&st->adis, ADIS16334_LOT_ID1, &lot1); adis16400_show_serial_number()
52 ret = adis_read_reg_16(&st->adis, ADIS16334_LOT_ID2, &lot2); adis16400_show_serial_number()
56 ret = adis_read_reg_16(&st->adis, ADIS16334_SERIAL_NUMBER, adis16400_show_serial_number()
76 struct adis16400_state *st = arg; adis16400_show_product_id() local
80 ret = adis_read_reg_16(&st->adis, ADIS16400_PRODUCT_ID, &prod_id); adis16400_show_product_id()
93 struct adis16400_state *st = arg; adis16400_show_flash_count() local
97 ret = adis_read_reg_16(&st->adis, ADIS16400_FLASH_CNT, &flash_count); adis16400_show_flash_count()
110 struct adis16400_state *st = iio_priv(indio_dev); adis16400_debugfs_init() local
112 if (st->variant->flags & ADIS16400_HAS_SERIAL_NUMBER) adis16400_debugfs_init()
114 indio_dev->debugfs_dentry, st, adis16400_debugfs_init()
116 if (st->variant->flags & ADIS16400_HAS_PROD_ID) adis16400_debugfs_init()
118 indio_dev->debugfs_dentry, st, adis16400_debugfs_init()
121 st, &adis16400_flash_count_fops); adis16400_debugfs_init()
146 static int adis16334_get_freq(struct adis16400_state *st) adis16334_get_freq() argument
151 ret = adis_read_reg_16(&st->adis, ADIS16400_SMPL_PRD, &t); adis16334_get_freq()
160 static int adis16334_set_freq(struct adis16400_state *st, unsigned int freq) adis16334_set_freq() argument
175 return adis_write_reg_16(&st->adis, ADIS16400_SMPL_PRD, t); adis16334_set_freq()
178 static int adis16400_get_freq(struct adis16400_state *st) adis16400_get_freq() argument
183 ret = adis_read_reg_16(&st->adis, ADIS16400_SMPL_PRD, &t); adis16400_get_freq()
193 static int adis16400_set_freq(struct adis16400_state *st, unsigned int freq) adis16400_set_freq() argument
211 st->adis.spi->max_speed_hz = ADIS16400_SPI_SLOW; adis16400_set_freq()
213 st->adis.spi->max_speed_hz = ADIS16400_SPI_FAST; adis16400_set_freq()
215 return adis_write_reg_8(&st->adis, ADIS16400_SMPL_PRD, val); adis16400_set_freq()
231 struct adis16400_state *st = iio_priv(indio_dev); adis16400_set_filter() local
240 ret = adis_read_reg_16(&st->adis, ADIS16400_SENS_AVG, &val16); adis16400_set_filter()
244 ret = adis_write_reg_16(&st->adis, ADIS16400_SENS_AVG, adis16400_set_filter()
252 struct adis16400_state *st = iio_priv(indio_dev); adis16400_stop_device() local
255 ret = adis_write_reg_16(&st->adis, ADIS16400_SLP_CNT, adis16400_stop_device()
266 struct adis16400_state *st = iio_priv(indio_dev); adis16400_initial_setup() local
272 if (st->variant->flags & ADIS16400_HAS_SLOW_MODE) adis16400_initial_setup()
273 st->adis.spi->max_speed_hz = ADIS16400_SPI_SLOW; adis16400_initial_setup()
275 st->adis.spi->max_speed_hz = ADIS16400_SPI_FAST; adis16400_initial_setup()
276 st->adis.spi->mode = SPI_MODE_3; adis16400_initial_setup()
277 spi_setup(st->adis.spi); adis16400_initial_setup()
279 ret = adis_initial_startup(&st->adis); adis16400_initial_setup()
283 if (st->variant->flags & ADIS16400_HAS_PROD_ID) { adis16400_initial_setup()
284 ret = adis_read_reg_16(&st->adis, adis16400_initial_setup()
297 st->adis.spi->chip_select, st->adis.spi->irq); adis16400_initial_setup()
300 if (st->variant->flags & ADIS16400_HAS_SLOW_MODE) { adis16400_initial_setup()
301 ret = adis_read_reg_16(&st->adis, ADIS16400_SMPL_PRD, &smp_prd); adis16400_initial_setup()
306 st->adis.spi->max_speed_hz = ADIS16400_SPI_FAST; adis16400_initial_setup()
307 spi_setup(st->adis.spi); adis16400_initial_setup()
327 struct adis16400_state *st = iio_priv(indio_dev); adis16400_write_raw() local
333 ret = adis_write_reg_16(&st->adis, adis16400_write_raw()
343 st->filt_int = val; adis16400_write_raw()
345 sps = st->variant->get_freq(st); adis16400_write_raw()
362 ret = st->variant->set_freq(st, sps); adis16400_write_raw()
373 struct adis16400_state *st = iio_priv(indio_dev); adis16400_read_raw() local
384 *val2 = st->variant->gyro_scale_micro; adis16400_read_raw()
398 *val2 = st->variant->accel_scale_micro; adis16400_read_raw()
405 *val = st->variant->temp_scale_nano / 1000000; adis16400_read_raw()
406 *val2 = (st->variant->temp_scale_nano % 1000000); adis16400_read_raw()
418 ret = adis_read_reg_16(&st->adis, adis16400_read_raw()
428 *val = st->variant->temp_offset; adis16400_read_raw()
433 ret = adis_read_reg_16(&st->adis, adis16400_read_raw()
440 ret = st->variant->get_freq(st); adis16400_read_raw()
451 ret = st->variant->get_freq(st); adis16400_read_raw()
847 static void adis16400_setup_chan_mask(struct adis16400_state *st) adis16400_setup_chan_mask() argument
849 const struct adis16400_chip_info *chip_info = st->variant; adis16400_setup_chan_mask()
857 st->avail_scan_mask[0] |= BIT(ch->scan_index); adis16400_setup_chan_mask()
863 struct adis16400_state *st; adis16400_probe() local
867 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16400_probe()
871 st = iio_priv(indio_dev); adis16400_probe()
876 st->variant = &adis16400_chips[spi_get_device_id(spi)->driver_data]; adis16400_probe()
879 indio_dev->channels = st->variant->channels; adis16400_probe()
880 indio_dev->num_channels = st->variant->num_channels; adis16400_probe()
884 if (!(st->variant->flags & ADIS16400_NO_BURST)) { adis16400_probe()
885 adis16400_setup_chan_mask(st); adis16400_probe()
886 indio_dev->available_scan_masks = st->avail_scan_mask; adis16400_probe()
889 ret = adis_init(&st->adis, indio_dev, spi, &adis16400_data); adis16400_probe()
893 ret = adis_setup_buffer_and_trigger(&st->adis, indio_dev, adis16400_probe()
910 adis_cleanup_buffer_and_trigger(&st->adis, indio_dev); adis16400_probe()
917 struct adis16400_state *st = iio_priv(indio_dev); adis16400_remove() local
922 adis_cleanup_buffer_and_trigger(&st->adis, indio_dev); adis16400_remove()
H A Dadis16480.c266 struct adis16480 *st = iio_priv(indio_dev); adis16480_set_freq() local
280 return adis_write_reg_16(&st->adis, ADIS16480_REG_DEC_RATE, t); adis16480_set_freq()
285 struct adis16480 *st = iio_priv(indio_dev); adis16480_get_freq() local
290 ret = adis_read_reg_16(&st->adis, ADIS16480_REG_DEC_RATE, &t); adis16480_get_freq()
341 struct adis16480 *st = iio_priv(indio_dev); adis16480_set_calibbias() local
348 return adis_write_reg_16(&st->adis, reg, bias); adis16480_set_calibbias()
351 return adis_write_reg_32(&st->adis, reg, bias); adis16480_set_calibbias()
363 struct adis16480 *st = iio_priv(indio_dev); adis16480_get_calibbias() local
371 ret = adis_read_reg_16(&st->adis, reg, &val16); adis16480_get_calibbias()
376 ret = adis_read_reg_32(&st->adis, reg, &val32); adis16480_get_calibbias()
393 struct adis16480 *st = iio_priv(indio_dev); adis16480_set_calibscale() local
398 return adis_write_reg_16(&st->adis, reg, scale); adis16480_set_calibscale()
405 struct adis16480 *st = iio_priv(indio_dev); adis16480_get_calibscale() local
409 ret = adis_read_reg_16(&st->adis, reg, &val16); adis16480_get_calibscale()
439 struct adis16480 *st = iio_priv(indio_dev); adis16480_get_filter_freq() local
448 ret = adis_read_reg_16(&st->adis, reg, &val); adis16480_get_filter_freq()
463 struct adis16480 *st = iio_priv(indio_dev); adis16480_set_filter_freq() local
474 ret = adis_read_reg_16(&st->adis, reg, &val); adis16480_set_filter_freq()
498 return adis_write_reg_16(&st->adis, reg, val); adis16480_set_filter_freq()
504 struct adis16480 *st = iio_priv(indio_dev); adis16480_read_raw() local
512 *val = st->chip_info->gyro_max_scale; adis16480_read_raw()
513 *val2 = st->chip_info->gyro_max_val; adis16480_read_raw()
516 *val = st->chip_info->accel_max_scale; adis16480_read_raw()
517 *val2 = st->chip_info->accel_max_val; adis16480_read_raw()
728 struct adis16480 *st = iio_priv(indio_dev); adis16480_stop_device() local
731 ret = adis_write_reg_16(&st->adis, ADIS16480_REG_SLP_CNT, BIT(9)); adis16480_stop_device()
747 struct adis16480 *st = iio_priv(indio_dev); adis16480_initial_setup() local
752 adis_reset(&st->adis); adis16480_initial_setup()
755 ret = adis_write_reg_16(&st->adis, ADIS16480_REG_GLOB_CMD, BIT(1)); adis16480_initial_setup()
760 ret = adis_check_status(&st->adis); adis16480_initial_setup()
764 ret = adis_read_reg_16(&st->adis, ADIS16480_REG_PROD_ID, &prod_id); adis16480_initial_setup()
828 struct adis16480 *st; adis16480_probe() local
831 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16480_probe()
837 st = iio_priv(indio_dev); adis16480_probe()
839 st->chip_info = &adis16480_chip_info[id->driver_data]; adis16480_probe()
842 indio_dev->channels = st->chip_info->channels; adis16480_probe()
843 indio_dev->num_channels = st->chip_info->num_channels; adis16480_probe()
847 ret = adis_init(&st->adis, indio_dev, spi, &adis16480_data); adis16480_probe()
851 ret = adis_setup_buffer_and_trigger(&st->adis, indio_dev, NULL); adis16480_probe()
870 adis_cleanup_buffer_and_trigger(&st->adis, indio_dev); adis16480_probe()
877 struct adis16480 *st = iio_priv(indio_dev); adis16480_remove() local
882 adis_cleanup_buffer_and_trigger(&st->adis, indio_dev); adis16480_remove()
/linux-4.1.27/arch/sh/lib64/
H A Dmemset.S59 st.q r25, 8, r3
60 st.q r20, -8, r3
63 st.q r25, 16, r3
64 st.q r20, -16, r3
66 st.q r25, 24, r3
67 st.q r20, -24, r3
76 st.q r25, 8, r3
77 st.q r25, 16, r3
78 st.q r25, 24, r3
79 st.q r25, 32, r3
83 st.q r20, -40, r3
84 st.q r20, -32, r3
85 st.q r20, -24, r3
86 st.q r20, -16, r3
87 st.q r20, -8, r3
/linux-4.1.27/arch/sh/kernel/cpu/sh5/
H A Dswitchto.S49 st.l r15, 0, r18 ! save link reg
50 st.l r15, 4, r14 ! save fp
66 st.q r0, ( 9*8), r9
67 st.q r0, (10*8), r10
68 st.q r0, (11*8), r11
69 st.q r0, (12*8), r12
70 st.q r0, (13*8), r13
71 st.q r0, (14*8), r14 ! for unwind, want to look as though we took a trap at
74 st.q r0, (16*8), r16
76 st.q r0, (24*8), r24
77 st.q r0, (25*8), r25
78 st.q r0, (26*8), r26
79 st.q r0, (27*8), r27
80 st.q r0, (28*8), r28
81 st.q r0, (29*8), r29
82 st.q r0, (30*8), r30
83 st.q r0, (31*8), r31
84 st.q r0, (32*8), r32
85 st.q r0, (33*8), r33
86 st.q r0, (34*8), r34
87 st.q r0, (35*8), r35
89 st.q r0, (44*8), r44
90 st.q r0, (45*8), r45
91 st.q r0, (46*8), r46
92 st.q r0, (47*8), r47
93 st.q r0, (48*8), r48
94 st.q r0, (49*8), r49
95 st.q r0, (50*8), r50
96 st.q r0, (51*8), r51
97 st.q r0, (52*8), r52
98 st.q r0, (53*8), r53
99 st.q r0, (54*8), r54
100 st.q r0, (55*8), r55
101 st.q r0, (56*8), r56
102 st.q r0, (57*8), r57
103 st.q r0, (58*8), r58
104 st.q r0, (59*8), r59
114 st.q r8, (5*8), r45
115 st.q r8, (6*8), r46
116 st.q r8, (7*8), r47
120 st.l r3, 0, r15 ! prev->thread.sp
121 st.l r3, 8, r1 ! prev->thread.kregs
122 st.l r3, 4, r9 ! prev->thread.pc
123 st.q r1, 0, r9 ! save prev->thread.pc into pt_regs->pc
H A Dentry.S261 st.q SP, SAVED_R2, r2
262 st.q SP, SAVED_R3, r3
263 st.q SP, SAVED_R4, r4
264 st.q SP, SAVED_R5, r5
265 st.q SP, SAVED_R6, r6
266 st.q SP, SAVED_R18, r18
268 st.q SP, SAVED_TR0, r3
302 st.q SP, TLB_SAVED_R0 , r0
303 st.q SP, TLB_SAVED_R1 , r1
304 st.q SP, SAVED_R2 , r2
305 st.q SP, SAVED_R3 , r3
306 st.q SP, SAVED_R4 , r4
307 st.q SP, SAVED_R5 , r5
308 st.q SP, SAVED_R6 , r6
309 st.q SP, SAVED_R18, r18
313 st.q SP, TLB_SAVED_R25, r25
319 st.q SP, SAVED_TR0 , r2
320 st.q SP, TLB_SAVED_TR1 , r3
321 st.q SP, TLB_SAVED_TR2 , r4
322 st.q SP, TLB_SAVED_TR3 , r5
323 st.q SP, TLB_SAVED_TR4 , r18
423 st.q SP, SAVED_R2, r2
424 st.q SP, SAVED_R3, r3
425 st.q SP, SAVED_R4, r4
426 st.q SP, SAVED_R5, r5
427 st.q SP, SAVED_R6, r6
428 st.q SP, SAVED_R18, r18
430 st.q SP, SAVED_TR0, r3
458 st.q SP, 0, r0
459 st.q SP, 8, r1
461 st.q SP, 32, r0
523 st.q SP, 0, r0
524 st.q SP, 8, r1
526 st.q SP, 16, r0
528 st.q SP, 24, r0
556 st.q SP, SAVED_R2, r2
557 st.q SP, SAVED_R3, r3
558 st.q SP, SAVED_R4, r4
559 st.q SP, SAVED_R5, r5
560 st.q SP, SAVED_R6, r6
561 st.q SP, SAVED_R18, r18
563 st.q SP, SAVED_TR0, r3
589 st.q SP, SAVED_R2, r2
590 st.q SP, SAVED_R3, r3
591 st.q SP, SAVED_R4, r4
592 st.q SP, SAVED_R5, r5
593 st.q SP, SAVED_R6, r6
594 st.q SP, SAVED_R18, r18
596 st.q SP, SAVED_TR0, r3
706 st.q SP, FRAME_R(2), r6
708 st.q SP, FRAME_R(3), r18
710 st.q SP, FRAME_R(4), r6
712 st.q SP, FRAME_R(5), r18
714 st.q SP, FRAME_R(6), r6
716 st.q SP, FRAME_R(18), r18
717 st.q SP, FRAME_T(0), r6
723 st.q SP, FRAME_R(0), r0
724 st.q SP, FRAME_R(1), r1
725 st.q SP, FRAME_R(7), r7
726 st.q SP, FRAME_R(8), r8
727 st.q SP, FRAME_R(9), r9
728 st.q SP, FRAME_R(10), r10
729 st.q SP, FRAME_R(11), r11
730 st.q SP, FRAME_R(12), r12
731 st.q SP, FRAME_R(13), r13
732 st.q SP, FRAME_R(14), r14
735 st.q SP, FRAME_R(15), r6
737 st.q SP, FRAME_R(16), r16
738 st.q SP, FRAME_R(17), r17
740 st.q SP, FRAME_R(19), r19
741 st.q SP, FRAME_R(20), r20
742 st.q SP, FRAME_R(21), r21
743 st.q SP, FRAME_R(22), r22
744 st.q SP, FRAME_R(23), r23
745 st.q SP, FRAME_R(24), r24
746 st.q SP, FRAME_R(25), r25
747 st.q SP, FRAME_R(26), r26
748 st.q SP, FRAME_R(27), r27
749 st.q SP, FRAME_R(28), r28
750 st.q SP, FRAME_R(29), r29
751 st.q SP, FRAME_R(30), r30
752 st.q SP, FRAME_R(31), r31
753 st.q SP, FRAME_R(32), r32
754 st.q SP, FRAME_R(33), r33
755 st.q SP, FRAME_R(34), r34
756 st.q SP, FRAME_R(35), r35
757 st.q SP, FRAME_R(36), r36
758 st.q SP, FRAME_R(37), r37
759 st.q SP, FRAME_R(38), r38
760 st.q SP, FRAME_R(39), r39
761 st.q SP, FRAME_R(40), r40
762 st.q SP, FRAME_R(41), r41
763 st.q SP, FRAME_R(42), r42
764 st.q SP, FRAME_R(43), r43
765 st.q SP, FRAME_R(44), r44
766 st.q SP, FRAME_R(45), r45
767 st.q SP, FRAME_R(46), r46
768 st.q SP, FRAME_R(47), r47
769 st.q SP, FRAME_R(48), r48
770 st.q SP, FRAME_R(49), r49
771 st.q SP, FRAME_R(50), r50
772 st.q SP, FRAME_R(51), r51
773 st.q SP, FRAME_R(52), r52
774 st.q SP, FRAME_R(53), r53
775 st.q SP, FRAME_R(54), r54
776 st.q SP, FRAME_R(55), r55
777 st.q SP, FRAME_R(56), r56
778 st.q SP, FRAME_R(57), r57
779 st.q SP, FRAME_R(58), r58
780 st.q SP, FRAME_R(59), r59
781 st.q SP, FRAME_R(60), r60
782 st.q SP, FRAME_R(61), r61
783 st.q SP, FRAME_R(62), r62
789 st.q SP, FRAME_S(FSSR), r61
791 st.q SP, FRAME_S(FSPC), r62
793 st.q SP, FRAME_S(FSYSCALL_ID), r62
797 st.q SP, FRAME_T(1), r6
799 st.q SP, FRAME_T(2), r6
801 st.q SP, FRAME_T(3), r6
803 st.q SP, FRAME_T(4), r6
805 st.q SP, FRAME_T(5), r6
807 st.q SP, FRAME_T(6), r6
809 st.q SP, FRAME_T(7), r6
1189 st.q r3, FRAME_S(FSYSCALL_ID), r5 /* ID (0x1yzzzz) -> stack */
1204 st.q SP, FRAME_R(9), r2 /* Expecting SP back to BASIC frame */
1207 st.q SP, FRAME_S(FSPC), r2
1227 st.q SP, FRAME_S(FSPC), r2
1246 st.q SP, FRAME_S(FSPC), r2
1269 st.q SP, FRAME_R(2), r2
1301 st.q SP, FRAME_R(9), r2 /* Save return value */
1311 st.q SP, FRAME_S(FSPC), r2
1455 st.q r2, 0, r3
1488 * move >1 byte at a time using unaligned ld/st instructions, and can
1506 st.q SP, 0, r2
1507 st.q SP, 8, r3
1508 st.q SP, 16, r4
1509 st.q SP, 24, r35 ! r35 is callee-save
1578 st.b r2, 0, ZERO /* Fault address */
1608 st.b r4, 0, r5
1623 st.w r4, 0, r5
1638 st.l r4, 0, r5
1653 st.q r4, 0, r5
1677 st.b r3, 0, r4
1691 st.w r3, 0, r4
1705 st.l r3, 0, r4
1719 st.q r3, 0, r4
1742 st.q r0, 0x000, r1
1744 st.q r0, 0x008, r1
1745 st.q r0, 0x010, r2
1746 st.q r0, 0x018, r3
1747 st.q r0, 0x020, r4
1748 st.q r0, 0x028, r5
1749 st.q r0, 0x030, r6
1750 st.q r0, 0x038, r7
1751 st.q r0, 0x040, r8
1752 st.q r0, 0x048, r9
1753 st.q r0, 0x050, r10
1754 st.q r0, 0x058, r11
1755 st.q r0, 0x060, r12
1756 st.q r0, 0x068, r13
1757 st.q r0, 0x070, r14
1759 st.q r0, 0x078, r14
1760 st.q r0, 0x080, r16
1761 st.q r0, 0x088, r17
1762 st.q r0, 0x090, r18
1763 st.q r0, 0x098, r19
1764 st.q r0, 0x0a0, r20
1765 st.q r0, 0x0a8, r21
1766 st.q r0, 0x0b0, r22
1767 st.q r0, 0x0b8, r23
1768 st.q r0, 0x0c0, r24
1769 st.q r0, 0x0c8, r25
1770 st.q r0, 0x0d0, r26
1771 st.q r0, 0x0d8, r27
1772 st.q r0, 0x0e0, r28
1773 st.q r0, 0x0e8, r29
1774 st.q r0, 0x0f0, r30
1775 st.q r0, 0x0f8, r31
1776 st.q r0, 0x100, r32
1777 st.q r0, 0x108, r33
1778 st.q r0, 0x110, r34
1779 st.q r0, 0x118, r35
1780 st.q r0, 0x120, r36
1781 st.q r0, 0x128, r37
1782 st.q r0, 0x130, r38
1783 st.q r0, 0x138, r39
1784 st.q r0, 0x140, r40
1785 st.q r0, 0x148, r41
1786 st.q r0, 0x150, r42
1787 st.q r0, 0x158, r43
1788 st.q r0, 0x160, r44
1789 st.q r0, 0x168, r45
1790 st.q r0, 0x170, r46
1791 st.q r0, 0x178, r47
1792 st.q r0, 0x180, r48
1793 st.q r0, 0x188, r49
1794 st.q r0, 0x190, r50
1795 st.q r0, 0x198, r51
1796 st.q r0, 0x1a0, r52
1797 st.q r0, 0x1a8, r53
1798 st.q r0, 0x1b0, r54
1799 st.q r0, 0x1b8, r55
1800 st.q r0, 0x1c0, r56
1801 st.q r0, 0x1c8, r57
1802 st.q r0, 0x1d0, r58
1803 st.q r0, 0x1d8, r59
1804 st.q r0, 0x1e0, r60
1805 st.q r0, 0x1e8, r61
1806 st.q r0, 0x1f0, r62
1807 st.q r0, 0x1f8, r63 ! bogus, but for consistency's sake...
1810 st.q r0, 0x200, r1
1812 st.q r0, 0x208, r1
1814 st.q r0, 0x210, r1
1816 st.q r0, 0x218, r1
1818 st.q r0, 0x220, r1
1820 st.q r0, 0x228, r1
1822 st.q r0, 0x230, r1
1824 st.q r0, 0x238, r1
1841 st.q r0, 0x240, r1
1842 st.q r0, 0x248, r2
1843 st.q r0, 0x250, r3
1844 st.q r0, 0x258, r4
1845 st.q r0, 0x260, r5
1846 st.q r0, 0x268, r6
1847 st.q r0, 0x270, r7
1848 st.q r0, 0x278, r8
1849 st.q r0, 0x280, r9
1850 st.q r0, 0x288, r10
1851 st.q r0, 0x290, r11
1852 st.q r0, 0x298, r12
1853 st.q r0, 0x2a0, r13
1854 st.q r0, 0x2a8, r14
1952 st.q SP, 0, r28
1953 st.q SP, 8, r29
1954 st.q SP, 16, r30
/linux-4.1.27/drivers/hwmon/
H A Diio_hwmon.c63 struct iio_hwmon_state *st; iio_hwmon_probe() local
78 st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL); iio_hwmon_probe()
79 if (st == NULL) { iio_hwmon_probe()
84 st->channels = channels; iio_hwmon_probe()
87 while (st->channels[st->num_channels].indio_dev) iio_hwmon_probe()
88 st->num_channels++; iio_hwmon_probe()
90 st->attrs = devm_kzalloc(dev, iio_hwmon_probe()
91 sizeof(*st->attrs) * (st->num_channels + 1), iio_hwmon_probe()
93 if (st->attrs == NULL) { iio_hwmon_probe()
98 for (i = 0; i < st->num_channels; i++) { iio_hwmon_probe()
106 ret = iio_get_channel_type(&st->channels[i], &type); iio_hwmon_probe()
142 st->attrs[i] = &a->dev_attr.attr; iio_hwmon_probe()
145 st->attr_group.attrs = st->attrs; iio_hwmon_probe()
146 st->groups[0] = &st->attr_group; iio_hwmon_probe()
147 st->hwmon_dev = hwmon_device_register_with_groups(dev, name, st, iio_hwmon_probe()
148 st->groups); iio_hwmon_probe()
149 if (IS_ERR(st->hwmon_dev)) { iio_hwmon_probe()
150 ret = PTR_ERR(st->hwmon_dev); iio_hwmon_probe()
153 platform_set_drvdata(pdev, st); iio_hwmon_probe()
163 struct iio_hwmon_state *st = platform_get_drvdata(pdev); iio_hwmon_remove() local
165 hwmon_device_unregister(st->hwmon_dev); iio_hwmon_remove()
166 iio_channel_release_all(st->channels); iio_hwmon_remove()
/linux-4.1.27/drivers/spi/
H A Dspi-tle62x0.c41 static inline int tle62x0_write(struct tle62x0_state *st) tle62x0_write() argument
43 unsigned char *buff = st->tx_buff; tle62x0_write()
44 unsigned int gpio_state = st->gpio_state; tle62x0_write()
48 if (st->nr_gpio == 16) { tle62x0_write()
55 dev_dbg(&st->us->dev, "buff %3ph\n", buff); tle62x0_write()
57 return spi_write(st->us, buff, (st->nr_gpio == 16) ? 3 : 2); tle62x0_write()
60 static inline int tle62x0_read(struct tle62x0_state *st) tle62x0_read() argument
62 unsigned char *txbuff = st->tx_buff; tle62x0_read()
65 .rx_buf = st->rx_buff, tle62x0_read()
66 .len = (st->nr_gpio * 2) / 8, tle62x0_read()
78 return spi_sync(st->us, &msg); tle62x0_read()
102 struct tle62x0_state *st = dev_get_drvdata(dev); tle62x0_status_show() local
104 unsigned char *buff = st->rx_buff; tle62x0_status_show()
109 mutex_lock(&st->lock); tle62x0_status_show()
110 ret = tle62x0_read(st); tle62x0_status_show()
113 mutex_unlock(&st->lock); tle62x0_status_show()
117 for (ptr = 0; ptr < (st->nr_gpio * 2)/8; ptr += 1) { tle62x0_status_show()
124 for (ptr = 0; ptr < st->nr_gpio; ptr++) { tle62x0_status_show()
130 mutex_unlock(&st->lock); tle62x0_status_show()
139 struct tle62x0_state *st = dev_get_drvdata(dev); tle62x0_gpio_show() local
143 mutex_lock(&st->lock); tle62x0_gpio_show()
144 value = (st->gpio_state >> gpio_num) & 1; tle62x0_gpio_show()
145 mutex_unlock(&st->lock); tle62x0_gpio_show()
154 struct tle62x0_state *st = dev_get_drvdata(dev); tle62x0_gpio_store() local
165 mutex_lock(&st->lock); tle62x0_gpio_store()
168 st->gpio_state |= 1 << gpio_num; tle62x0_gpio_store()
170 st->gpio_state &= ~(1 << gpio_num); tle62x0_gpio_store()
172 tle62x0_write(st); tle62x0_gpio_store()
173 mutex_unlock(&st->lock); tle62x0_gpio_store()
244 struct tle62x0_state *st; tle62x0_probe() local
255 st = kzalloc(sizeof(struct tle62x0_state), GFP_KERNEL); tle62x0_probe()
256 if (st == NULL) tle62x0_probe()
259 st->us = spi; tle62x0_probe()
260 st->nr_gpio = pdata->gpio_count; tle62x0_probe()
261 st->gpio_state = pdata->init_state; tle62x0_probe()
263 mutex_init(&st->lock); tle62x0_probe()
279 /* tle62x0_write(st); */ tle62x0_probe()
280 spi_set_drvdata(spi, st); tle62x0_probe()
290 kfree(st); tle62x0_probe()
296 struct tle62x0_state *st = spi_get_drvdata(spi); tle62x0_remove() local
299 for (ptr = 0; ptr < st->nr_gpio; ptr++) tle62x0_remove()
303 kfree(st); tle62x0_remove()
/linux-4.1.27/drivers/iio/proximity/
H A Das3935.c86 static int as3935_read(struct as3935_state *st, unsigned int reg, int *val) as3935_read() argument
92 ret = spi_w8r8(st->spi, cmd); as3935_read()
100 static int as3935_write(struct as3935_state *st, as3935_write() argument
104 u8 *buf = st->buf; as3935_write()
109 return spi_write(st->spi, buf, 2); as3935_write()
116 struct as3935_state *st = iio_priv(dev_to_iio_dev(dev)); as3935_sensor_sensitivity_show() local
119 ret = as3935_read(st, AS3935_AFE_GAIN, &val); as3935_sensor_sensitivity_show()
131 struct as3935_state *st = iio_priv(dev_to_iio_dev(dev)); as3935_sensor_sensitivity_store() local
142 as3935_write(st, AS3935_AFE_GAIN, val << 1); as3935_sensor_sensitivity_store()
166 struct as3935_state *st = iio_priv(indio_dev); as3935_read_raw() local
174 ret = as3935_read(st, AS3935_DATA, val); as3935_read_raw()
203 struct as3935_state *st = iio_priv(indio_dev); as3935_trigger_handler() local
206 ret = as3935_read(st, AS3935_DATA, &val); as3935_trigger_handler()
225 struct as3935_state *st; as3935_event_work() local
228 st = container_of(work, struct as3935_state, work.work); as3935_event_work()
230 as3935_read(st, AS3935_INT, &val); as3935_event_work()
235 iio_trigger_poll(st->trig); as3935_event_work()
238 dev_warn(&st->spi->dev, "noise level is too high"); as3935_event_work()
246 struct as3935_state *st = iio_priv(indio_dev); as3935_interrupt_handler() local
253 schedule_delayed_work(&st->work, msecs_to_jiffies(3)); as3935_interrupt_handler()
258 static void calibrate_as3935(struct as3935_state *st) calibrate_as3935() argument
260 mutex_lock(&st->lock); calibrate_as3935()
263 as3935_write(st, AS3935_INT, BIT(5)); calibrate_as3935()
265 as3935_write(st, AS3935_CALIBRATE, 0x96); calibrate_as3935()
266 as3935_write(st, AS3935_TUNE_CAP, calibrate_as3935()
267 BIT(5) | (st->tune_cap / TUNE_CAP_DIV)); calibrate_as3935()
270 as3935_write(st, AS3935_TUNE_CAP, (st->tune_cap / TUNE_CAP_DIV)); calibrate_as3935()
272 mutex_unlock(&st->lock); calibrate_as3935()
279 struct as3935_state *st = iio_priv(indio_dev); as3935_suspend() local
282 mutex_lock(&st->lock); as3935_suspend()
283 ret = as3935_read(st, AS3935_AFE_GAIN, &val); as3935_suspend()
288 ret = as3935_write(st, AS3935_AFE_GAIN, val); as3935_suspend()
291 mutex_unlock(&st->lock); as3935_suspend()
299 struct as3935_state *st = iio_priv(indio_dev); as3935_resume() local
302 mutex_lock(&st->lock); as3935_resume()
303 ret = as3935_read(st, AS3935_AFE_GAIN, &val); as3935_resume()
307 ret = as3935_write(st, AS3935_AFE_GAIN, val); as3935_resume()
310 mutex_unlock(&st->lock); as3935_resume()
326 struct as3935_state *st; as3935_probe() local
336 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); as3935_probe()
340 st = iio_priv(indio_dev); as3935_probe()
341 st->spi = spi; as3935_probe()
342 st->tune_cap = 0; as3935_probe()
345 mutex_init(&st->lock); as3935_probe()
346 INIT_DELAYED_WORK(&st->work, as3935_event_work); as3935_probe()
349 "ams,tuning-capacitor-pf", &st->tune_cap); as3935_probe()
351 st->tune_cap = 0; as3935_probe()
354 st->tune_cap); as3935_probe()
357 if (st->tune_cap > MAX_PF_CAP) { as3935_probe()
360 st->tune_cap); as3935_probe()
377 st->trig = trig; as3935_probe()
396 calibrate_as3935(st); as3935_probe()
420 iio_trigger_unregister(st->trig); as3935_probe()
428 struct as3935_state *st = iio_priv(indio_dev); as3935_remove() local
432 iio_trigger_unregister(st->trig); as3935_remove()
/linux-4.1.27/drivers/staging/ozwpan/
H A Dozeltbuf.c78 struct oz_elt_stream *st; oz_elt_stream_create() local
82 st = kzalloc(sizeof(struct oz_elt_stream), GFP_ATOMIC); oz_elt_stream_create()
83 if (st == NULL) oz_elt_stream_create()
85 atomic_set(&st->ref_count, 1); oz_elt_stream_create()
86 st->id = id; oz_elt_stream_create()
87 st->max_buf_count = max_buf_count; oz_elt_stream_create()
88 INIT_LIST_HEAD(&st->elt_list); oz_elt_stream_create()
90 list_add_tail(&st->link, &buf->stream_list); oz_elt_stream_create()
98 struct oz_elt_stream *st = NULL; oz_elt_stream_delete() local
103 st = list_entry(e, struct oz_elt_stream, link); oz_elt_stream_delete()
104 if (st->id == id) { oz_elt_stream_delete()
108 st = NULL; oz_elt_stream_delete()
110 if (!st) { oz_elt_stream_delete()
114 list_for_each_safe(e, n, &st->elt_list) { oz_elt_stream_delete()
119 st->buf_count -= ei->length; oz_elt_stream_delete()
121 st->buf_count, ei->length, atomic_read(&st->ref_count)); oz_elt_stream_delete()
122 oz_elt_stream_put(st); oz_elt_stream_delete()
126 oz_elt_stream_put(st); oz_elt_stream_delete()
130 void oz_elt_stream_get(struct oz_elt_stream *st) oz_elt_stream_get() argument
132 atomic_inc(&st->ref_count); oz_elt_stream_get()
135 void oz_elt_stream_put(struct oz_elt_stream *st) oz_elt_stream_put() argument
137 if (atomic_dec_and_test(&st->ref_count)) { oz_elt_stream_put()
139 kfree(st); oz_elt_stream_put()
151 struct oz_elt_stream *st = NULL; oz_queue_elt_info() local
156 st = list_entry(e, struct oz_elt_stream, link); oz_queue_elt_info()
157 if (st->id == id) oz_queue_elt_info()
166 if (st) { oz_queue_elt_info()
178 body->frame_number = st->frame_number; oz_queue_elt_info()
179 st->frame_number += unit_count; oz_queue_elt_info()
182 oz_elt_stream_get(st); oz_queue_elt_info()
183 ei->stream = st; oz_queue_elt_info()
184 st->buf_count += ei->length; oz_queue_elt_info()
186 list_add_tail(&ei->link, &st->elt_list); oz_queue_elt_info()
187 oz_dbg(STREAM, "Stream up: %d %d\n", st->buf_count, ei->length); oz_queue_elt_info()
191 while ((st->buf_count > st->max_buf_count) && oz_queue_elt_info()
192 !list_empty(&st->elt_list)) { oz_queue_elt_info()
194 list_first_entry(&st->elt_list, oz_queue_elt_info()
198 st->buf_count -= ei2->length; oz_queue_elt_info()
200 oz_elt_stream_put(st); oz_queue_elt_info()
/linux-4.1.27/arch/arc/kernel/
H A Dctx_sw.c31 "st.a r13, [sp, -4] \n\t" __switch_to()
32 "st.a r14, [sp, -4] \n\t" __switch_to()
33 "st.a r15, [sp, -4] \n\t" __switch_to()
34 "st.a r16, [sp, -4] \n\t" __switch_to()
35 "st.a r17, [sp, -4] \n\t" __switch_to()
36 "st.a r18, [sp, -4] \n\t" __switch_to()
37 "st.a r19, [sp, -4] \n\t" __switch_to()
38 "st.a r20, [sp, -4] \n\t" __switch_to()
39 "st.a r21, [sp, -4] \n\t" __switch_to()
40 "st.a r22, [sp, -4] \n\t" __switch_to()
41 "st.a r23, [sp, -4] \n\t" __switch_to()
42 "st.a r24, [sp, -4] \n\t" __switch_to()
44 "st.a r25, [sp, -4] \n\t" __switch_to()
51 "st.as sp, [%3, %1] \n\t" __switch_to()
55 * %1 is bigger than 255 (S9 offset for st.as) __switch_to()
58 "st sp, [r24] \n\t" __switch_to()
70 "st %2, [@_current_task] \n\t" __switch_to()
76 "st %2, [r24] \n\t" __switch_to()
H A Dctx_sw_asm.S28 st.a blink, [sp, -4]
29 st.a fp, [sp, -4]
34 st.as sp, [r0, KSP_WORD_OFF]
38 st sp, [r24]
/linux-4.1.27/drivers/media/dvb-frontends/
H A Dbcm3510.c2 * Support for the Broadcom BCM3510 ATSC demodulator (1st generation Air2PC)
8 * This driver is "hard-coded" to be used with the 1st generation of
14 * UNC. (Tested with the Air2PC ATSC 1st generation)
137 static int bcm3510_hab_get_response(struct bcm3510_state *st, u8 *buf, int len) bcm3510_hab_get_response() argument
143 if ((ret = bcm3510_writeB(st,0xa6,v)) < 0) bcm3510_hab_get_response()
147 if ((ret = bcm3510_readB(st,0xa7,&v)) < 0) bcm3510_hab_get_response()
154 static int bcm3510_hab_send_request(struct bcm3510_state *st, u8 *buf, int len) bcm3510_hab_send_request() argument
162 if ((ret = bcm3510_readB(st,0xa8,&v)) < 0) bcm3510_hab_send_request()
167 bcm3510_writeB(st,0xa8,v); bcm3510_hab_send_request()
174 if ((ret = bcm3510_writeB(st,0xa6,hab)) < 0) bcm3510_hab_send_request()
179 if ((ret = bcm3510_writeB(st,0xa7,hab)) < 0) bcm3510_hab_send_request()
186 if ((ret = bcm3510_writeB(st,0xa8,v)) < 0) bcm3510_hab_send_request()
194 if ((ret = bcm3510_readB(st,0xa8,&v)) < 0) bcm3510_hab_send_request()
205 static int bcm3510_do_hab_cmd(struct bcm3510_state *st, u8 cmd, u8 msgid, u8 *obuf, u8 olen, u8 *ibuf, u8 ilen) bcm3510_do_hab_cmd() argument
228 if (mutex_lock_interruptible(&st->hab_mutex) < 0) bcm3510_do_hab_cmd()
231 if ((ret = bcm3510_hab_send_request(st, ob, olen+2)) < 0 || bcm3510_do_hab_cmd()
232 (ret = bcm3510_hab_get_response(st, ib, ilen+2)) < 0) bcm3510_do_hab_cmd()
241 mutex_unlock(&st->hab_mutex); bcm3510_do_hab_cmd()
247 static int bcm3510_is_ap_ready(struct bcm3510_state *st)
252 if ((ret = bcm3510_readB(st,0xa8,&hab)) < 0 ||
253 (ret = bcm3510_readB(st,0xa2,&ap) < 0))
265 static int bcm3510_bert_reset(struct bcm3510_state *st) bcm3510_bert_reset() argument
270 if ((ret = bcm3510_readB(st,0xfa,&b)) < 0) bcm3510_bert_reset()
273 b.BERCTL_fa.RESYNC = 0; bcm3510_writeB(st,0xfa,b); bcm3510_bert_reset()
274 b.BERCTL_fa.RESYNC = 1; bcm3510_writeB(st,0xfa,b); bcm3510_bert_reset()
275 b.BERCTL_fa.RESYNC = 0; bcm3510_writeB(st,0xfa,b); bcm3510_bert_reset()
276 b.BERCTL_fa.CNTCTL = 1; b.BERCTL_fa.BITCNT = 1; bcm3510_writeB(st,0xfa,b); bcm3510_bert_reset()
282 static int bcm3510_refresh_state(struct bcm3510_state *st) bcm3510_refresh_state() argument
284 if (time_after(jiffies,st->next_status_check)) { bcm3510_refresh_state()
285 bcm3510_do_hab_cmd(st, CMD_STATUS, MSGID_STATUS1, NULL,0, (u8 *)&st->status1, sizeof(st->status1)); bcm3510_refresh_state()
286 bcm3510_do_hab_cmd(st, CMD_STATUS, MSGID_STATUS2, NULL,0, (u8 *)&st->status2, sizeof(st->status2)); bcm3510_refresh_state()
287 st->next_status_check = jiffies + (st->status_check_interval*HZ)/1000; bcm3510_refresh_state()
294 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_read_status() local
295 bcm3510_refresh_state(st); bcm3510_read_status()
298 if (st->status1.STATUS1.RECEIVER_LOCK) bcm3510_read_status()
301 if (st->status1.STATUS1.FEC_LOCK) bcm3510_read_status()
304 if (st->status1.STATUS1.OUT_PLL_LOCK) bcm3510_read_status()
308 st->status_check_interval = 1500; bcm3510_read_status()
310 st->status_check_interval = 500; bcm3510_read_status()
318 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_read_ber() local
319 bcm3510_refresh_state(st); bcm3510_read_ber()
321 *ber = (st->status2.LDBER0 << 16) | (st->status2.LDBER1 << 8) | st->status2.LDBER2; bcm3510_read_ber()
327 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_read_unc() local
328 bcm3510_refresh_state(st); bcm3510_read_unc()
329 *unc = (st->status2.LDUERC0 << 8) | st->status2.LDUERC1; bcm3510_read_unc()
335 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_read_signal_strength() local
338 bcm3510_refresh_state(st); bcm3510_read_signal_strength()
339 t = st->status2.SIGNAL; bcm3510_read_signal_strength()
355 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_read_snr() local
356 bcm3510_refresh_state(st); bcm3510_read_snr()
358 *snr = st->status1.SNR_EST0*1000 + ((st->status1.SNR_EST1*1000) >> 8); bcm3510_read_snr()
363 static int bcm3510_tuner_cmd(struct bcm3510_state* st,u8 bc, u16 n, u8 a) bcm3510_tuner_cmd() argument
449 return bcm3510_do_hab_cmd(st,CMD_TUNE, MSGID_TUNE,(u8 *) &c,sizeof(c), NULL, 0); bcm3510_tuner_cmd()
452 static int bcm3510_set_freq(struct bcm3510_state* st,u32 freq) bcm3510_set_freq() argument
490 return bcm3510_tuner_cmd(st,bc,n,a); bcm3510_set_freq()
498 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_set_frontend() local
560 bcm3510_do_hab_cmd(st, CMD_ACQUIRE, MSGID_EXT_TUNER_ACQUIRE, (u8 *) &cmd, sizeof(cmd), NULL, 0); bcm3510_set_frontend()
565 bcm3510_do_hab_cmd(st, CMD_STATE_CONTROL, MSGID_BERT_CONTROL, (u8 *) &bert, sizeof(bert), NULL, 0); bcm3510_set_frontend()
566 bcm3510_do_hab_cmd(st, CMD_STATE_CONTROL, MSGID_BERT_SET, (u8 *) &bert, sizeof(bert), NULL, 0); bcm3510_set_frontend()
568 bcm3510_bert_reset(st); bcm3510_set_frontend()
570 ret = bcm3510_set_freq(st, c->frequency); bcm3510_set_frontend()
574 memset(&st->status1,0,sizeof(st->status1)); bcm3510_set_frontend()
575 memset(&st->status2,0,sizeof(st->status2)); bcm3510_set_frontend()
576 st->status_check_interval = 500; bcm3510_set_frontend()
609 static int bcm3510_write_ram(struct bcm3510_state *st, u16 addr, const u8 *b, bcm3510_write_ram() argument
617 if ((ret = bcm3510_writeB(st,0xa9,vH)) < 0) return ret; bcm3510_write_ram()
618 if ((ret = bcm3510_writeB(st,0xaa,vL)) < 0) return ret; bcm3510_write_ram()
622 if ((ret = bcm3510_writeB(st,0xab,vD)) < 0) bcm3510_write_ram()
631 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_download_firmware() local
638 if ((ret = st->config->request_firmware(fe, &fw, BCM3510_DEFAULT_FIRMWARE)) < 0) { bcm3510_download_firmware()
649 if ((ret = bcm3510_write_ram(st,addr,&b[i+4],len)) < 0) { bcm3510_download_firmware()
660 static int bcm3510_check_firmware_version(struct bcm3510_state *st) bcm3510_check_firmware_version() argument
663 bcm3510_do_hab_cmd(st,CMD_GET_VERSION_INFO,MSGID_GET_VERSION_INFO,NULL,0,(u8*)&ver,sizeof(ver)); bcm3510_check_firmware_version()
678 static int bcm3510_reset(struct bcm3510_state *st) bcm3510_reset() argument
684 bcm3510_readB(st,0xa0,&v); v.HCTL1_a0.RESET = 1; bcm3510_reset()
685 if ((ret = bcm3510_writeB(st,0xa0,v)) < 0) bcm3510_reset()
691 if ((ret = bcm3510_readB(st,0xa2,&v)) < 0) bcm3510_reset()
701 static int bcm3510_clear_reset(struct bcm3510_state *st) bcm3510_clear_reset() argument
708 if ((ret = bcm3510_writeB(st,0xa0,v)) < 0) bcm3510_clear_reset()
714 if ((ret = bcm3510_readB(st,0xa2,&v)) < 0) bcm3510_clear_reset()
725 static int bcm3510_init_cold(struct bcm3510_state *st) bcm3510_init_cold() argument
731 if ((ret = bcm3510_readB(st,0xa2,&v)) < 0) bcm3510_init_cold()
739 if ((ret = bcm3510_reset(st)) < 0) bcm3510_init_cold()
745 if ((ret = bcm3510_writeB(st,0x2e,v)) < 0) bcm3510_init_cold()
749 if ((ret = bcm3510_download_firmware(&st->frontend)) < 0 || bcm3510_init_cold()
750 (ret = bcm3510_clear_reset(st)) < 0) bcm3510_init_cold()
760 struct bcm3510_state* st = fe->demodulator_priv; bcm3510_init() local
765 if ((ret = bcm3510_readB(st,0xca,&j)) < 0) bcm3510_init()
773 if ((ret = bcm3510_init_cold(st)) < 0) bcm3510_init()
777 bcm3510_check_firmware_version(st); bcm3510_init()
785 bcm3510_do_hab_cmd(st,CMD_AUTO_PARAM,MSGID_SET_RF_AGC_SEL,(u8 *)&c,sizeof(c),NULL,0); bcm3510_init()
/linux-4.1.27/drivers/media/usb/dvb-usb-v2/
H A Dlmedm04.c179 struct lme2510_state *st = d->priv; lme2510_usb_talk() local
183 if (st->usb_buffer == NULL) { lme2510_usb_talk()
184 st->usb_buffer = kmalloc(64, GFP_KERNEL); lme2510_usb_talk()
185 if (st->usb_buffer == NULL) { lme2510_usb_talk()
190 buff = st->usb_buffer; lme2510_usb_talk()
215 struct lme2510_state *st = d->priv; lme2510_stream_restart() local
220 if (st->pid_off) lme2510_stream_restart()
231 struct lme2510_state *st = d->priv; lme2510_enable_pid() local
239 if (st->pid_size == 0) lme2510_enable_pid()
247 if (pid_len > st->pid_size) lme2510_enable_pid()
248 st->pid_size = pid_len; lme2510_enable_pid()
249 pid_buff[7] = 0x80 + st->pid_size; lme2510_enable_pid()
254 if (st->stream_on) lme2510_enable_pid()
263 struct lme2510_state *st = adap_to_priv(adap); lme2510_int_response() local
306 switch (st->tuner_config) { lme2510_int_response()
309 st->signal_level = ibuf[4]; lme2510_int_response()
310 st->signal_sn = ibuf[3]; lme2510_int_response()
311 st->time_key = ibuf[7]; lme2510_int_response()
318 st->signal_level = ibuf[3]; lme2510_int_response()
319 st->signal_sn = ibuf[4]; lme2510_int_response()
321 st->signal_level = ibuf[4]; lme2510_int_response()
322 st->signal_sn = ibuf[5]; lme2510_int_response()
327 st->signal_level = ibuf[5]; lme2510_int_response()
328 st->signal_sn = ibuf[4]; lme2510_int_response()
329 st->time_key = ibuf[7]; lme2510_int_response()
338 st->lock_status &= ~FE_HAS_LOCK; lme2510_int_response()
356 st->int_urb_due = jiffies + msecs_to_jiffies(200); lme2510_int_response()
402 struct lme2510_state *st = adap_to_priv(adap); lme2510_pid_filter_ctrl() local
414 st->pid_off = true; lme2510_pid_filter_ctrl()
416 st->pid_off = false; lme2510_pid_filter_ctrl()
418 st->pid_size = 0; lme2510_pid_filter_ctrl()
466 struct lme2510_state *st = d->priv; lme2510_msg() local
468 st->i2c_talk_onoff = 1; lme2510_msg()
477 struct lme2510_state *st = d->priv; lme2510_i2c_xfer() local
481 u8 gate = st->i2c_gate; lme2510_i2c_xfer()
492 gate = (msg[i].addr == st->i2c_tuner_addr) lme2510_i2c_xfer()
493 ? (read) ? st->i2c_tuner_gate_r lme2510_i2c_xfer()
494 : st->i2c_tuner_gate_w lme2510_i2c_xfer()
495 : st->i2c_gate; lme2510_i2c_xfer()
552 struct lme2510_state *st = adap_to_priv(adap); lme2510_streaming_ctrl() local
561 st->stream_on = 1; lme2510_streaming_ctrl()
569 st->stream_on = 0; lme2510_streaming_ctrl()
570 st->i2c_talk_onoff = 1; lme2510_streaming_ctrl()
665 struct lme2510_state *st = d->priv; lme_firmware_switch() local
675 switch (st->dvb_usb_lme2510_firmware) { lme_firmware_switch()
681 st->dvb_usb_lme2510_firmware = TUNER_S0194; lme_firmware_switch()
690 st->dvb_usb_lme2510_firmware = TUNER_LG; lme_firmware_switch()
693 st->dvb_usb_lme2510_firmware = TUNER_DEFAULT; lme_firmware_switch()
698 switch (st->dvb_usb_lme2510_firmware) { lme_firmware_switch()
704 st->dvb_usb_lme2510_firmware = TUNER_S7395; lme_firmware_switch()
713 st->dvb_usb_lme2510_firmware = TUNER_LG; lme_firmware_switch()
721 st->dvb_usb_lme2510_firmware = TUNER_S0194; lme_firmware_switch()
724 st->dvb_usb_lme2510_firmware = TUNER_DEFAULT; lme_firmware_switch()
731 st->dvb_usb_lme2510_firmware = TUNER_RS2000; lme_firmware_switch()
740 dvb_usb_lme2510_firmware = st->dvb_usb_lme2510_firmware; lme_firmware_switch()
808 struct lme2510_state *st = fe_to_priv(fe); dm04_lme2510_set_voltage() local
832 if (st->tuner_config == TUNER_RS2000) dm04_lme2510_set_voltage()
833 if (st->fe_set_voltage) dm04_lme2510_set_voltage()
834 st->fe_set_voltage(fe, voltage); dm04_lme2510_set_voltage()
843 struct lme2510_state *st = d->priv; dm04_read_status() local
846 if (st->i2c_talk_onoff) { dm04_read_status()
847 if (st->fe_read_status) { dm04_read_status()
848 ret = st->fe_read_status(fe, status); dm04_read_status()
853 st->lock_status = *status; dm04_read_status()
855 if (*status & FE_HAS_LOCK && st->stream_on) { dm04_read_status()
858 st->i2c_talk_onoff = 0; dm04_read_status()
868 if (st->tuner_config == TUNER_RS2000 && dm04_read_status()
869 time_after(jiffies, st->int_urb_due)) dm04_read_status()
870 st->lock_status &= ~FE_HAS_LOCK; dm04_read_status()
872 *status = st->lock_status; dm04_read_status()
875 st->i2c_talk_onoff = 1; dm04_read_status()
882 struct lme2510_state *st = fe_to_priv(fe); dm04_read_signal_strength() local
884 if (st->fe_read_signal_strength && !st->stream_on) dm04_read_signal_strength()
885 return st->fe_read_signal_strength(fe, strength); dm04_read_signal_strength()
887 switch (st->tuner_config) { dm04_read_signal_strength()
889 *strength = 0xff - st->signal_level; dm04_read_signal_strength()
895 *strength = 0xffff - (((st->signal_level * 2) << 8) * 5 / 4); dm04_read_signal_strength()
898 *strength = (u16)((u32)st->signal_level * 0xffff / 0xff); dm04_read_signal_strength()
906 struct lme2510_state *st = fe_to_priv(fe); dm04_read_snr() local
908 if (st->fe_read_snr && !st->stream_on) dm04_read_snr()
909 return st->fe_read_snr(fe, snr); dm04_read_snr()
911 switch (st->tuner_config) { dm04_read_snr()
913 *snr = 0xff - st->signal_sn; dm04_read_snr()
919 *snr = (u16)((0xff - st->signal_sn - 0xa1) * 3) << 8; dm04_read_snr()
922 *snr = (u16)((u32)st->signal_sn * 0xffff / 0x7f); dm04_read_snr()
930 struct lme2510_state *st = fe_to_priv(fe); dm04_read_ber() local
932 if (st->fe_read_ber && !st->stream_on) dm04_read_ber()
933 return st->fe_read_ber(fe, ber); dm04_read_ber()
942 struct lme2510_state *st = fe_to_priv(fe); dm04_read_ucblocks() local
944 if (st->fe_read_ucblocks && !st->stream_on) dm04_read_ucblocks()
945 return st->fe_read_ucblocks(fe, ucblocks); dm04_read_ucblocks()
955 struct lme2510_state *st = adap_to_priv(adap); lme_name() local
962 strlcat(name, fe_name[st->tuner_config], 128); lme_name()
970 struct lme2510_state *st = d->priv; dm04_lme2510_frontend_attach() local
973 st->i2c_talk_onoff = 1; dm04_lme2510_frontend_attach()
977 st->i2c_gate = 4; dm04_lme2510_frontend_attach()
982 st->i2c_tuner_gate_w = 4; dm04_lme2510_frontend_attach()
983 st->i2c_tuner_gate_r = 4; dm04_lme2510_frontend_attach()
984 st->i2c_tuner_addr = 0x60; dm04_lme2510_frontend_attach()
985 st->tuner_config = TUNER_LG; dm04_lme2510_frontend_attach()
986 if (st->dvb_usb_lme2510_firmware != TUNER_LG) { dm04_lme2510_frontend_attach()
987 st->dvb_usb_lme2510_firmware = TUNER_LG; dm04_lme2510_frontend_attach()
993 st->i2c_gate = 4; dm04_lme2510_frontend_attach()
998 st->i2c_tuner_gate_w = 4; dm04_lme2510_frontend_attach()
999 st->i2c_tuner_gate_r = 5; dm04_lme2510_frontend_attach()
1000 st->i2c_tuner_addr = 0x60; dm04_lme2510_frontend_attach()
1001 st->tuner_config = TUNER_S0194; dm04_lme2510_frontend_attach()
1002 if (st->dvb_usb_lme2510_firmware != TUNER_S0194) { dm04_lme2510_frontend_attach()
1003 st->dvb_usb_lme2510_firmware = TUNER_S0194; dm04_lme2510_frontend_attach()
1009 st->i2c_gate = 5; dm04_lme2510_frontend_attach()
1015 st->i2c_tuner_gate_w = 4; dm04_lme2510_frontend_attach()
1016 st->i2c_tuner_gate_r = 5; dm04_lme2510_frontend_attach()
1017 st->i2c_tuner_addr = 0x60; dm04_lme2510_frontend_attach()
1018 st->tuner_config = TUNER_S7395; dm04_lme2510_frontend_attach()
1019 if (st->dvb_usb_lme2510_firmware != TUNER_S7395) { dm04_lme2510_frontend_attach()
1020 st->dvb_usb_lme2510_firmware = TUNER_S7395; dm04_lme2510_frontend_attach()
1026 st->i2c_gate = 5; dm04_lme2510_frontend_attach()
1034 st->i2c_tuner_gate_w = 5; dm04_lme2510_frontend_attach()
1035 st->i2c_tuner_gate_r = 5; dm04_lme2510_frontend_attach()
1036 st->i2c_tuner_addr = 0x60; dm04_lme2510_frontend_attach()
1037 st->tuner_config = TUNER_RS2000; dm04_lme2510_frontend_attach()
1038 st->fe_set_voltage = dm04_lme2510_frontend_attach()
1058 st->fe_read_status = adap->fe[0]->ops.read_status; dm04_lme2510_frontend_attach()
1059 st->fe_read_signal_strength = adap->fe[0]->ops.read_signal_strength; dm04_lme2510_frontend_attach()
1060 st->fe_read_snr = adap->fe[0]->ops.read_snr; dm04_lme2510_frontend_attach()
1061 st->fe_read_ber = adap->fe[0]->ops.read_ber; dm04_lme2510_frontend_attach()
1062 st->fe_read_ucblocks = adap->fe[0]->ops.read_ucblocks; dm04_lme2510_frontend_attach()
1078 struct lme2510_state *st = adap_to_priv(adap); dm04_lme2510_tuner() local
1082 switch (st->tuner_config) { dm04_lme2510_tuner()
1086 ret = st->tuner_config; dm04_lme2510_tuner()
1091 ret = st->tuner_config; dm04_lme2510_tuner()
1096 ret = st->tuner_config; dm04_lme2510_tuner()
1099 ret = st->tuner_config; dm04_lme2510_tuner()
1125 struct lme2510_state *st = d->priv; lme2510_powerup() local
1138 st->i2c_talk_onoff = 1; lme2510_powerup()
1152 struct lme2510_state *st = d->priv; lme2510_identify_state() local
1159 st->dvb_usb_lme2510_firmware = dvb_usb_lme2510_firmware; lme2510_identify_state()
1202 struct lme2510_state *st = d->priv; lme2510_exit_int() local
1210 if (st->usb_buffer != NULL) { lme2510_exit_int()
1211 st->i2c_talk_onoff = 1; lme2510_exit_int()
1212 st->signal_level = 0; lme2510_exit_int()
1213 st->signal_sn = 0; lme2510_exit_int()
1214 buffer = st->usb_buffer; lme2510_exit_int()
1217 if (st->lme_urb != NULL) { lme2510_exit_int()
1218 usb_kill_urb(st->lme_urb); lme2510_exit_int()
1219 usb_free_coherent(d->udev, 128, st->buffer, lme2510_exit_int()
1220 st->lme_urb->transfer_dma); lme2510_exit_int()
H A Daz6007.c86 struct az6007_device_state *st = fe_to_priv(fe); drxk_gate_ctrl() local
92 if (!adap || !st) drxk_gate_ctrl()
96 status = st->gate_ctrl(fe, 1); drxk_gate_ctrl()
98 status = st->gate_ctrl(fe, 0); drxk_gate_ctrl()
136 struct az6007_device_state *st = d->priv; az6007_read() local
139 if (mutex_lock_interruptible(&st->mutex) < 0) az6007_read()
144 mutex_unlock(&st->mutex); az6007_read()
183 struct az6007_device_state *st = d->priv; az6007_write() local
186 if (mutex_lock_interruptible(&st->mutex) < 0) az6007_write()
191 mutex_unlock(&st->mutex); az6007_write()
209 struct az6007_device_state *st = d_to_priv(d); az6007_rc_query() local
212 az6007_read(d, AZ6007_READ_IR, 0, 0, st->data, 10); az6007_rc_query()
214 if (st->data[1] == 0x44) az6007_rc_query()
217 if ((st->data[3] ^ st->data[4]) == 0xff) { az6007_rc_query()
218 if ((st->data[1] ^ st->data[2]) == 0xff) az6007_rc_query()
219 code = RC_SCANCODE_NEC(st->data[1], st->data[3]); az6007_rc_query()
221 code = RC_SCANCODE_NECX(st->data[1] << 8 | st->data[2], az6007_rc_query()
222 st->data[3]); az6007_rc_query()
224 code = RC_SCANCODE_NEC32(st->data[1] << 24 | az6007_rc_query()
225 st->data[2] << 16 | az6007_rc_query()
226 st->data[3] << 8 | az6007_rc_query()
227 st->data[4]); az6007_rc_query()
230 rc_keydown(d->rc_dev, RC_TYPE_NEC, code, st->data[5]); az6007_rc_query()
616 struct az6007_device_state *st = adap_to_priv(adap); az6007_read_mac_addr() local
619 ret = az6007_read(d, AZ6007_READ_DATA, 6, 0, st->data, 6); az6007_read_mac_addr()
620 memcpy(mac, st->data, 6); az6007_read_mac_addr()
630 struct az6007_device_state *st = adap_to_priv(adap); az6007_frontend_attach() local
641 st->gate_ctrl = adap->fe[0]->ops.i2c_gate_ctrl; az6007_frontend_attach()
651 struct az6007_device_state *st = adap_to_priv(adap); az6007_cablestar_hdci_frontend_attach() local
662 st->gate_ctrl = adap->fe[0]->ops.i2c_gate_ctrl; az6007_cablestar_hdci_frontend_attach()
748 struct az6007_device_state *st = d_to_priv(d); az6007_i2c_xfer() local
756 if (mutex_lock_interruptible(&st->mutex) < 0) az6007_i2c_xfer()
780 st->data, length); az6007_i2c_xfer()
783 msgs[i + 1].buf[j] = st->data[j + 5]; az6007_i2c_xfer()
798 st->data[j] = msgs[i].buf[j + 1]; az6007_i2c_xfer()
800 st->data, length); az6007_i2c_xfer()
812 st->data, length); az6007_i2c_xfer()
814 msgs[i].buf[j] = st->data[j + 5]; az6007_i2c_xfer()
820 mutex_unlock(&st->mutex); az6007_i2c_xfer()
/linux-4.1.27/arch/avr32/lib/
H A Dclear_user.S31 10: st.w r12++, r8
41 11: st.h r12++, r8
44 12: st.b r12++, r8
53 13: st.b r12++, r8
55 14: st.b r12++, r8
57 15: st.b r12++, r8
H A Dio-writesb.S13 st.b r12[0], r8
35 st.b r12[0], r9
37 st.b r12[0], r9
39 st.b r12[0], r9
40 st.b r12[0], r8
49 st.b r12[0], r8
H A Dio-writesw.S12 st.h r12[0], r8
28 st.h r12[0], r9
29 st.h r12[0], r8
37 st.h r12[0], r8
H A Dmemcpy.S33 st.w r12++, r8
43 st.b r12++, r8
45 st.b r12++, r8
47 st.b r12++, r8
58 st.b r12++, r8
60 st.b r12++, r8
62 st.b r12++, r8
H A Dmemset.S38 4: st.w r8++, r11
54 st.b r8++, r11
55 st.b r8++, r11
58 6: st.b r8++, r11
67 st.b r8++, r11
68 st.b r8++, r11
69 st.b r8++, r11
H A Dio-readsb.S13 st.b r11++, r8
37 st.w r11++, r8
46 st.b r11++, r8
H A Dio-readsw.S16 st.h r11++, r8
34 st.w r11++, r8
42 st.h r11++, r8
H A Dcopy_user.S54 11: st.w r12++, r8
67 21: st.b r12++, r8
71 23: st.b r12++, r8
75 25: st.b r12++, r8
84 31: st.b r12++, r8
89 33: st.b r12++, r8
94 35: st.b r12++, r8
H A Dio-writesl.S17 st.w r12[0], r8
/linux-4.1.27/tools/perf/util/
H A Ddata.c14 struct stat st; check_pipe() local
20 if (!fstat(fd, &st) && S_ISFIFO(st.st_mode)) check_pipe()
35 struct stat st; check_backup() local
37 if (!stat(file->path, &st) && st.st_size) { check_backup()
51 struct stat st; open_file_read() local
67 if (fstat(fd, &st) < 0) open_file_read()
70 if (!file->force && st.st_uid && (st.st_uid != geteuid())) { open_file_read()
76 if (!st.st_size) { open_file_read()
82 file->size = st.st_size; open_file_read()
/linux-4.1.27/drivers/md/
H A Ddm-stats.h23 void dm_stats_init(struct dm_stats *st);
24 void dm_stats_cleanup(struct dm_stats *st);
35 static inline bool dm_stats_used(struct dm_stats *st) dm_stats_used() argument
37 return !list_empty(&st->list); dm_stats_used()
/linux-4.1.27/drivers/iio/amplifiers/
H A Dad8366.c36 struct ad8366_state *st = iio_priv(indio_dev); ad8366_write() local
42 st->data[0] = ch_b >> 4; ad8366_write()
43 st->data[1] = (ch_b << 4) | (ch_a >> 2); ad8366_write()
45 ret = spi_write(st->spi, st->data, ARRAY_SIZE(st->data)); ad8366_write()
58 struct ad8366_state *st = iio_priv(indio_dev); ad8366_read_raw() local
65 code = st->ch[chan->channel]; ad8366_read_raw()
88 struct ad8366_state *st = iio_priv(indio_dev); ad8366_write_raw() local
106 st->ch[chan->channel] = code; ad8366_write_raw()
107 ret = ad8366_write(indio_dev, st->ch[0], st->ch[1]); ad8366_write_raw()
139 struct ad8366_state *st; ad8366_probe() local
142 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); ad8366_probe()
146 st = iio_priv(indio_dev); ad8366_probe()
148 st->reg = devm_regulator_get(&spi->dev, "vcc"); ad8366_probe()
149 if (!IS_ERR(st->reg)) { ad8366_probe()
150 ret = regulator_enable(st->reg); ad8366_probe()
156 st->spi = spi; ad8366_probe()
174 if (!IS_ERR(st->reg)) ad8366_probe()
175 regulator_disable(st->reg); ad8366_probe()
183 struct ad8366_state *st = iio_priv(indio_dev); ad8366_remove() local
184 struct regulator *reg = st->reg; ad8366_remove()
/linux-4.1.27/drivers/staging/iio/gyro/
H A Dadis16060_core.c46 struct adis16060_state *st = iio_priv(indio_dev); adis16060_spi_write() local
48 mutex_lock(&st->buf_lock); adis16060_spi_write()
49 st->buf[2] = val; /* The last 8 bits clocked in are latched */ adis16060_spi_write()
50 ret = spi_write(st->us_w, st->buf, 3); adis16060_spi_write()
51 mutex_unlock(&st->buf_lock); adis16060_spi_write()
59 struct adis16060_state *st = iio_priv(indio_dev); adis16060_spi_read() local
61 mutex_lock(&st->buf_lock); adis16060_spi_read()
63 ret = spi_read(st->us_r, st->buf, 3); adis16060_spi_read()
71 *val = ((st->buf[0] & 0x3) << 12) | adis16060_spi_read()
72 (st->buf[1] << 4) | adis16060_spi_read()
73 ((st->buf[2] >> 4) & 0xF); adis16060_spi_read()
74 mutex_unlock(&st->buf_lock); adis16060_spi_read()
150 struct adis16060_state *st; adis16060_r_probe() local
154 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); adis16060_r_probe()
159 st = iio_priv(indio_dev); adis16060_r_probe()
160 st->us_r = spi; adis16060_r_probe()
161 mutex_init(&st->buf_lock); adis16060_r_probe()
182 struct adis16060_state *st; adis16060_w_probe() local
188 st = iio_priv(indio_dev); adis16060_w_probe()
190 st->us_w = spi; adis16060_w_probe()
/linux-4.1.27/arch/avr32/kernel/
H A Dsyscall-stubs.S33 st.w --sp, ARG6
42 st.w --sp, ARG6
51 st.w --sp, ARG6
60 st.w --sp, ARG6
69 st.w --sp, ARG6
78 st.w --sp, ARG6
87 st.w --sp, ARG6
96 st.w --sp, ARG6
105 st.w --sp, ARG6
114 st.w --sp, ARG6
123 st.w --sp, ARG6
/linux-4.1.27/drivers/gpu/drm/sti/
H A Dsti_gdp.h3 * Authors: Benjamin Gaignard <benjamin.gaignard@st.com>
4 * Fabien Dessenne <fabien.dessenne@st.com>
H A Dsti_cursor.h3 * Authors: Vincent Abriou <vincent.abriou@st.com> for STMicroelectronics.
H A Dsti_hdmi_tx3g0c55phy.h3 * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics.
H A Dsti_hdmi_tx3g4c28phy.h3 * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics.
H A Dsti_hqvdp.h3 * Authors: Fabien Dessenne <fabien.dessenne@st.com> for STMicroelectronics.
H A Dsti_vid.h3 * Author: Fabien Dessenne <fabien.dessenne@st.com> for STMicroelectronics.
H A Dsti_awg_utils.h3 * Author: Vincent Abriou <vincent.abriou@st.com> for STMicroelectronics.
H A Dsti_drm_plane.h3 * Author: Benjamin Gaignard <benjamin.gaignard@st.com> for STMicroelectronics.
/linux-4.1.27/drivers/net/wan/
H A Dhdlc_cisco.c157 struct cisco_state *st = state(hdlc); cisco_rx() local
222 spin_lock(&st->lock); cisco_rx()
223 st->rxseq = ntohl(cisco_data->par1); cisco_rx()
225 if (ack && (ack == st->txseq || cisco_rx()
227 ack == st->txseq - 1)) { cisco_rx()
228 st->last_poll = jiffies; cisco_rx()
229 if (!st->up) { cisco_rx()
238 st->up = 1; cisco_rx()
241 spin_unlock(&st->lock); cisco_rx()
264 struct cisco_state *st = state(hdlc); cisco_timer() local
266 spin_lock(&st->lock); cisco_timer()
267 if (st->up && cisco_timer()
268 time_after(jiffies, st->last_poll + st->settings.timeout * HZ)) { cisco_timer()
269 st->up = 0; cisco_timer()
274 cisco_keepalive_send(dev, CISCO_KEEPALIVE_REQ, htonl(++st->txseq), cisco_timer()
275 htonl(st->rxseq)); cisco_timer()
276 spin_unlock(&st->lock); cisco_timer()
278 st->timer.expires = jiffies + st->settings.interval * HZ; cisco_timer()
279 st->timer.function = cisco_timer; cisco_timer()
280 st->timer.data = arg; cisco_timer()
281 add_timer(&st->timer); cisco_timer()
289 struct cisco_state *st = state(hdlc); cisco_start() local
292 spin_lock_irqsave(&st->lock, flags); cisco_start()
293 st->up = st->txseq = st->rxseq = 0; cisco_start()
294 spin_unlock_irqrestore(&st->lock, flags); cisco_start()
296 init_timer(&st->timer); cisco_start()
297 st->timer.expires = jiffies + HZ; /* First poll after 1 s */ cisco_start()
298 st->timer.function = cisco_timer; cisco_start()
299 st->timer.data = (unsigned long)dev; cisco_start()
300 add_timer(&st->timer); cisco_start()
308 struct cisco_state *st = state(hdlc); cisco_stop() local
311 del_timer_sync(&st->timer); cisco_stop()
313 spin_lock_irqsave(&st->lock, flags); cisco_stop()
315 st->up = st->txseq = 0; cisco_stop()
316 spin_unlock_irqrestore(&st->lock, flags); cisco_stop()
/linux-4.1.27/arch/x86/include/uapi/asm/
H A Dstat.h31 #define INIT_STRUCT_STAT_PADDING(st) do { \
32 st.__unused4 = 0; \
33 st.__unused5 = 0; \
75 #define INIT_STRUCT_STAT64_PADDING(st) do { \
76 memset(&st.__pad0, 0, sizeof(st.__pad0)); \
77 memset(&st.__pad3, 0, sizeof(st.__pad3)); \
106 #define INIT_STRUCT_STAT_PADDING(st) do { \
107 st.__pad0 = 0; \
108 st.__unused[0] = 0; \
109 st.__unused[1] = 0; \
110 st.__unused[2] = 0; \
/linux-4.1.27/drivers/staging/iio/
H A Diio_simple_dummy_events.c38 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_read_event_config() local
40 return st->event_en; iio_simple_dummy_read_event_config()
61 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_write_event_config() local
72 st->event_en = state; iio_simple_dummy_write_event_config()
82 st->event_en = state; iio_simple_dummy_write_event_config()
90 st->event_en = state; iio_simple_dummy_write_event_config()
124 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_read_event_value() local
126 *val = st->event_val; iio_simple_dummy_read_event_value()
147 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_write_event_value() local
149 st->event_val = val; iio_simple_dummy_write_event_value()
167 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_event_handler() local
170 st->regs->reg_id, st->regs->reg_data); iio_simple_dummy_event_handler()
172 switch (st->regs->reg_data) { iio_simple_dummy_event_handler()
181 if (st->activity_running > st->event_val) iio_simple_dummy_event_handler()
191 if (st->activity_walking < st->event_val) iio_simple_dummy_event_handler()
227 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_events_register() local
231 st->event_irq = iio_dummy_evgen_get_irq(); iio_simple_dummy_events_register()
232 if (st->event_irq < 0) { iio_simple_dummy_events_register()
233 ret = st->event_irq; iio_simple_dummy_events_register()
236 st->regs = iio_dummy_evgen_get_regs(st->event_irq); iio_simple_dummy_events_register()
238 ret = request_threaded_irq(st->event_irq, iio_simple_dummy_events_register()
249 iio_dummy_evgen_release_irq(st->event_irq); iio_simple_dummy_events_register()
260 struct iio_dummy_state *st = iio_priv(indio_dev); iio_simple_dummy_events_unregister() local
262 free_irq(st->event_irq, indio_dev); iio_simple_dummy_events_unregister()
264 iio_dummy_evgen_release_irq(st->event_irq); iio_simple_dummy_events_unregister()
H A Diio_simple_dummy.c296 struct iio_dummy_state *st = iio_priv(indio_dev); iio_dummy_read_raw() local
299 mutex_lock(&st->lock); iio_dummy_read_raw()
306 *val = st->dac_val; iio_dummy_read_raw()
310 *val = st->differential_adc_val[0]; iio_dummy_read_raw()
312 *val = st->differential_adc_val[1]; iio_dummy_read_raw()
315 *val = st->single_ended_adc_val; iio_dummy_read_raw()
320 *val = st->accel_val; iio_dummy_read_raw()
330 *val = st->steps; iio_dummy_read_raw()
336 *val = st->activity_running; iio_dummy_read_raw()
340 *val = st->activity_walking; iio_dummy_read_raw()
380 *val = st->accel_calibbias; iio_dummy_read_raw()
384 *val = st->accel_calibscale->val; iio_dummy_read_raw()
385 *val2 = st->accel_calibscale->val2; iio_dummy_read_raw()
396 *val = st->steps_enabled; iio_dummy_read_raw()
406 *val = st->height; iio_dummy_read_raw()
417 mutex_unlock(&st->lock); iio_dummy_read_raw()
442 struct iio_dummy_state *st = iio_priv(indio_dev); iio_dummy_write_raw() local
452 mutex_lock(&st->lock); iio_dummy_write_raw()
453 st->dac_val = val; iio_dummy_write_raw()
454 mutex_unlock(&st->lock); iio_dummy_write_raw()
462 mutex_lock(&st->lock); iio_dummy_write_raw()
463 st->steps = val; iio_dummy_write_raw()
464 mutex_unlock(&st->lock); iio_dummy_write_raw()
473 st->activity_running = val; iio_dummy_write_raw()
476 st->activity_walking = val; iio_dummy_write_raw()
486 mutex_lock(&st->lock); iio_dummy_write_raw()
495 st->accel_calibscale = &dummy_scales[i]; iio_dummy_write_raw()
496 mutex_unlock(&st->lock); iio_dummy_write_raw()
499 mutex_lock(&st->lock); iio_dummy_write_raw()
500 st->accel_calibbias = val; iio_dummy_write_raw()
501 mutex_unlock(&st->lock); iio_dummy_write_raw()
506 mutex_lock(&st->lock); iio_dummy_write_raw()
507 st->steps_enabled = val; iio_dummy_write_raw()
508 mutex_unlock(&st->lock); iio_dummy_write_raw()
516 st->height = val; iio_dummy_write_raw()
551 struct iio_dummy_state *st = iio_priv(indio_dev); iio_dummy_init_device() local
553 st->dac_val = 0; iio_dummy_init_device()
554 st->single_ended_adc_val = 73; iio_dummy_init_device()
555 st->differential_adc_val[0] = 33; iio_dummy_init_device()
556 st->differential_adc_val[1] = -34; iio_dummy_init_device()
557 st->accel_val = 34; iio_dummy_init_device()
558 st->accel_calibbias = -7; iio_dummy_init_device()
559 st->accel_calibscale = &dummy_scales[0]; iio_dummy_init_device()
560 st->steps = 47; iio_dummy_init_device()
561 st->activity_running = 98; iio_dummy_init_device()
562 st->activity_walking = 4; iio_dummy_init_device()
580 struct iio_dummy_state *st; iio_dummy_probe() local
590 indio_dev = iio_device_alloc(sizeof(*st)); iio_dummy_probe()
596 st = iio_priv(indio_dev); iio_dummy_probe()
597 mutex_init(&st->lock); iio_dummy_probe()
/linux-4.1.27/arch/m32r/lib/
H A Dmemset.S47 st r1, @+r4 || addi r2, #-4
50 st r1, @+r4
64 st r1, @+r4 || addi r2, #-16
65 st r1, @+r4 || cmpu r2, r5
66 st r1, @+r4
67 st r1, @+r4
129 st r1, @+r4
133 st r1, @+r4
149 st r1, @+r4
150 st r1, @+r4
152 st r1, @+r4
153 st r1, @+r4
/linux-4.1.27/net/ipv4/netfilter/
H A Dnf_conntrack_l3proto_ipv4_compat.c35 struct ct_iter_state *st = seq->private; ct_get_first() local
38 for (st->bucket = 0; ct_get_first()
39 st->bucket < net->ct.htable_size; ct_get_first()
40 st->bucket++) { ct_get_first()
42 hlist_nulls_first_rcu(&net->ct.hash[st->bucket])); ct_get_first()
53 struct ct_iter_state *st = seq->private; ct_get_next() local
57 if (likely(get_nulls_value(head) == st->bucket)) { ct_get_next()
58 if (++st->bucket >= net->ct.htable_size) ct_get_next()
62 hlist_nulls_first_rcu(&net->ct.hash[st->bucket])); ct_get_next()
224 struct ct_expect_iter_state *st = seq->private; ct_expect_get_first() local
227 for (st->bucket = 0; st->bucket < nf_ct_expect_hsize; st->bucket++) { ct_expect_get_first()
229 hlist_first_rcu(&net->ct.expect_hash[st->bucket])); ct_expect_get_first()
240 struct ct_expect_iter_state *st = seq->private; ct_expect_get_next() local
244 if (++st->bucket >= nf_ct_expect_hsize) ct_expect_get_next()
247 hlist_first_rcu(&net->ct.expect_hash[st->bucket])); ct_expect_get_next()
370 const struct ip_conntrack_stat *st = v; ct_cpu_seq_show() local
380 st->searched, ct_cpu_seq_show()
381 st->found, ct_cpu_seq_show()
382 st->new, ct_cpu_seq_show()
383 st->invalid, ct_cpu_seq_show()
384 st->ignore, ct_cpu_seq_show()
385 st->delete, ct_cpu_seq_show()
386 st->delete_list, ct_cpu_seq_show()
387 st->insert, ct_cpu_seq_show()
388 st->insert_failed, ct_cpu_seq_show()
389 st->drop, ct_cpu_seq_show()
390 st->early_drop, ct_cpu_seq_show()
391 st->error, ct_cpu_seq_show()
393 st->expect_new, ct_cpu_seq_show()
394 st->expect_create, ct_cpu_seq_show()
395 st->expect_delete, ct_cpu_seq_show()
396 st->search_restart ct_cpu_seq_show()
/linux-4.1.27/drivers/reset/sti/
H A Dreset-stih415.c3 * Author: Stephen Gallimore <stephen.gallimore@st.com>
4 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
23 static const char stih415_front[] = "st,stih415-front-syscfg";
24 static const char stih415_rear[] = "st,stih415-rear-syscfg";
25 static const char stih415_sbc[] = "st,stih415-sbc-syscfg";
26 static const char stih415_lpm[] = "st,stih415-lpm-syscfg";
93 { .compatible = "st,stih415-powerdown",
95 { .compatible = "st,stih415-softreset",
H A Dreset-stih416.c3 * Author: Stephen Gallimore <stephen.gallimore@st.com>
4 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
23 static const char stih416_front[] = "st,stih416-front-syscfg";
24 static const char stih416_rear[] = "st,stih416-rear-syscfg";
25 static const char stih416_sbc[] = "st,stih416-sbc-syscfg";
26 static const char stih416_lpm[] = "st,stih416-lpm-syscfg";
27 static const char stih416_cpu[] = "st,stih416-cpu-syscfg";
124 { .compatible = "st,stih416-powerdown",
126 { .compatible = "st,stih416-softreset",
H A Dreset-stih407.c3 * Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
18 static const char stih407_core[] = "st,stih407-core-syscfg";
19 static const char stih407_sbc_reg[] = "st,stih407-sbc-reg-syscfg";
20 static const char stih407_lpm[] = "st,stih407-lpm-syscfg";
131 .compatible = "st,stih407-powerdown",
135 .compatible = "st,stih407-softreset",
139 .compatible = "st,stih407-picophyreset",
/linux-4.1.27/tools/testing/selftests/memfd/
H A Dfuse_mnt.c26 static int memfd_getattr(const char *path, struct stat *st) memfd_getattr() argument
28 memset(st, 0, sizeof(*st)); memfd_getattr()
31 st->st_mode = S_IFDIR | 0755; memfd_getattr()
32 st->st_nlink = 2; memfd_getattr()
34 st->st_mode = S_IFREG | 0444; memfd_getattr()
35 st->st_nlink = 1; memfd_getattr()
36 st->st_size = strlen(memfd_content); memfd_getattr()
/linux-4.1.27/drivers/iio/magnetometer/
H A Dst_magn_i2c.c6 * Denis Ciocca <denis.ciocca@st.com>
24 .compatible = "st,lsm303dlhc-magn",
28 .compatible = "st,lsm303dlm-magn",
32 .compatible = "st,lis3mdl-magn",
84 .name = "st-magn-i2c",
93 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
H A Dst_magn_spi.c6 * Denis Ciocca <denis.ciocca@st.com>
61 .name = "st-magn-spi",
69 MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>");
H A Dhid-sensor-magn-3d.c309 struct magn_3d_state *st) magn_3d_parse_report()
325 &(st->magn[i])); magn_3d_parse_report()
339 st->magn[0].index, magn_3d_parse_report()
340 st->magn[0].report_id, magn_3d_parse_report()
341 st->magn[1].index, st->magn[1].report_id, magn_3d_parse_report()
342 st->magn[2].index, st->magn[2].report_id); magn_3d_parse_report()
354 st->iio_vals = devm_kcalloc(&pdev->dev, attr_count, magn_3d_parse_report()
357 if (!st->iio_vals) { magn_3d_parse_report()
366 if (st->magn[i].index >= 0) { magn_3d_parse_report()
373 st->magn_val_addr[i] = &(st->iio_vals[*chan_count]); magn_3d_parse_report()
376 st->magn[i].size); magn_3d_parse_report()
392 st->scale_precision = hid_sensor_format_scale( magn_3d_parse_report()
394 &st->magn[CHANNEL_SCAN_INDEX_X], magn_3d_parse_report()
395 &st->scale_pre_decml, &st->scale_post_decml); magn_3d_parse_report()
398 if (st->common_attributes.sensitivity.index < 0) { magn_3d_parse_report()
403 &st->common_attributes.sensitivity); magn_3d_parse_report()
405 st->common_attributes.sensitivity.index, magn_3d_parse_report()
406 st->common_attributes.sensitivity.report_id); magn_3d_parse_report()
304 magn_3d_parse_report(struct platform_device *pdev, struct hid_sensor_hub_device *hsdev, struct iio_chan_spec **channels, int *chan_count, unsigned usage_id, struct magn_3d_state *st) magn_3d_parse_report() argument
/linux-4.1.27/drivers/block/rsxx/
H A Dcore.c183 ssize_t st; rsxx_cram_read() local
189 st = rsxx_creg_read(card, CREG_ADD_CRAM + (u32)*ppos, cnt, buf, 1); rsxx_cram_read()
190 if (!st) rsxx_cram_read()
191 st = copy_to_user(ubuf, buf, cnt); rsxx_cram_read()
193 if (st) rsxx_cram_read()
194 return st; rsxx_cram_read()
204 ssize_t st; rsxx_cram_write() local
210 st = copy_from_user(buf, ubuf, cnt); rsxx_cram_write()
211 if (!st) rsxx_cram_write()
212 st = rsxx_creg_write(card, CREG_ADD_CRAM + (u32)*ppos, cnt, rsxx_cram_write()
215 if (st) rsxx_cram_write()
216 return st; rsxx_cram_write()
425 int st; card_state_change() local
447 st = rsxx_get_card_size8(card, &card->size8); card_state_change()
448 if (st) card_state_change()
482 int st; card_event_handler() local
498 st = rsxx_get_card_state(card, &state); card_event_handler()
499 if (st) { card_event_handler()
518 int st; card_shutdown() local
523 st = rsxx_get_card_state(card, &state); card_shutdown()
524 if (st) card_shutdown()
525 return st; card_shutdown()
535 st = rsxx_issue_card_cmd(card, CARD_CMD_SHUTDOWN); card_shutdown()
536 if (st) card_shutdown()
537 return st; card_shutdown()
542 st = rsxx_get_card_state(card, &state); card_shutdown()
543 if (st) card_shutdown()
544 return st; card_shutdown()
558 int st; rsxx_eeh_frozen() local
574 st = rsxx_eeh_save_issued_dmas(card); rsxx_eeh_frozen()
575 if (st) rsxx_eeh_frozen()
576 return st; rsxx_eeh_frozen()
647 int st; rsxx_error_detected() local
657 st = rsxx_eeh_frozen(dev); rsxx_error_detected()
658 if (st) { rsxx_error_detected()
672 int st; rsxx_slot_reset() local
677 st = pci_enable_device(dev); rsxx_slot_reset()
678 if (st) rsxx_slot_reset()
683 st = rsxx_eeh_fifo_flush_poll(card); rsxx_slot_reset()
684 if (st) rsxx_slot_reset()
690 st = rsxx_hw_buffers_init(dev, &card->ctrl[i]); rsxx_slot_reset()
691 if (st) rsxx_slot_reset()
699 st = ioread32(card->regmap + ISR); rsxx_slot_reset()
765 int st; rsxx_pci_probe() local
779 st = -ENOMEM; rsxx_pci_probe()
784 st = ida_get_new(&rsxx_disk_ida, &card->disk_id); rsxx_pci_probe()
786 } while (st == -EAGAIN); rsxx_pci_probe()
788 if (st) rsxx_pci_probe()
791 st = pci_enable_device(dev); rsxx_pci_probe()
792 if (st) rsxx_pci_probe()
798 st = pci_set_dma_mask(dev, DMA_BIT_MASK(64)); rsxx_pci_probe()
799 if (st) { rsxx_pci_probe()
805 st = pci_request_regions(dev, DRIVER_NAME); rsxx_pci_probe()
806 if (st) { rsxx_pci_probe()
814 st = -ENOMEM; rsxx_pci_probe()
821 st = -ENOMEM; rsxx_pci_probe()
834 st = pci_enable_msi(dev); rsxx_pci_probe()
835 if (st) rsxx_pci_probe()
840 st = request_irq(dev->irq, rsxx_isr, IRQF_SHARED, rsxx_pci_probe()
842 if (st) { rsxx_pci_probe()
849 st = rsxx_creg_setup(card); rsxx_pci_probe()
850 if (st) { rsxx_pci_probe()
859 st = rsxx_compatibility_check(card); rsxx_pci_probe()
860 if (st) { rsxx_pci_probe()
863 st = -EINVAL; rsxx_pci_probe()
868 st = rsxx_load_config(card); rsxx_pci_probe()
869 if (st) rsxx_pci_probe()
874 st = rsxx_get_num_targets(card, &card->n_targets); rsxx_pci_probe()
875 if (st) rsxx_pci_probe()
881 st = -ENOMEM; rsxx_pci_probe()
885 st = rsxx_dma_setup(card); rsxx_pci_probe()
886 if (st) { rsxx_pci_probe()
901 st = rsxx_setup_dev(card); rsxx_pci_probe()
902 if (st) rsxx_pci_probe()
921 st = rsxx_issue_card_cmd(card, CARD_CMD_STARTUP); rsxx_pci_probe()
922 if (st) rsxx_pci_probe()
947 st = rsxx_get_card_size8(card, &card->size8); rsxx_pci_probe()
948 if (st) rsxx_pci_probe()
954 st = rsxx_get_card_size8(card, &card->size8); rsxx_pci_probe()
955 if (st) rsxx_pci_probe()
996 return st; rsxx_pci_probe()
1003 int st; rsxx_pci_remove() local
1020 st = card_shutdown(card); rsxx_pci_remove()
1021 if (st) rsxx_pci_remove()
1111 int st; rsxx_core_init() local
1113 st = rsxx_dev_init(); rsxx_core_init()
1114 if (st) rsxx_core_init()
1115 return st; rsxx_core_init()
1117 st = rsxx_dma_init(); rsxx_core_init()
1118 if (st) rsxx_core_init()
1121 st = rsxx_creg_init(); rsxx_core_init()
1122 if (st) rsxx_core_init()
1132 return st; rsxx_core_init()
H A Dcregs.c34 int st);
114 int st; creg_issue_cmd() local
124 st = copy_to_creg_data(card, cmd->cnt8, creg_issue_cmd()
126 if (st) creg_issue_cmd()
240 int st = 0; creg_cmd_done() local
273 st = -EIO; creg_cmd_done()
276 st = -EIO; creg_cmd_done()
286 st = -EIO; creg_cmd_done()
292 st = -EIO; creg_cmd_done()
296 st = copy_from_creg_data(card, cnt8, cmd->buf, cmd->stream); creg_cmd_done()
301 cmd->cb(card, cmd, st); creg_cmd_done()
367 int st; member in struct:creg_completion
373 int st) creg_cmd_done_cb()
380 cmd_completion->st = st; creg_cmd_done_cb()
396 int st; __issue_creg_rw() local
399 completion.st = 0; __issue_creg_rw()
402 st = creg_queue_cmd(card, op, addr, cnt8, buf, stream, creg_cmd_done_cb, __issue_creg_rw()
404 if (st) __issue_creg_rw()
405 return st; __issue_creg_rw()
419 st = wait_for_completion_timeout(completion.cmd_done, timeout); __issue_creg_rw()
420 if (st == 0) { __issue_creg_rw()
433 if (completion.st) { __issue_creg_rw()
445 completion.st, addr); __issue_creg_rw()
446 return completion.st; __issue_creg_rw()
462 int st; issue_creg_rw() local
469 st = __issue_creg_rw(card, op, addr, xfer, issue_creg_rw()
471 if (st) issue_creg_rw()
472 return st; issue_creg_rw()
510 int st; rsxx_get_card_size8() local
512 st = rsxx_creg_read(card, CREG_ADD_CARD_SIZE, rsxx_get_card_size8()
514 if (st) rsxx_get_card_size8()
515 return st; rsxx_get_card_size8()
611 int st) read_hw_log_done()
623 if (st) read_hw_log_done()
654 int st; rsxx_read_hw_log() local
656 st = creg_queue_cmd(card, CREG_OP_READ, CREG_ADD_LOG, rsxx_read_hw_log()
659 if (st) rsxx_read_hw_log()
663 return st; rsxx_read_hw_log()
682 int st; rsxx_reg_access() local
684 st = copy_from_user(&cmd, ucmd, sizeof(cmd)); rsxx_reg_access()
685 if (st) rsxx_reg_access()
691 st = issue_reg_cmd(card, &cmd, read); rsxx_reg_access()
692 if (st) rsxx_reg_access()
693 return st; rsxx_reg_access()
695 st = put_user(cmd.stat, &ucmd->stat); rsxx_reg_access()
696 if (st) rsxx_reg_access()
700 st = copy_to_user(ucmd->data, cmd.data, cmd.cnt); rsxx_reg_access()
701 if (st) rsxx_reg_access()
371 creg_cmd_done_cb(struct rsxx_cardinfo *card, struct creg_cmd *cmd, int st) creg_cmd_done_cb() argument
609 read_hw_log_done(struct rsxx_cardinfo *card, struct creg_cmd *cmd, int st) read_hw_log_done() argument
H A Dconfig.c101 int st; rsxx_save_config() local
124 st = rsxx_creg_write(card, CREG_ADD_CONFIG, sizeof(cfg), &cfg, 1); rsxx_save_config()
125 if (st) rsxx_save_config()
126 return st; rsxx_save_config()
133 int st; rsxx_load_config() local
136 st = rsxx_creg_read(card, CREG_ADD_CONFIG, sizeof(card->config), rsxx_load_config()
138 if (st) { rsxx_load_config()
141 return st; rsxx_load_config()
183 st = rsxx_save_config(card); rsxx_load_config()
184 if (st) rsxx_load_config()
185 return st; rsxx_load_config()
/linux-4.1.27/net/netfilter/
H A Dnf_conntrack_standalone.c58 struct ct_iter_state *st = seq->private; ct_get_first() local
61 for (st->bucket = 0; ct_get_first()
62 st->bucket < net->ct.htable_size; ct_get_first()
63 st->bucket++) { ct_get_first()
64 n = rcu_dereference(hlist_nulls_first_rcu(&net->ct.hash[st->bucket])); ct_get_first()
75 struct ct_iter_state *st = seq->private; ct_get_next() local
79 if (likely(get_nulls_value(head) == st->bucket)) { ct_get_next()
80 if (++st->bucket >= net->ct.htable_size) ct_get_next()
85 &net->ct.hash[st->bucket])); ct_get_next()
103 struct ct_iter_state *st = seq->private; __acquires() local
105 st->time_now = ktime_get_real_ns(); __acquires()
146 struct ct_iter_state *st = s->private; ct_show_delta_time() local
152 delta_time = st->time_now - tstamp->start; ct_show_delta_time()
311 const struct ip_conntrack_stat *st = v; ct_cpu_seq_show() local
321 st->searched, ct_cpu_seq_show()
322 st->found, ct_cpu_seq_show()
323 st->new, ct_cpu_seq_show()
324 st->invalid, ct_cpu_seq_show()
325 st->ignore, ct_cpu_seq_show()
326 st->delete, ct_cpu_seq_show()
327 st->delete_list, ct_cpu_seq_show()
328 st->insert, ct_cpu_seq_show()
329 st->insert_failed, ct_cpu_seq_show()
330 st->drop, ct_cpu_seq_show()
331 st->early_drop, ct_cpu_seq_show()
332 st->error, ct_cpu_seq_show()
334 st->expect_new, ct_cpu_seq_show()
335 st->expect_create, ct_cpu_seq_show()
336 st->expect_delete, ct_cpu_seq_show()
337 st->search_restart ct_cpu_seq_show()
/linux-4.1.27/arch/arm/mach-sa1100/
H A Dirq.c95 struct sa1100irq_state *st = &sa1100irq_state; sa1100irq_suspend() local
97 st->saved = 1; sa1100irq_suspend()
98 st->icmr = ICMR; sa1100irq_suspend()
99 st->iclr = ICLR; sa1100irq_suspend()
100 st->iccr = ICCR; sa1100irq_suspend()
114 struct sa1100irq_state *st = &sa1100irq_state; sa1100irq_resume() local
116 if (st->saved) { sa1100irq_resume()
117 ICCR = st->iccr; sa1100irq_resume()
118 ICLR = st->iclr; sa1100irq_resume()
120 ICMR = st->icmr; sa1100irq_resume()
/linux-4.1.27/drivers/net/
H A Dsb1000.c463 unsigned char st[7]; sb1000_reset() local
480 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_reset()
482 if (st[3] != 0xf0) sb1000_reset()
493 unsigned char st[7]; sb1000_check_CRC() local
497 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_check_CRC()
499 if (st[1] != st[3] || st[2] != st[4]) sb1000_check_CRC()
501 crc = st[1] << 8 | st[2]; sb1000_check_CRC()
510 unsigned char st[7]; sb1000_start_get_set_command() local
512 return card_send_command(ioaddr, name, Command0, st); sb1000_start_get_set_command()
521 unsigned char st[7]; sb1000_end_get_set_command() local
524 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_end_get_set_command()
526 return card_send_command(ioaddr, name, Command1, st); sb1000_end_get_set_command()
535 unsigned char st[7]; sb1000_activate() local
539 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_activate()
541 if ((status = card_send_command(ioaddr, name, Command1, st))) sb1000_activate()
543 if (st[3] != 0xf1) { sb1000_activate()
559 unsigned char st[7]; sb1000_get_firmware_version() local
564 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_get_firmware_version()
566 if (st[0] != 0xa3) sb1000_get_firmware_version()
568 version[0] = st[1]; sb1000_get_firmware_version()
569 version[1] = st[2]; sb1000_get_firmware_version()
582 unsigned char st[7]; sb1000_get_frequency() local
588 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_get_frequency()
590 *frequency = ((st[1] << 8 | st[2]) << 8 | st[3]) << 8 | st[4]; sb1000_get_frequency()
598 unsigned char st[7]; sb1000_set_frequency() local
621 return card_send_command(ioaddr, name, Command0, st); sb1000_set_frequency()
633 unsigned char st[7]; sb1000_get_PIDs() local
640 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_get_PIDs()
642 PID[0] = st[1] << 8 | st[2]; sb1000_get_PIDs()
644 if ((status = card_send_command(ioaddr, name, Command1, st))) sb1000_get_PIDs()
646 PID[1] = st[1] << 8 | st[2]; sb1000_get_PIDs()
648 if ((status = card_send_command(ioaddr, name, Command2, st))) sb1000_get_PIDs()
650 PID[2] = st[1] << 8 | st[2]; sb1000_get_PIDs()
652 if ((status = card_send_command(ioaddr, name, Command3, st))) sb1000_get_PIDs()
654 PID[3] = st[1] << 8 | st[2]; sb1000_get_PIDs()
665 unsigned char st[7]; sb1000_set_PIDs() local
681 if ((status = card_send_command(ioaddr, name, Command0, st))) sb1000_set_PIDs()
688 if ((status = card_send_command(ioaddr, name, Command1, st))) sb1000_set_PIDs()
695 if ((status = card_send_command(ioaddr, name, Command2, st))) sb1000_set_PIDs()
702 if ((status = card_send_command(ioaddr, name, Command3, st))) sb1000_set_PIDs()
705 if ((status = card_send_command(ioaddr, name, Command4, st))) sb1000_set_PIDs()
712 sb1000_print_status_buffer(const char* name, unsigned char st[], sb1000_print_status_buffer() argument
717 printk(KERN_DEBUG "%s: status: %02x %02x\n", name, st[0], st[1]); sb1000_print_status_buffer()
746 unsigned char st[2], buffer[FRAMESIZE], session_id, frame_id; sb1000_rx() local
766 insw(ioaddr, (unsigned short*) st, 1); sb1000_rx()
768 printk("cm0: received: %02x %02x\n", st[0], st[1]); sb1000_rx()
776 if (st[0] == session_id) { sb1000_rx()
777 if (st[1] == frame_id || (!frame_id && (st[1] & 0xf0) == 0x30)) { sb1000_rx()
779 } else if ((st[1] & 0xf0) == 0x30 && (st[0] & 0x40)) { sb1000_rx()
784 } else if (st[0] == (session_id | 0x40)) { sb1000_rx()
785 if ((st[1] & 0xf0) == 0x30) { sb1000_rx()
799 "expecting %02x %02x\n", dev->name, st[0], st[1], sb1000_rx()
807 lp->rx_frame_id[ns] = 0x30 | ((st[1] + 1) & 0x0f); sb1000_rx()
809 if (st[0] & 0x40) { sb1000_rx()
886 dev->name, st[0], st[1]); sb1000_rx()
890 sb1000_print_status_buffer(dev->name, st, buffer, FrameSize); sb1000_rx()
909 unsigned char st[5]; sb1000_error_dpc() local
922 sb1000_read_status(ioaddr, st); sb1000_error_dpc()
923 if (st[1] & 0x10) sb1000_error_dpc()
1096 unsigned char st; sb1000_interrupt() local
1109 st = inb(ioaddr[1] + 6); sb1000_interrupt()
1110 if (!(st & 0x08 && st & 0x20)) { sb1000_interrupt()
1117 st = inb(ioaddr[0] + 7); sb1000_interrupt()
1124 if (st & 0x01) { sb1000_interrupt()
/linux-4.1.27/drivers/irqchip/
H A Dirq-st.c13 #include <dt-bindings/interrupt-controller/irq-st.h>
51 .compatible = "st,stih415-irq-syscfg",
55 .compatible = "st,stih416-irq-syscfg",
59 .compatible = "st,stih407-irq-syscfg",
63 .compatible = "st,stid127-irq-syscfg",
122 channels = of_property_count_u32_elems(np, "st,irq-device"); st_irq_syscfg_enable()
124 dev_err(&pdev->dev, "st,enable-irq-device must have 2 elems\n"); st_irq_syscfg_enable()
128 channels = of_property_count_u32_elems(np, "st,fiq-device"); st_irq_syscfg_enable()
130 dev_err(&pdev->dev, "st,enable-fiq-device must have 2 elems\n"); st_irq_syscfg_enable()
135 of_property_read_u32_index(np, "st,irq-device", i, &device); st_irq_syscfg_enable()
141 of_property_read_u32_index(np, "st,fiq-device", i, &device); st_irq_syscfg_enable()
149 of_property_read_u32(np, "st,invert-ext", &invert); st_irq_syscfg_enable()
172 ddata->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscfg"); st_irq_syscfg_probe()
/linux-4.1.27/arch/tile/kernel/
H A Dmcount_64.S28 st sp, lr
33 st r29, sp
36 { st r29, r0; addli r29, r29, REGSIZE }
37 { st r29, r1; addli r29, r29, REGSIZE }
38 { st r29, r2; addli r29, r29, REGSIZE }
39 { st r29, r3; addli r29, r29, REGSIZE }
40 { st r29, r4; addli r29, r29, REGSIZE }
41 { st r29, r5; addli r29, r29, REGSIZE }
42 { st r29, r6; addli r29, r29, REGSIZE }
43 { st r29, r7; addli r29, r29, REGSIZE }
44 { st r29, r8; addli r29, r29, REGSIZE }
45 { st r29, r9; addli r29, r29, REGSIZE }
46 { st r29, r10; addli r29, r29, REGSIZE }
H A Dregs_64.S46 #define SAVE_REG(r) { st r12, r; addi r12, r12, 8 }
57 st sp, lr
64 st r11, r10
74 st r3, sp
78 st r3, lr
116 st r0, \reg
121 st r0, lr
126 st r0, r1
133 st r0, r1
137 st r0, zero /* clear faultnum */
141 st r0, zero /* clear orig_r0 */
/linux-4.1.27/arch/m68k/include/asm/
H A Dsun3xflop.h115 register unsigned char st; sun3xflop_hardint() local
130 // printk("doing pdma\n");// st %x\n", sun_fdc->status_82072); sun3xflop_hardint()
143 /* st=fd_inb(virtual_dma_port+4) & 0x80 ; */ sun3xflop_hardint()
144 st = *(sun3x_fdc.status_r); sun3xflop_hardint()
145 /* if(st != 0xa0) */ sun3xflop_hardint()
148 if((st & 0x80) == 0) { sun3xflop_hardint()
154 if((st & 0x20) == 0) sun3xflop_hardint()
167 /* st = fd_inb(virtual_dma_port+4); */ sun3xflop_hardint()
168 st = *(sun3x_fdc.status_r); sun3xflop_hardint()
174 // printk("st=%02x\n", st); sun3xflop_hardint()
175 if(st == 0x20) sun3xflop_hardint()
177 if(!(st & 0x20)) { sun3xflop_hardint()
/linux-4.1.27/drivers/net/ethernet/sfc/
H A Dtx.c1011 static int tso_start(struct tso_state *st, struct efx_nic *efx, tso_start() argument
1019 st->ip_off = skb_network_header(skb) - skb->data; tso_start()
1020 st->tcp_off = skb_transport_header(skb) - skb->data; tso_start()
1021 header_len = st->tcp_off + (tcp_hdr(skb)->doff << 2u); tso_start()
1023 st->header_len = header_len; tso_start()
1024 st->in_len = in_len; tso_start()
1025 if (st->protocol == htons(ETH_P_IP)) { tso_start()
1026 st->ip_base_len = st->header_len - st->ip_off; tso_start()
1027 st->ipv4_id = ntohs(ip_hdr(skb)->id); tso_start()
1029 st->ip_base_len = st->header_len - st->tcp_off; tso_start()
1030 st->ipv4_id = 0; tso_start()
1032 st->seqnum = ntohl(tcp_hdr(skb)->seq); tso_start()
1038 st->out_len = skb->len - header_len; tso_start()
1041 st->header_unmap_len = 0; tso_start()
1044 st->dma_flags = 0; tso_start()
1045 st->unmap_len = 0; tso_start()
1051 st->dma_flags = EFX_TX_BUF_MAP_SINGLE; tso_start()
1052 st->dma_addr = dma_addr; tso_start()
1053 st->unmap_addr = dma_addr; tso_start()
1054 st->unmap_len = in_len; tso_start()
1058 st->header_dma_addr = dma_addr; tso_start()
1059 st->header_unmap_len = skb_headlen(skb); tso_start()
1060 st->dma_flags = 0; tso_start()
1061 st->dma_addr = dma_addr + header_len; tso_start()
1062 st->unmap_len = 0; tso_start()
1068 static int tso_get_fragment(struct tso_state *st, struct efx_nic *efx, tso_get_fragment() argument
1071 st->unmap_addr = skb_frag_dma_map(&efx->pci_dev->dev, frag, 0, tso_get_fragment()
1073 if (likely(!dma_mapping_error(&efx->pci_dev->dev, st->unmap_addr))) { tso_get_fragment()
1074 st->dma_flags = 0; tso_get_fragment()
1075 st->unmap_len = skb_frag_size(frag); tso_get_fragment()
1076 st->in_len = skb_frag_size(frag); tso_get_fragment()
1077 st->dma_addr = st->unmap_addr; tso_get_fragment()
1088 * @st: TSO state
1095 struct tso_state *st) tso_fill_packet_with_fragment()
1100 if (st->in_len == 0) tso_fill_packet_with_fragment()
1102 if (st->packet_space == 0) tso_fill_packet_with_fragment()
1105 EFX_BUG_ON_PARANOID(st->in_len <= 0); tso_fill_packet_with_fragment()
1106 EFX_BUG_ON_PARANOID(st->packet_space <= 0); tso_fill_packet_with_fragment()
1108 n = min(st->in_len, st->packet_space); tso_fill_packet_with_fragment()
1110 st->packet_space -= n; tso_fill_packet_with_fragment()
1111 st->out_len -= n; tso_fill_packet_with_fragment()
1112 st->in_len -= n; tso_fill_packet_with_fragment()
1114 efx_tx_queue_insert(tx_queue, st->dma_addr, n, &buffer); tso_fill_packet_with_fragment()
1116 if (st->out_len == 0) { tso_fill_packet_with_fragment()
1120 } else if (st->packet_space != 0) { tso_fill_packet_with_fragment()
1124 if (st->in_len == 0) { tso_fill_packet_with_fragment()
1126 buffer->unmap_len = st->unmap_len; tso_fill_packet_with_fragment()
1128 buffer->flags |= st->dma_flags; tso_fill_packet_with_fragment()
1129 st->unmap_len = 0; tso_fill_packet_with_fragment()
1132 st->dma_addr += n; tso_fill_packet_with_fragment()
1140 * @st: TSO state
1147 struct tso_state *st) tso_start_new_packet()
1151 bool is_last = st->out_len <= skb_shinfo(skb)->gso_size; tso_start_new_packet()
1155 st->packet_space = skb_shinfo(skb)->gso_size; tso_start_new_packet()
1158 st->packet_space = st->out_len; tso_start_new_packet()
1162 if (!st->header_unmap_len) { tso_start_new_packet()
1169 header = efx_tsoh_get_buffer(tx_queue, buffer, st->header_len); tso_start_new_packet()
1173 tsoh_th = (struct tcphdr *)(header + st->tcp_off); tso_start_new_packet()
1176 memcpy(header, skb->data, st->header_len); tso_start_new_packet()
1178 tsoh_th->seq = htonl(st->seqnum); tso_start_new_packet()
1181 ip_length = st->ip_base_len + st->packet_space; tso_start_new_packet()
1183 if (st->protocol == htons(ETH_P_IP)) { tso_start_new_packet()
1185 (struct iphdr *)(header + st->ip_off); tso_start_new_packet()
1188 tsoh_iph->id = htons(st->ipv4_id); tso_start_new_packet()
1191 (struct ipv6hdr *)(header + st->ip_off); tso_start_new_packet()
1213 ESF_DZ_TX_TSO_IP_ID, st->ipv4_id, tso_start_new_packet()
1214 ESF_DZ_TX_TSO_TCP_SEQNO, st->seqnum); tso_start_new_packet()
1221 buffer->dma_addr = st->header_dma_addr; tso_start_new_packet()
1222 buffer->len = st->header_len; tso_start_new_packet()
1225 buffer->unmap_len = st->header_unmap_len; tso_start_new_packet()
1230 st->header_unmap_len = 0; tso_start_new_packet()
1238 st->seqnum += skb_shinfo(skb)->gso_size; tso_start_new_packet()
1241 ++st->ipv4_id; tso_start_new_packet()
1093 tso_fill_packet_with_fragment(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, struct tso_state *st) tso_fill_packet_with_fragment() argument
1145 tso_start_new_packet(struct efx_tx_queue *tx_queue, const struct sk_buff *skb, struct tso_state *st) tso_start_new_packet() argument
/linux-4.1.27/arch/sparc/lib/
H A Dmemcpy.S22 st %t0, [%dst + (offset) + 0x00]; \
23 st %t1, [%dst + (offset) + 0x04]; \
24 st %t2, [%dst + (offset) + 0x08]; \
25 st %t3, [%dst + (offset) + 0x0c]; \
26 st %t4, [%dst + (offset) + 0x10]; \
27 st %t5, [%dst + (offset) + 0x14]; \
28 st %t6, [%dst + (offset) + 0x18]; \
29 st %t7, [%dst + (offset) + 0x1c];
44 st %t0, [%dst - (offset) - 0x10]; \
45 st %t1, [%dst - (offset) - 0x0c]; \
46 st %t2, [%dst - (offset) - 0x08]; \
47 st %t3, [%dst - (offset) - 0x04];
67 st %t0, [%dst - (offset) - 0x20]; \
68 st %t1, [%dst - (offset) - 0x1c]; \
69 st %t2, [%dst - (offset) - 0x18]; \
70 st %t3, [%dst - (offset) - 0x14]; \
71 st %t4, [%dst - (offset) - 0x10]; \
72 st %t5, [%dst - (offset) - 0x0c]; \
73 st %t6, [%dst - (offset) - 0x08]; \
74 st %t7, [%dst - (offset) - 0x04];
89 st %t0, [%dst + (offset) + 0x00]; \
90 st %t1, [%dst + (offset) + 0x04]; \
91 st %t2, [%dst + (offset) + 0x08]; \
92 st %t3, [%dst + (offset) + 0x0c];
226 st %o4, [%o0]
274 st %g2, [%o0 - 0x08]
276 st %g3, [%o0 - 0x04]
285 st %g2, [%o0]
350 st %g2, [%o0]
445 st %g2, [%i0]
451 st %g2, [%i0 + 4]
457 st %g2, [%i0 + 8]
465 st %g2, [%i0 + 12]
476 st %g2, [%i0]
536 st %g2, [%o0 + 0x00]
537 st %g3, [%o0 + 0x04]
/linux-4.1.27/drivers/video/backlight/
H A Dlms283gf05.c129 struct lms283gf05_state *st = lcd_get_data(ld); lms283gf05_power_set() local
130 struct spi_device *spi = st->spi; lms283gf05_power_set()
155 struct lms283gf05_state *st; lms283gf05_probe() local
169 st = devm_kzalloc(&spi->dev, sizeof(struct lms283gf05_state), lms283gf05_probe()
171 if (st == NULL) lms283gf05_probe()
174 ld = devm_lcd_device_register(&spi->dev, "lms283gf05", &spi->dev, st, lms283gf05_probe()
179 st->spi = spi; lms283gf05_probe()
180 st->ld = ld; lms283gf05_probe()
182 spi_set_drvdata(spi, st); lms283gf05_probe()
/linux-4.1.27/fs/udf/
H A Dpartition.c116 struct sparingTable *st = NULL; udf_get_pblock_spar15() local
128 st = (struct sparingTable *) udf_get_pblock_spar15()
134 if (st) { udf_get_pblock_spar15()
135 for (i = 0; i < le16_to_cpu(st->reallocationTableLen); i++) { udf_get_pblock_spar15()
136 struct sparingEntry *entry = &st->mapEntry[i]; udf_get_pblock_spar15()
155 struct sparingTable *st = NULL; udf_relocate_blocks() local
175 st = (struct sparingTable *) udf_relocate_blocks()
180 if (!st) { udf_relocate_blocks()
186 le16_to_cpu(st->reallocationTableLen); udf_relocate_blocks()
188 struct sparingEntry *entry = &st->mapEntry[k]; udf_relocate_blocks()
198 st = (struct sparingTable *) udf_relocate_blocks()
206 udf_update_tag((char *)st, len); udf_relocate_blocks()
229 struct sparingEntry *entry = &st->mapEntry[l]; udf_relocate_blocks()
240 st = (struct sparingTable *)bh->b_data; udf_relocate_blocks()
241 mapEntry = st->mapEntry[l]; udf_relocate_blocks()
244 memmove(&st->mapEntry[k + 1], udf_relocate_blocks()
245 &st->mapEntry[k], udf_relocate_blocks()
248 st->mapEntry[k] = mapEntry; udf_relocate_blocks()
249 udf_update_tag((char *)st, udf_relocate_blocks()
257 st->mapEntry[k].mappedLocation) + udf_relocate_blocks()
/linux-4.1.27/tools/perf/
H A Dbuiltin-lock.c121 struct thread_stat *st; thread_stat_find() local
125 st = container_of(node, struct thread_stat, rb); thread_stat_find()
126 if (st->tid == tid) thread_stat_find()
127 return st; thread_stat_find()
128 else if (tid < st->tid) thread_stat_find()
161 struct thread_stat *st; thread_stat_findnew_after_first() local
163 st = thread_stat_find(tid); thread_stat_findnew_after_first()
164 if (st) thread_stat_findnew_after_first()
165 return st; thread_stat_findnew_after_first()
167 st = zalloc(sizeof(struct thread_stat)); thread_stat_findnew_after_first()
168 if (!st) { thread_stat_findnew_after_first()
173 st->tid = tid; thread_stat_findnew_after_first()
174 INIT_LIST_HEAD(&st->seq_list); thread_stat_findnew_after_first()
176 thread_stat_insert(st); thread_stat_findnew_after_first()
178 return st; thread_stat_findnew_after_first()
187 struct thread_stat *st; thread_stat_findnew_first() local
189 st = zalloc(sizeof(struct thread_stat)); thread_stat_findnew_first()
190 if (!st) { thread_stat_findnew_first()
194 st->tid = tid; thread_stat_findnew_first()
195 INIT_LIST_HEAD(&st->seq_list); thread_stat_findnew_first()
197 rb_link_node(&st->rb, NULL, &thread_stats.rb_node); thread_stat_findnew_first()
198 rb_insert_color(&st->rb, &thread_stats); thread_stat_findnew_first()
201 return st; thread_stat_findnew_first()
277 static void insert_to_result(struct lock_stat *st, insert_to_result() argument
288 if (bigger(st, p)) insert_to_result()
294 rb_link_node(&st->rb, parent, rb); insert_to_result()
295 rb_insert_color(&st->rb, &result); insert_to_result()
705 struct lock_stat *st; print_result() local
721 while ((st = pop_from_result())) { print_result()
723 if (st->discard) { print_result()
729 if (strlen(st->name) < 16) { print_result()
731 pr_info("%20s ", st->name); print_result()
733 strncpy(cut_name, st->name, 16); print_result()
742 pr_info("%10u ", st->nr_acquired); print_result()
743 pr_info("%10u ", st->nr_contended); print_result()
745 pr_info("%15" PRIu64 " ", st->avg_wait_time); print_result()
746 pr_info("%15" PRIu64 " ", st->wait_time_total); print_result()
747 pr_info("%15" PRIu64 " ", st->wait_time_max); print_result()
748 pr_info("%15" PRIu64 " ", st->wait_time_min == ULLONG_MAX ? print_result()
749 0 : st->wait_time_min); print_result()
760 struct thread_stat *st; dump_threads() local
768 st = container_of(node, struct thread_stat, rb); dump_threads()
769 t = perf_session__findnew(session, st->tid); dump_threads()
770 pr_info("%10d: %s\n", st->tid, thread__comm_str(t)); dump_threads()
778 struct lock_stat *st; dump_map() local
782 list_for_each_entry(st, &lockhash_table[i], hash_entry) { dump_map()
783 pr_info(" %p: %s\n", st->addr, st->name); dump_map()
833 struct lock_stat *st; sort_result() local
836 list_for_each_entry(st, &lockhash_table[i], hash_entry) { sort_result()
837 insert_to_result(st, compare); sort_result()
/linux-4.1.27/arch/mn10300/kernel/
H A Dgdb-io-serial.c102 u8 ch, st; gdbstub_io_rx_char() local
130 st = gdbstub_rx_buffer[ix++]; gdbstub_io_rx_char()
134 if (st & UART_LSR_BI) { gdbstub_io_rx_char()
137 } else if (st & (UART_LSR_FE | UART_LSR_OE | UART_LSR_PE)) { gdbstub_io_rx_char()
138 gdbstub_proto("### GDB Rx Error (st=%02x) ###\n", st); gdbstub_io_rx_char()
141 gdbstub_proto("### GDB Rx %02x (st=%02x) ###\n", ch, st); gdbstub_io_rx_char()
/linux-4.1.27/arch/arm/mach-spear/
H A Dspear1340.c27 "st,spear1340",
28 "st,spear1340-evb",
/linux-4.1.27/arch/arc/include/asm/
H A Duaccess.h122 case 4: __arc_put_user_one(*(k), u, "st", __ret); break; \
147 "1: st %1,[%2]\n" \
148 "4: st %R1,[%2, 4]\n" \
227 " st.ab %3, [%1, 4] \n" __arc_copy_from_user()
228 " st.ab %4, [%1, 4] \n" __arc_copy_from_user()
229 " st.ab %5, [%1, 4] \n" __arc_copy_from_user()
230 " st.ab %6, [%1, 4] \n" __arc_copy_from_user()
255 " st.ab %3, [%1,4] \n" __arc_copy_from_user()
256 " st.ab %4, [%1,4] \n" __arc_copy_from_user()
278 " st.ab %3, [%1,4] \n" __arc_copy_from_user()
341 " st.ab %5, [%1, 4] \n" __arc_copy_from_user()
342 " st.ab %6, [%1, 4] \n" __arc_copy_from_user()
343 " st.ab %7, [%1, 4] \n" __arc_copy_from_user()
344 " st.ab %8, [%1, 4] \n" __arc_copy_from_user()
351 " st.ab %5, [%1,4] \n" __arc_copy_from_user()
352 " st.ab %6, [%1,4] \n" __arc_copy_from_user()
356 " st.ab %5, [%1,4] \n" __arc_copy_from_user()
452 "1: st.ab %3, [%1, 4] \n" __arc_copy_to_user()
453 "11: st.ab %4, [%1, 4] \n" __arc_copy_to_user()
454 "12: st.ab %5, [%1, 4] \n" __arc_copy_to_user()
455 "13: st.ab %6, [%1, 4] \n" __arc_copy_to_user()
480 "14: st.ab %3, [%1,4] \n" __arc_copy_to_user()
481 "15: st.ab %4, [%1,4] \n" __arc_copy_to_user()
503 "16: st.ab %3, [%1,4] \n" __arc_copy_to_user()
566 "1: st.ab %5, [%1, 4] \n" __arc_copy_to_user()
567 "11: st.ab %6, [%1, 4] \n" __arc_copy_to_user()
568 "12: st.ab %7, [%1, 4] \n" __arc_copy_to_user()
569 "13: st.ab %8, [%1, 4] \n" __arc_copy_to_user()
576 "14: st.ab %5, [%1,4] \n" __arc_copy_to_user()
577 "15: st.ab %6, [%1,4] \n" __arc_copy_to_user()
581 "16: st.ab %5, [%1,4] \n" __arc_copy_to_user()
631 "77: st.ab %2, [%0,4] \n" __arc_clear_user()
/linux-4.1.27/net/ipv6/
H A Daddrconf_core.c38 __be32 st; __ipv6_addr_type() local
40 st = addr->s6_addr32[0]; __ipv6_addr_type()
45 if ((st & htonl(0xE0000000)) != htonl(0x00000000) && __ipv6_addr_type()
46 (st & htonl(0xE0000000)) != htonl(0xE0000000)) __ipv6_addr_type()
50 if ((st & htonl(0xFF000000)) == htonl(0xFF000000)) { __ipv6_addr_type()
57 if ((st & htonl(0xFFC00000)) == htonl(0xFE800000)) __ipv6_addr_type()
60 if ((st & htonl(0xFFC00000)) == htonl(0xFEC00000)) __ipv6_addr_type()
63 if ((st & htonl(0xFE000000)) == htonl(0xFC000000)) __ipv6_addr_type()
/linux-4.1.27/sound/parisc/
H A Dharmony.c171 harmony_write(h, HARMONY_GAINCTL, h->st.gain); harmony_unmute()
184 (h->st.format << 6) | harmony_set_control()
185 (h->st.stereo << 5) | harmony_set_control()
186 (h->st.rate)); harmony_set_control()
207 if (h->psubs && h->st.playing) { snd_harmony_interrupt()
226 if (h->csubs && h->st.capturing) { snd_harmony_interrupt()
310 if (h->st.capturing) snd_harmony_playback_trigger()
316 h->st.playing = 1; snd_harmony_playback_trigger()
323 h->st.playing = 0; snd_harmony_playback_trigger()
346 if (h->st.playing) snd_harmony_capture_trigger()
352 h->st.capturing = 1; snd_harmony_capture_trigger()
359 h->st.capturing = 0; snd_harmony_capture_trigger()
380 int o = h->st.format; snd_harmony_set_data_format()
413 if (h->st.capturing) snd_harmony_playback_prepare()
420 h->st.playing = 0; snd_harmony_playback_prepare()
422 h->st.rate = snd_harmony_rate_bits(rt->rate); snd_harmony_playback_prepare()
423 h->st.format = snd_harmony_set_data_format(h, rt->format, 0); snd_harmony_playback_prepare()
426 h->st.stereo = HARMONY_SS_STEREO; snd_harmony_playback_prepare()
428 h->st.stereo = HARMONY_SS_MONO; snd_harmony_playback_prepare()
443 if (h->st.playing) snd_harmony_capture_prepare()
450 h->st.capturing = 0; snd_harmony_capture_prepare()
452 h->st.rate = snd_harmony_rate_bits(rt->rate); snd_harmony_capture_prepare()
453 h->st.format = snd_harmony_set_data_format(h, rt->format, 0); snd_harmony_capture_prepare()
456 h->st.stereo = HARMONY_SS_STEREO; snd_harmony_capture_prepare()
458 h->st.stereo = HARMONY_SS_MONO; snd_harmony_capture_prepare()
475 if (!(h->st.playing) || (h->psubs == NULL)) snd_harmony_playback_pointer()
504 if (!(h->st.capturing) || (h->csubs == NULL)) snd_harmony_capture_pointer()
681 h->st.format = snd_harmony_set_data_format(h, snd_harmony_pcm_init()
691 harmony_write(h, HARMONY_GAINCTL, h->st.gain); snd_harmony_set_new_gain()
724 left = (h->st.gain >> shift_left) & mask; snd_harmony_volume_get()
725 right = (h->st.gain >> shift_right) & mask; snd_harmony_volume_get()
750 int old_gain = h->st.gain; snd_harmony_volume_put()
757 h->st.gain &= ~( (mask << shift_left ) ); snd_harmony_volume_put()
758 h->st.gain |= (left << shift_left); snd_harmony_volume_put()
764 h->st.gain &= ~( (mask << shift_right) ); snd_harmony_volume_put()
765 h->st.gain |= (right << shift_right); snd_harmony_volume_put()
772 return h->st.gain != old_gain; snd_harmony_volume_put()
793 value = (h->st.gain >> HARMONY_GAIN_IS_SHIFT) & 1; snd_harmony_captureroute_get()
807 int old_gain = h->st.gain; snd_harmony_captureroute_put()
812 h->st.gain &= ~HARMONY_GAIN_IS_MASK; snd_harmony_captureroute_put()
813 h->st.gain |= value << HARMONY_GAIN_IS_SHIFT; snd_harmony_captureroute_put()
819 return h->st.gain != old_gain; snd_harmony_captureroute_put()
858 h->st.gain = HARMONY_GAIN_DEFAULT; snd_harmony_mixer_reset()
/linux-4.1.27/drivers/iio/orientation/
H A Dhid-sensor-incl-3d.c251 struct incl_3d_state *st) incl_3d_parse_report()
259 &st->incl[CHANNEL_SCAN_INDEX_X]); incl_3d_parse_report()
263 st->incl[CHANNEL_SCAN_INDEX_X].size); incl_3d_parse_report()
269 &st->incl[CHANNEL_SCAN_INDEX_Y]); incl_3d_parse_report()
273 st->incl[CHANNEL_SCAN_INDEX_Y].size); incl_3d_parse_report()
279 &st->incl[CHANNEL_SCAN_INDEX_Z]); incl_3d_parse_report()
283 st->incl[CHANNEL_SCAN_INDEX_Z].size); incl_3d_parse_report()
286 st->incl[0].index, incl_3d_parse_report()
287 st->incl[0].report_id, incl_3d_parse_report()
288 st->incl[1].index, st->incl[1].report_id, incl_3d_parse_report()
289 st->incl[2].index, st->incl[2].report_id); incl_3d_parse_report()
291 st->scale_precision = hid_sensor_format_scale( incl_3d_parse_report()
293 &st->incl[CHANNEL_SCAN_INDEX_X], incl_3d_parse_report()
294 &st->scale_pre_decml, &st->scale_post_decml); incl_3d_parse_report()
297 if (st->common_attributes.sensitivity.index < 0) { incl_3d_parse_report()
302 &st->common_attributes.sensitivity); incl_3d_parse_report()
304 st->common_attributes.sensitivity.index, incl_3d_parse_report()
305 st->common_attributes.sensitivity.report_id); incl_3d_parse_report()
247 incl_3d_parse_report(struct platform_device *pdev, struct hid_sensor_hub_device *hsdev, struct iio_chan_spec *channels, unsigned usage_id, struct incl_3d_state *st) incl_3d_parse_report() argument
/linux-4.1.27/arch/mips/boot/dts/include/dt-bindings/phy/
H A Dphy.h6 * Author: Gabriel Fernandez <gabriel.fernandez@st.com>
/linux-4.1.27/include/linux/platform_data/
H A Dst_sensors_pdata.h6 * Denis Ciocca <denis.ciocca@st.com>
/linux-4.1.27/arch/powerpc/boot/dts/include/dt-bindings/phy/
H A Dphy.h6 * Author: Gabriel Fernandez <gabriel.fernandez@st.com>
/linux-4.1.27/arch/arm64/boot/dts/include/dt-bindings/phy/
H A Dphy.h6 * Author: Gabriel Fernandez <gabriel.fernandez@st.com>
/linux-4.1.27/arch/metag/boot/dts/include/dt-bindings/phy/
H A Dphy.h6 * Author: Gabriel Fernandez <gabriel.fernandez@st.com>
/linux-4.1.27/arch/arm/boot/dts/include/dt-bindings/phy/
H A Dphy.h6 * Author: Gabriel Fernandez <gabriel.fernandez@st.com>
/linux-4.1.27/scripts/kconfig/
H A Dexpr.h156 #define for_all_properties(sym, st, tok) \
157 for (st = sym->prop; st; st = st->next) \
158 if (st->type == (tok))
159 #define for_all_defaults(sym, st) for_all_properties(sym, st, P_DEFAULT)
160 #define for_all_choices(sym, st) for_all_properties(sym, st, P_CHOICE)
161 #define for_all_prompts(sym, st) \
162 for (st = sym->prop; st; st = st->next) \
163 if (st->text)
/linux-4.1.27/include/dt-bindings/phy/
H A Dphy.h6 * Author: Gabriel Fernandez <gabriel.fernandez@st.com>
/linux-4.1.27/include/linux/iio/common/
H A Dst_sensors_spi.h6 * Denis Ciocca <denis.ciocca@st.com>
/linux-4.1.27/drivers/mfd/
H A Dstmpe-i2c.c57 { .compatible = "st,stmpe610", .data = (void *)STMPE610, },
58 { .compatible = "st,stmpe801", .data = (void *)STMPE801, },
59 { .compatible = "st,stmpe811", .data = (void *)STMPE811, },
60 { .compatible = "st,stmpe1601", .data = (void *)STMPE1601, },
61 { .compatible = "st,stmpe1801", .data = (void *)STMPE1801, },
62 { .compatible = "st,stmpe2401", .data = (void *)STMPE2401, },
63 { .compatible = "st,stmpe2403", .data = (void *)STMPE2403, },
/linux-4.1.27/drivers/net/ethernet/brocade/bna/
H A Dbfa_cs.h32 * st - state, eg. reset
36 #define bfa_sm_state_decl(oc, st, otype, etype) \
37 static void oc ## _sm_ ## st(otype * fsm, etype event)
56 * st - state, eg. reset
60 #define bfa_fsm_state_decl(oc, st, otype, etype) \
61 static void oc ## _sm_ ## st(otype * fsm, etype event); \
62 static void oc ## _sm_ ## st ## _entry(otype * fsm)
/linux-4.1.27/block/partitions/
H A Datari.c23 be32_to_cpu((pi)->st) <= (hdsiz) && \
24 be32_to_cpu((pi)->st) + be32_to_cpu((pi)->siz) <= (hdsiz))
76 put_partition (state, slot, be32_to_cpu(pi->st), atari_partition()
85 partsect = extensect = be32_to_cpu(pi->st); atari_partition()
102 partsect + be32_to_cpu(xrs->part[0].st), atari_partition()
116 partsect = be32_to_cpu(xrs->part[1].st) + extensect; atari_partition()
137 be32_to_cpu(pi->st), atari_partition()
/linux-4.1.27/arch/sparc/include/asm/
H A Dwinmacro.h71 st %g1, [%base_reg + STACKFRAME_SZ + PT_G1]; \
78 st %scratch, [%base_reg + STACKFRAME_SZ + PT_Y];
81 st %pt_psr, [%base_reg + STACKFRAME_SZ + PT_PSR]; \
82 st %pt_pc, [%base_reg + STACKFRAME_SZ + PT_PC]; \
83 st %pt_npc, [%base_reg + STACKFRAME_SZ + PT_NPC];
95 st %sp, [%scratch + TI_RWIN_SPTRS]; \
103 st %scratch, [%cur_reg + TI_W_SAVED];
/linux-4.1.27/drivers/power/reset/
H A Dst-poweroff.c6 * Author: Christophe Kerello <christophe.kerello@st.com>
102 .compatible = "st,stih415-restart",
105 .compatible = "st,stih416-restart",
108 .compatible = "st,stih407-restart",
111 .compatible = "st,stid127-restart",
130 syscon_regmap_lookup_by_phandle(np, "st,syscfg"); st_reset_probe()
154 MODULE_AUTHOR("Christophe Kerello <christophe.kerello@st.com>");
/linux-4.1.27/drivers/xen/
H A Dprivcmd.c205 struct mmap_mfn_state *st = state; mmap_mfn_range() local
206 struct vm_area_struct *vma = st->vma; mmap_mfn_range()
211 ((unsigned long)(msg->npages << PAGE_SHIFT) >= -st->va)) mmap_mfn_range()
215 if ((msg->va != st->va) || mmap_mfn_range()
223 st->domain, NULL); mmap_mfn_range()
227 st->va += msg->npages << PAGE_SHIFT; mmap_mfn_range()
314 struct mmap_batch_state *st = state; mmap_batch_fn() local
315 struct vm_area_struct *vma = st->vma; mmap_batch_fn()
321 cur_pages = &pages[st->index]; mmap_batch_fn()
324 ret = xen_remap_domain_mfn_array(st->vma, st->va & PAGE_MASK, mfnp, nr, mmap_batch_fn()
325 (int *)mfnp, st->vma->vm_page_prot, mmap_batch_fn()
326 st->domain, cur_pages); mmap_batch_fn()
331 st->global_error = -ENOENT; mmap_batch_fn()
334 if (st->global_error == 0) mmap_batch_fn()
335 st->global_error = 1; mmap_batch_fn()
338 st->va += PAGE_SIZE * nr; mmap_batch_fn()
339 st->index += nr; mmap_batch_fn()
344 static int mmap_return_error(int err, struct mmap_batch_state *st) mmap_return_error() argument
348 if (st->version == 1) { mmap_return_error()
352 ret = get_user(mfn, st->user_mfn); mmap_return_error()
363 return __put_user(mfn, st->user_mfn++); mmap_return_error()
365 st->user_mfn++; mmap_return_error()
366 } else { /* st->version == 2 */ mmap_return_error()
368 return __put_user(err, st->user_err++); mmap_return_error()
370 st->user_err++; mmap_return_error()
378 struct mmap_batch_state *st = state; mmap_return_errors() local
384 ret = mmap_return_error(errs[i], st); mmap_return_errors()
/linux-4.1.27/drivers/thermal/st/
H A Dst_thermal_syscfg.c3 * Author: Ajit Pal Singh <ajitpal.singh@st.com>
108 .sys_compat = "st,stih415-front-syscfg",
118 .sys_compat = "st,stih415-system-syscfg",
128 .sys_compat = "st,stih416-front-syscfg",
138 .sys_compat = "st,stid127-cpu-syscfg",
147 { .compatible = "st,stih415-sas-thermal", .data = &st_415sas_cdata },
148 { .compatible = "st,stih415-mpe-thermal", .data = &st_415mpe_cdata },
149 { .compatible = "st,stih416-sas-thermal", .data = &st_416sas_cdata },
150 { .compatible = "st,stid127-thermal", .data = &st_127_cdata },
176 MODULE_AUTHOR("STMicroelectronics (R&D) Limited <ajitpal.singh@st.com>");
/linux-4.1.27/arch/m32r/boot/
H A Dsetup.S75 st r1, @r0
80 st r1, @r0
85 st r1, @r0
88 st r1, @+r0
91 st r1, @+r0
94 st r1, @r0
108 st r6, @r5
127 st r1, @(MATM_offset,r0) ; Set MATM (T bit ON)
134 st r1,@r0
162 st r5, @r4
/linux-4.1.27/drivers/net/wireless/ath/ath5k/
H A Ddebug.c550 struct ath5k_statistics *st = &ah->stats; read_file_frameerrors() local
558 st->rxerr_crc, read_file_frameerrors()
559 st->rx_all_count > 0 ? read_file_frameerrors()
560 st->rxerr_crc * 100 / st->rx_all_count : 0); read_file_frameerrors()
562 st->rxerr_phy, read_file_frameerrors()
563 st->rx_all_count > 0 ? read_file_frameerrors()
564 st->rxerr_phy * 100 / st->rx_all_count : 0); read_file_frameerrors()
566 if (st->rxerr_phy_code[i]) read_file_frameerrors()
569 i, st->rxerr_phy_code[i]); read_file_frameerrors()
573 st->rxerr_fifo, read_file_frameerrors()
574 st->rx_all_count > 0 ? read_file_frameerrors()
575 st->rxerr_fifo * 100 / st->rx_all_count : 0); read_file_frameerrors()
577 st->rxerr_decrypt, read_file_frameerrors()
578 st->rx_all_count > 0 ? read_file_frameerrors()
579 st->rxerr_decrypt * 100 / st->rx_all_count : 0); read_file_frameerrors()
581 st->rxerr_mic, read_file_frameerrors()
582 st->rx_all_count > 0 ? read_file_frameerrors()
583 st->rxerr_mic * 100 / st->rx_all_count : 0); read_file_frameerrors()
585 st->rxerr_proc, read_file_frameerrors()
586 st->rx_all_count > 0 ? read_file_frameerrors()
587 st->rxerr_proc * 100 / st->rx_all_count : 0); read_file_frameerrors()
589 st->rxerr_jumbo, read_file_frameerrors()
590 st->rx_all_count > 0 ? read_file_frameerrors()
591 st->rxerr_jumbo * 100 / st->rx_all_count : 0); read_file_frameerrors()
593 st->rx_all_count); read_file_frameerrors()
595 st->rx_bytes_count); read_file_frameerrors()
600 st->txerr_retry, read_file_frameerrors()
601 st->tx_all_count > 0 ? read_file_frameerrors()
602 st->txerr_retry * 100 / st->tx_all_count : 0); read_file_frameerrors()
604 st->txerr_fifo, read_file_frameerrors()
605 st->tx_all_count > 0 ? read_file_frameerrors()
606 st->txerr_fifo * 100 / st->tx_all_count : 0); read_file_frameerrors()
608 st->txerr_filt, read_file_frameerrors()
609 st->tx_all_count > 0 ? read_file_frameerrors()
610 st->txerr_filt * 100 / st->tx_all_count : 0); read_file_frameerrors()
612 st->tx_all_count); read_file_frameerrors()
614 st->tx_bytes_count); read_file_frameerrors()
627 struct ath5k_statistics *st = &ah->stats; write_file_frameerrors() local
636 st->rxerr_crc = 0; write_file_frameerrors()
637 st->rxerr_phy = 0; write_file_frameerrors()
638 st->rxerr_fifo = 0; write_file_frameerrors()
639 st->rxerr_decrypt = 0; write_file_frameerrors()
640 st->rxerr_mic = 0; write_file_frameerrors()
641 st->rxerr_proc = 0; write_file_frameerrors()
642 st->rxerr_jumbo = 0; write_file_frameerrors()
643 st->rx_all_count = 0; write_file_frameerrors()
644 st->txerr_retry = 0; write_file_frameerrors()
645 st->txerr_fifo = 0; write_file_frameerrors()
646 st->txerr_filt = 0; write_file_frameerrors()
647 st->tx_all_count = 0; write_file_frameerrors()
668 struct ath5k_statistics *st = &ah->stats; read_file_ani() local
722 st->mib_intr); read_file_ani()

Completed in 2858 milliseconds

12345678