Lines Matching defs: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*/
338 static void calculate_response_part_pec(struct ssif_part_buffer *part)
340 u8 addr = part->address;
343 part->pec = i2c_smbus_pec(0, &addr, 1);
345 part->pec = i2c_smbus_pec(part->pec, &part->smbus_cmd, 1);
348 part->pec = i2c_smbus_pec(part->pec, &addr, 1);
349 part->pec = i2c_smbus_pec(part->pec, &part->length, 1);
350 if (part->length)
351 part->pec = i2c_smbus_pec(part->pec, part->payload, part->length);
356 struct ssif_part_buffer *part = &ssif_bmc->part_buf;
358 part->address = GET_8BIT_ADDR(ssif_bmc->client->addr);
359 part->length = (u8)ssif_bmc->response.len;
362 memset(part->payload + part->length, 0, MAX_PAYLOAD_PER_TRANSACTION - part->length);
363 memcpy(&part->payload[0], &ssif_bmc->response.payload[0], part->length);
368 struct ssif_part_buffer *part = &ssif_bmc->part_buf;
371 part->address = GET_8BIT_ADDR(ssif_bmc->client->addr);
372 switch (part->smbus_cmd) {
381 part->length = MAX_PAYLOAD_PER_TRANSACTION;
385 part->payload[0] = 0x00; /* Start Flag */
386 part->payload[1] = 0x01; /* Start Flag */
388 memcpy(&part->payload[2], &ssif_bmc->response.payload[0], part_len);
405 memset(&part->payload[0], 0, MAX_PAYLOAD_PER_TRANSACTION);
406 part->length = ssif_bmc->remain_len + 1;
409 part->payload[0] = ssif_bmc->block_num;
417 part->length = MAX_PAYLOAD_PER_TRANSACTION;
419 part->payload[0] = ssif_bmc->block_num;
424 memcpy(&part->payload[1], ssif_bmc->response.payload + ssif_bmc->nbytes_processed,
431 __func__, part->smbus_cmd);
462 struct ssif_part_buffer *part = &ssif_bmc->part_buf;
465 if (part->index < part->length)
466 *val = part->payload[part->index];
467 else if (part->index == part->length && ssif_bmc->pec_support)
468 *val = part->pec;
472 part->index++;
497 struct ssif_part_buffer *part = &ssif_bmc->part_buf;
502 if (part->index == part->length) {
509 if (part->index != part->length + 1) {
516 part->pec = part->payload[part->length];
519 cpec = i2c_smbus_pec(cpec, &part->smbus_cmd, 1);
520 cpec = i2c_smbus_pec(cpec, &part->length, 1);
530 if (part->length)
531 cpec = i2c_smbus_pec(cpec, part->payload, part->length);
533 if (cpec != part->pec)
542 struct ssif_part_buffer *part = &ssif_bmc->part_buf;
545 switch (part->smbus_cmd) {
547 /* save the whole part to request*/
548 ssif_bmc->request.len = part->length;
549 memcpy(ssif_bmc->request.payload, part->payload, part->length);
558 len = ssif_bmc->request.len + part->length;
567 part->payload, part->length);
568 ssif_bmc->request.len += part->length;
574 __func__, part->smbus_cmd);
581 /* SMBUS command can vary (single or multi-part) */