i2c: i801: Handle SMBAUXCTL_E32B in i801_block_transaction_by_block only
authorHeiner Kallweit <hkallweit1@gmail.com>
Thu, 16 Feb 2023 16:11:17 +0000 (17:11 +0100)
committerWolfram Sang <wsa@kernel.org>
Fri, 17 Feb 2023 21:11:30 +0000 (22:11 +0100)
commit63fd342fd121c3eea5ff209ec5fc0128214bb017
tree9c78625dc007f47a9ed7e03ad53798120dd91791
parentdd2d18b5c04099698dfe9ead149f9247a2d5c489
i2c: i801: Handle SMBAUXCTL_E32B in i801_block_transaction_by_block only

Currently we touch SMBAUXCTL even if not needed. That's the case for block
commands that don't use block buffer mode, either because block buffer
mode isn't available or because it's not supported for the respective
command (e.g. I2C block transfer). Improve this by setting/resetting
SMBAUXCTL_E32B in i801_block_transaction_by_block() only.

Small downside is that we now access SMBAUXCTL twice for transactions
that use PEC and block buffer mode. But this should a rather rare case
and the impact is negligible.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Reviewed-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-i801.c