| /linux/drivers/char/ipmi/ | 
| H A D | ssif_bmc.c | 28 /* Transaction includes the address, the command, the length and the PEC byte */54 	u8 pec;  member
 342 	/* PEC - Start Read Address */  in calculate_response_part_pec()
 343 	part->pec = i2c_smbus_pec(0, &addr, 1);  in calculate_response_part_pec()
 344 	/* PEC - SSIF Command */  in calculate_response_part_pec()
 345 	part->pec = i2c_smbus_pec(part->pec, &part->smbus_cmd, 1);  in calculate_response_part_pec()
 346 	/* PEC - Restart Write Address */  in calculate_response_part_pec()
 348 	part->pec = i2c_smbus_pec(part->pec, &addr, 1);  in calculate_response_part_pec()
 349 	part->pec = i2c_smbus_pec(part->pec, &part->length, 1);  in calculate_response_part_pec()
 351 		part->pec = i2c_smbus_pec(part->pec, part->payload, part->length);  in calculate_response_part_pec()
 [all …]
 
 | 
| /linux/drivers/net/mctp/ | 
| H A D | mctp-i3c.c | 26 /* One byte less to allow for the PEC */28 /* 4 byte MCTP header, no data, 1 byte PEC */
 108 	u8 pec, addr;  in mctp_i3c_read()  local
 145 	/* check PEC, including address byte */  in mctp_i3c_read()
 147 	pec = i2c_smbus_pec(0, &addr, 1);  in mctp_i3c_read()
 148 	pec = i2c_smbus_pec(pec, xfer.data.in, xfer.len - 1);  in mctp_i3c_read()
 149 	if (pec != ((u8 *)xfer.data.in)[xfer.len - 1]) {  in mctp_i3c_read()
 155 	/* Remove PEC */  in mctp_i3c_read()
 368 	u8 addr, pec;  in mctp_i3c_xmit()  local
 394 	/* Need a linear buffer with space for the PEC */  in mctp_i3c_xmit()
 [all …]
 
 | 
| H A D | mctp-i2c.c | 33 /* Allow space for dest_address, command, byte_count, data, PEC */104 	/* Count of bytes following byte_count, excluding PEC */
 278 	u8 pec, calc_pec;  in mctp_i2c_recv()  local
 282 	/* + 1 for the PEC */  in mctp_i2c_recv()
 287 	/* recvlen excludes PEC */  in mctp_i2c_recv()
 301 	pec = midev->rx_buffer[midev->rx_pos - 1];  in mctp_i2c_recv()
 303 	if (pec != calc_pec) {  in mctp_i2c_recv()
 503 		/* Linear case with space, we can just append the PEC */  in mctp_i2c_xmit()
 514 	/* command, bytecount, data, pec */  in mctp_i2c_xmit()
 
 | 
| /linux/arch/s390/pci/ | 
| H A D | pci_event.c | 35 	u16 pec;			/* PCI event code */  member48 	u16 pec;			/* PCI event code */  member
 300 	zpci_dbg(3, "err fid:%x, fh:%x, pec:%x\n",  in __zpci_event_error()
 301 		 ccdf->fid, ccdf->fh, ccdf->pec);  in __zpci_event_error()
 322 	       pdev ? pci_name(pdev) : "n/a", ccdf->pec, ccdf->fid);  in __zpci_event_error()
 327 	switch (ccdf->pec) {  in __zpci_event_error()
 392 	zpci_dbg(3, "avl fid:%x, fh:%x, pec:%x\n",  in __zpci_event_availability()
 393 		 ccdf->fid, ccdf->fh, ccdf->pec);  in __zpci_event_availability()
 398 	switch (ccdf->pec) {  in __zpci_event_availability()
 
 | 
| /linux/drivers/i2c/busses/ | 
| H A D | i2c-amd8111.c | 150 #define AMD_SMB_PRTCL	0x00	/* protocol, PEC */194 	unsigned char protocol, len, pec, temp[2];  in amd8111_access()  local
 199 	pec = (flags & I2C_CLIENT_PEC) ? AMD_SMB_PRTCL_PEC : 0;  in amd8111_access()
 244 		protocol |= AMD_SMB_PRTCL_WORD_DATA | pec;  in amd8111_access()
 265 		protocol |= AMD_SMB_PRTCL_BLOCK_DATA | pec;  in amd8111_access()
 300 		protocol = AMD_SMB_PRTCL_PROC_CALL | pec;  in amd8111_access()
 319 		protocol = AMD_SMB_PRTCL_BLOCK_PROC_CALL | pec;  in amd8111_access()
 
 | 
| H A D | i2c-amd-asf-plat.c | 158 	/* Enable PEC and PEC append */  in amd_asf_setup_target()182 	/* Enable PEC and PEC append */  in amd_asf_access()
 203 	/* Exclude the receive header and PEC */  in amd_asf_xfer()
 
 | 
| H A D | i2c-mlxbf.c | 210 /* Packet error check (PEC) value. */237 #define MLXBF_I2C_MASTER_SEND_PEC_SHIFT   20 /* Send PEC byte when set to 1 */
 275 /* Packet error check (PEC) value. */
 293 #define MLXBF_I2C_SLAVE_SEND_PEC_SHIFT    21 /* Send PEC byte shift. */
 666 	/* Zero PEC byte. */  in mlxbf_i2c_smbus_enable()
 1018 	*data_len = length; /* including PEC byte. */  in mlxbf_i2c_smbus_blk_process_call_func()
 1892 	pec_en = 0; /* Disable PEC since it is not supported. */  in mlxbf_i2c_irq_send()
 2037 	bool read, pec;  in mlxbf_i2c_smbus_xfer()  local
 2043 	pec = flags & I2C_FUNC_SMBUS_PEC;  in mlxbf_i2c_smbus_xfer()
 2054 					  pec);  in mlxbf_i2c_smbus_xfer()
 [all …]
 
 | 
| H A D | i2c-npcm7xx.c | 127 #define NPCM_I2CPEC			0x16 /* PEC Data */575 	u16 PEC_mask; /* PEC bit mask per slave address */
 1538 	dev_info(bus->dev, "i2c%d register slave SA=0x%x, PEC=%d\n", bus->num,  in npcm_i2c_reg_slave()
 2262 	/* for tx PEC is appended to buffer from i2c IF. PEC flag is ignored */  in npcm_i2c_master_start_xmit()
 
 | 
| /linux/drivers/i3c/master/ | 
| H A D | ast2600-i3c-master.c | 109 	 * if the PEC is disabled. We have no way to restrict the length of  in ast2600_i3c_set_dat_ibi()111 	 * PEC checking, which means we drop a byte of payload data  in ast2600_i3c_set_dat_ibi()
 115 		      "Enabling PEC workaround. IBI payloads will be truncated\n");  in ast2600_i3c_set_dat_ibi()
 
 | 
| /linux/drivers/i2c/ | 
| H A D | i2c-core-smbus.c | 61 static u8 i2c_smbus_msg_pec(u8 pec, struct i2c_msg *msg)  in i2c_smbus_msg_pec()  argument65 	pec = i2c_smbus_pec(pec, &addr, 1);  in i2c_smbus_msg_pec()
 68 	return i2c_smbus_pec(pec, msg->buf, msg->len);  in i2c_smbus_msg_pec()
 89 		pr_debug("Bad PEC 0x%02x vs. 0x%02x\n",  in i2c_smbus_check_pec()
 458 		/* Compute PEC if first message is a write */  in i2c_smbus_xfer_emulated()
 465 		/* Ask for PEC if last message is a read */  in i2c_smbus_xfer_emulated()
 479 	/* Check PEC if last message is a read */  in i2c_smbus_xfer_emulated()
 
 | 
| H A D | i2c-dev.c | 427 		 * Setting the PEC flag here won't affect kernel drivers,  in i2cdev_ioctl()430 		 * the PEC flag already set, the i2c-dev driver won't see  in i2cdev_ioctl()
 613 	 * information and maybe a PEC flag.  in i2cdev_open()
 
 | 
| H A D | i2c-smbus.c | 117 		 * use.  We neither handle them, nor try to use PEC here.  in smbus_alert()
 | 
| /linux/include/uapi/linux/ | 
| H A D | i2c.h | 50  *   if used, the SMBus PEC); and this value will be incremented by the number64  * with SMBus PEC.  The transfer terminates with a NAK, or when all those
 
 | 
| H A D | i2c-dev.h | 37 #define I2C_PEC		0x0708	/* != 0 to use PEC with SMBus */
 | 
| /linux/Documentation/i2c/ | 
| H A D | smbus-protocol.rst | 246 Packet Error Checking (PEC)251 PEC adds a CRC-8 error-checking byte to transfers using it, immediately
 264 require PEC checksums.
 
 | 
| H A D | fault-codes.rst | 60 	may have a way to report PEC mismatches on writes from the
 | 
| H A D | dev-interface.rst | 118   Selects SMBus PEC (packet error checking) generation and verification
 | 
| /linux/Documentation/i2c/busses/ | 
| H A D | i2c-amd8111.rst | 35 Supported. Both PEC and block process call support is implemented. Slave
 | 
| H A D | i2c-viapro.rst | 76 The CX700/VX800/VX820 additionally appears to support SMBus PEC, although
 | 
| /linux/drivers/hwmon/ | 
| H A D | max6621.c | 499 	/* Set CONFIG0 register masking temperature alerts and PEC. */  in max6621_probe()505 	/* Set CONFIG1 register for PEC access retry number. */  in max6621_probe()
 
 | 
| /linux/drivers/hwmon/pmbus/ | 
| H A D | pli1209bc.c | 17  * the page register is set to 1 will falsely enable PEC support. Disable
 | 
| /linux/Documentation/ABI/testing/ | 
| H A D | sysfs-class-hwmon | 1068 What:		/sys/class/hwmon/hwmonX/device/pec1070 		PEC support on I2C devices
 
 | 
| /linux/arch/s390/include/asm/ | 
| H A D | ctlreg.h | 204 		unsigned long pec  : 1; /* PAI extension control */  member
 | 
| /linux/drivers/i2c/algos/ | 
| H A D | i2c-algo-bit.c | 363 		 * the SMBus PEC was wrong.  in sendbytes()438 			   or 2 for a PEC transaction. */  in readbytes()
 
 | 
| /linux/Documentation/images/ | 
| H A D | logo.svg | 1579            inkscape:label="Left Pec Shadow"1587            inkscape:label="Right Pec Shadow"
 1594            inkscape:label="Middle Pec Shadow"
 1608            inkscape:label="Left Pec Upper Shadow"
 1616            inkscape:label="Right Pec Side Shadow"
 
 |