Some improvements/fixes for the newly added GXP driver and a Kconfig
dependency fix -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEOZGx6rniZ1Gk92RdFA3kzBSgKbYFAmQDv0UACgkQFA3kzBSg KbayuQ/+Mef7weYfGsC6lAMsTaSIpa9yAg4iQpF1qSNkEomDPmXGsFC8wpWSnOCD tihCOP7OIjzRMut3vHMa8CMSV8Vs+KfwEi1DodnEA8i7rOz35rzAoekM0kHBbGV8 DNQj3hq3aOvZ1scrfN6uTc1FhpxO4+9hY95o+zzfbakS6jXlMC8LAnEPCJzySwtH 65ngrEMB+X0j+2tgTPwQy9z5l0C+KC/c9MS71bNzc00KWyVHLOx4HbA23QwcVgnV zpxa7HrjN1EqpyPOqANmpI9uLgRN2DL52vRaos1e64NJChRyArRzGVdablry7oc1 ygyz7rsZHSEI7uXmQ+IMNeOVPaRAw5kUXXELem8PVtUI9sInQV6JR7g4NBm+mHrb 8VIwe1R1bJAb1vKocMkZdFsTwpbJjt30w1vARMlffZzit97/Vucbjz+3W0KR+FSl iVBW73D9SdJ1T4lU5gOKEOfrZhsoNv5ut39gi/DOFj4NvSmu5GbSvv1gBvwmaTxS 8pgpvd5d0nOLkeIDi9oBDPmSvUmb357Wor8wtTmAVDBWwih8nR+BLFU8oz0lHvYn 9UtX2yAalrcPHcA+EFZyvxzm8u7GBdTS0OcM2/FIBiQhcBLiWe7rrumk1wDo2K2k cPl/+gFcq5escMsxmGc/US2L4xw1oCT3P+Y38SSYig8pqDG7mdY= =5XFG -----END PGP SIGNATURE----- Merge tag 'i2c-for-6.3-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull more i2c updates from Wolfram Sang: "Some improvements/fixes for the newly added GXP driver and a Kconfig dependency fix" * tag 'i2c-for-6.3-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: gxp: fix an error code in probe i2c: gxp: return proper error on address NACK i2c: gxp: remove "empty" switch statement i2c: Disable I2C_APPLE when I2C_PASEMI is a builtin
This commit is contained in:
commit
b01fe98d34
@ -914,6 +914,7 @@ config I2C_PASEMI
|
||||
|
||||
config I2C_APPLE
|
||||
tristate "Apple SMBus platform driver"
|
||||
depends on !I2C_PASEMI
|
||||
depends on ARCH_APPLE || COMPILE_TEST
|
||||
default ARCH_APPLE
|
||||
help
|
||||
|
@ -126,22 +126,13 @@ static int gxp_i2c_master_xfer(struct i2c_adapter *adapter,
|
||||
time_left = wait_for_completion_timeout(&drvdata->completion,
|
||||
adapter->timeout);
|
||||
ret = num - drvdata->msgs_remaining;
|
||||
if (time_left == 0) {
|
||||
switch (drvdata->state) {
|
||||
case GXP_I2C_WDATA_PHASE:
|
||||
break;
|
||||
case GXP_I2C_RDATA_PHASE:
|
||||
break;
|
||||
case GXP_I2C_ADDR_PHASE:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (time_left == 0)
|
||||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
if (drvdata->state == GXP_I2C_ADDR_NACK ||
|
||||
drvdata->state == GXP_I2C_DATA_NACK)
|
||||
if (drvdata->state == GXP_I2C_ADDR_NACK)
|
||||
return -ENXIO;
|
||||
|
||||
if (drvdata->state == GXP_I2C_DATA_NACK)
|
||||
return -EIO;
|
||||
|
||||
return ret;
|
||||
@ -525,7 +516,7 @@ static int gxp_i2c_probe(struct platform_device *pdev)
|
||||
i2cg_map = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
|
||||
"hpe,sysreg");
|
||||
if (IS_ERR(i2cg_map)) {
|
||||
return dev_err_probe(&pdev->dev, IS_ERR(i2cg_map),
|
||||
return dev_err_probe(&pdev->dev, PTR_ERR(i2cg_map),
|
||||
"failed to map i2cg_handle\n");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user