On Fri, Jul 24, 2020 at 1:50 AM Wolfram Sang <wsa@xxxxxxxxxx> wrote: > > > > + /* Enable partial slave HW PEC support if requested by the client */ > > + iproc_i2c->en_s_pec = !!(slave->flags & I2C_CLIENT_PEC); > > + if (iproc_i2c->en_s_pec) > > + dev_info(iproc_i2c->device, "Enable PEC\n"); > > Where do you set the I2C_CLIENT_PEC flag for the slave? Is your backend > code publicly available? I2C_CLIENT_PEC should be set by backend before calling i2c_slave_register() ie client->flags |= I2C_CLIENT_PEC; ret = i2c_slave_register(client, i2c_slave_eeprom_slave_cb); ------ ------ ------ My backend code is not yet publicly available. > > I may need a second thought here, but I am not sure I2C_CLIENT_PEC is > the right way to enable PEC. Isn't it actually depending on the backend > if PEC is needed? I.e. is the backend an I2C device or an SMBus device? > Yes, it depends on the backend. If backend is SMBUS device and supports PEC then it should set client->flags |= I2C_CLIENT_PEC, before calling i2c_slave_register(), so that the slave bus driver will enable PEC in device. Best regards, Rayagonda