mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
mfd: return from probe for vrs chip rev < 0x40
VRS Power Sequencer has silicon issues for chip revision < 0x40. Thus making probe failed and driver will exit if we read revision < 0x40. Bug 3366934 Change-Id: I8ce7ddc1c6b76e6cced5349798a5d42878605441 Signed-off-by: Shubhi Garg <shgarg@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2728938 (cherry picked from commit 67df4ac93fb2f8e6285407a8fdcea186479cbaa1) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2704054 (cherry picked from commit 2e3764ac0dddd3d7d96d29f6a9b49655c16027bc) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2748742 Reviewed-by: Bibek Basu <bbasu@nvidia.com> GVS: Gerrit_Virtual_Submit
This commit is contained in:
committed by
mobile promotions
parent
2db1b1e964
commit
87feab86a2
@@ -171,6 +171,14 @@ static int nvvrs_pseq_vendor_info(struct nvvrs_pseq_chip *chip)
|
||||
}
|
||||
|
||||
model_rev = (unsigned int)ret;
|
||||
|
||||
if (model_rev < 0x40) {
|
||||
dev_info(chip->dev, "NVVRS Chip Rev: 0x%X which is < 0x40\n",
|
||||
model_rev);
|
||||
dev_info(chip->dev, "Silicon issues thus exiting...\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev_info(chip->dev, "NVVRS Model Rev: 0x%X\n", model_rev);
|
||||
|
||||
return 0;
|
||||
@@ -208,6 +216,12 @@ static int nvvrs_pseq_probe(struct i2c_client *client,
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = nvvrs_pseq_vendor_info(nvvrs_chip);
|
||||
if (ret < 0) {
|
||||
dev_err(nvvrs_chip->dev, "Invalid vendor info: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
nvvrs_pseq_irq_chip.irq_drv_data = nvvrs_chip;
|
||||
ret = devm_regmap_add_irq_chip(nvvrs_chip->dev, nvvrs_chip->rmap, client->irq,
|
||||
IRQF_ONESHOT | IRQF_SHARED, 0,
|
||||
@@ -230,12 +244,6 @@ static int nvvrs_pseq_probe(struct i2c_client *client,
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = nvvrs_pseq_vendor_info(nvvrs_chip);
|
||||
if (ret < 0) {
|
||||
dev_err(nvvrs_chip->dev, "Failed to read vendor info: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
dev_info(nvvrs_chip->dev, "NVVRS PSEQ probe successful");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user