Lines Matching defs:frame
26 /* last 2 data bytes hold frame checksum */
73 struct pms7003_frame frame;
111 struct pms7003_frame *frame = &state->frame;
122 pms7003_get_pm(frame->data + PMS7003_PM1_OFFSET);
124 pms7003_get_pm(frame->data + PMS7003_PM2P5_OFFSET);
126 pms7003_get_pm(frame->data + PMS7003_PM10_OFFSET);
142 struct pms7003_frame *frame = &state->frame;
156 *val = pms7003_get_pm(frame->data + chan->address);
194 static u16 pms7003_calc_checksum(struct pms7003_frame *frame)
197 (frame->length >> 8) + (u8)frame->length;
200 for (i = 0; i < frame->length - PMS7003_CHECKSUM_LENGTH; i++)
201 checksum += frame->data[i];
206 static bool pms7003_frame_is_okay(struct pms7003_frame *frame)
208 int offset = frame->length - PMS7003_CHECKSUM_LENGTH;
209 u16 checksum = get_unaligned_be16(frame->data + offset);
211 return checksum == pms7003_calc_checksum(frame);
219 struct pms7003_frame *frame = &state->frame;
222 if (!frame->expected_length) {
235 frame->expected_length = num;
236 frame->length = 0;
242 num = min(size, (size_t)(frame->expected_length - frame->length));
243 memcpy(frame->data + frame->length, buf, num);
244 frame->length += num;
246 if (frame->length == frame->expected_length) {
247 if (pms7003_frame_is_okay(frame))
250 frame->expected_length = 0;