Lines Matching full:part

90 	/* Flag to identify a Multi-part Read Transaction */
95 /* Block Number of a Multi-part Read Transaction */
101 /* Buffer for SSIF Transaction part*/
337 static void calculate_response_part_pec(struct ssif_part_buffer *part) in calculate_response_part_pec() argument
339 u8 addr = part->address; in calculate_response_part_pec()
342 part->pec = i2c_smbus_pec(0, &addr, 1); in calculate_response_part_pec()
344 part->pec = i2c_smbus_pec(part->pec, &part->smbus_cmd, 1); in calculate_response_part_pec()
347 part->pec = i2c_smbus_pec(part->pec, &addr, 1); in calculate_response_part_pec()
348 part->pec = i2c_smbus_pec(part->pec, &part->length, 1); in calculate_response_part_pec()
349 if (part->length) in calculate_response_part_pec()
350 part->pec = i2c_smbus_pec(part->pec, part->payload, part->length); in calculate_response_part_pec()
355 struct ssif_part_buffer *part = &ssif_bmc->part_buf; in set_singlepart_response_buffer() local
357 part->address = GET_8BIT_ADDR(ssif_bmc->client->addr); in set_singlepart_response_buffer()
358 part->length = (u8)ssif_bmc->response.len; in set_singlepart_response_buffer()
361 memset(part->payload + part->length, 0, MAX_PAYLOAD_PER_TRANSACTION - part->length); in set_singlepart_response_buffer()
362 memcpy(&part->payload[0], &ssif_bmc->response.payload[0], part->length); in set_singlepart_response_buffer()
367 struct ssif_part_buffer *part = &ssif_bmc->part_buf; in set_multipart_response_buffer() local
370 part->address = GET_8BIT_ADDR(ssif_bmc->client->addr); in set_multipart_response_buffer()
371 switch (part->smbus_cmd) { in set_multipart_response_buffer()
380 part->length = MAX_PAYLOAD_PER_TRANSACTION; in set_multipart_response_buffer()
384 part->payload[0] = 0x00; /* Start Flag */ in set_multipart_response_buffer()
385 part->payload[1] = 0x01; /* Start Flag */ in set_multipart_response_buffer()
387 memcpy(&part->payload[2], &ssif_bmc->response.payload[0], part_len); in set_multipart_response_buffer()
404 memset(&part->payload[0], 0, MAX_PAYLOAD_PER_TRANSACTION); in set_multipart_response_buffer()
405 part->length = ssif_bmc->remain_len + 1; in set_multipart_response_buffer()
408 part->payload[0] = ssif_bmc->block_num; in set_multipart_response_buffer()
416 part->length = MAX_PAYLOAD_PER_TRANSACTION; in set_multipart_response_buffer()
418 part->payload[0] = ssif_bmc->block_num; in set_multipart_response_buffer()
423 memcpy(&part->payload[1], ssif_bmc->response.payload + ssif_bmc->nbytes_processed, in set_multipart_response_buffer()
430 __func__, part->smbus_cmd); in set_multipart_response_buffer()
461 struct ssif_part_buffer *part = &ssif_bmc->part_buf; in handle_read_processed() local
464 if (part->index < part->length) in handle_read_processed()
465 *val = part->payload[part->index]; in handle_read_processed()
466 else if (part->index == part->length && ssif_bmc->pec_support) in handle_read_processed()
467 *val = part->pec; in handle_read_processed()
471 part->index++; in handle_read_processed()
496 struct ssif_part_buffer *part = &ssif_bmc->part_buf; in validate_request_part() local
501 if (part->index == part->length) { in validate_request_part()
508 if (part->index != part->length + 1) { in validate_request_part()
515 part->pec = part->payload[part->length]; in validate_request_part()
518 cpec = i2c_smbus_pec(cpec, &part->smbus_cmd, 1); in validate_request_part()
519 cpec = i2c_smbus_pec(cpec, &part->length, 1); in validate_request_part()
529 if (part->length) in validate_request_part()
530 cpec = i2c_smbus_pec(cpec, part->payload, part->length); in validate_request_part()
532 if (cpec != part->pec) in validate_request_part()
541 struct ssif_part_buffer *part = &ssif_bmc->part_buf; in process_request_part() local
544 switch (part->smbus_cmd) { in process_request_part()
546 /* save the whole part to request*/ in process_request_part()
547 ssif_bmc->request.len = part->length; in process_request_part()
548 memcpy(ssif_bmc->request.payload, part->payload, part->length); in process_request_part()
557 len = ssif_bmc->request.len + part->length; in process_request_part()
566 part->payload, part->length); in process_request_part()
567 ssif_bmc->request.len += part->length; in process_request_part()
573 __func__, part->smbus_cmd); in process_request_part()
580 /* SMBUS command can vary (single or multi-part) */ in process_smbus_cmd()