Re: [PATCH 5/6] rtc: abx80x: create abx80x_i2c_probe()
Antoni Pokusinski <[email protected]> Thu, 23 Jul 2026 19:50:50 +0200
| Newsgroups | org.kernel.vger.linux-rtc,dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-devicetree |
|---|---|
| Message-ID | <amJTTziIZ-WhP5Ih@antoniarch> |
On Wed, Jul 22, 2026 at 08:10:57PM +0000, [email protected] wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > > Pre-existing issues: > - [High] RV1805 hardware workarounds are skipped during auto-detection. > -- > > --- Patch [5]: [PATCH 5/6] rtc: abx80x: create abx80x_i2c_probe() --- > commit 0661079a8b8384fb14bc67f5100b45ebe0a01c3e > Author: Antoni Pokusinski <[email protected]> > > rtc: abx80x: create abx80x_i2c_probe() > > Move the I2C-specific code from abx80x_probe() to the newly created > function. This is a preparation for introducing the support for > ABX81X RTCs which use SPI interface. > > > diff --git a/drivers/rtc/rtc-abx80x.c b/drivers/rtc/rtc-abx80x.c > > index 7761cb353994e..6e0c14695bdf1 100644 > > --- a/drivers/rtc/rtc-abx80x.c > > +++ b/drivers/rtc/rtc-abx80x.c > [ ... ] > > @@ -855,7 +820,7 @@ static int abx80x_probe(struct i2c_client *client) > > ABX8XX_OUT_CTRL_EXDS, > > ABX8XX_OUT_CTRL_EXDS); > > if (err < 0) { > > - dev_err(&client->dev, > > + dev_err(dev, > > "Unable to write output control register\n"); > > return -EIO; > > } > > @@ -867,26 +832,24 @@ static int abx80x_probe(struct i2c_client *client) > > if (partnumber == abx80x_caps[i].pn) > > break; > > if (abx80x_caps[i].pn == 0) { > > - dev_err(&client->dev, "Unknown part: %04x\n", > > - partnumber); > > + dev_err(dev, "Unknown part: %04x\n", partnumber); > > return -EINVAL; > > } > > part = i; > > } > > [Severity: High] > This is a pre-existing issue, but are the RV1805 hardware workarounds being > skipped during auto-detection? > > Looking at abx80x_probe() in drivers/rtc/rtc-abx80x.c, the RV1805 specifics > are configured before the part auto-detection logic resolves the hardware type: > > /* Configure RV1805 specifics */ > if (part == RV1805) { > ... > } > > /* part autodetection */ > if (part == ABX80X) { > for (i = 0; abx80x_caps[i].pn; i++) > if (partnumber == abx80x_caps[i].pn) > break; > ... > part = i; > } > > When the driver is bound using the generic "abracon,abx80x" compatible string > or I2C ID, the part argument is initialized to ABX80X. Because the workarounds > check if (part == RV1805) before part is updated to RV1805, they appear to be > silently bypassed. > > Could this cause the RV1805 RTC to accidentally enter test mode and suffer > from extra power leakage? Yes, this makes sense. The fix would be to simply move the autodetection before the "Configure RV1805 specifics" section. Will add this as a separate patch in v2. > > -- > Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=5