Hi, On 7/9/22 11:52, Andy Shevchenko wrote: > > > On Saturday, July 9, 2022, Hans de Goede <hdegoede@xxxxxxxxxx <mailto:hdegoede@xxxxxxxxxx>> wrote: > > Hi, > > On 7/9/22 02:06, Andy Shevchenko wrote: > > Instead of calling specific resource counter, let just probe each > > of the type and see what it says. Also add a debug message when > > none is found. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx <mailto:andriy.shevchenko@xxxxxxxxxxxxxxx>> > > Only probing for I2C resources if some are present is deliberate: > > commit 68f201f9061c000d7a4a9f359f021b1cd535d62b > Author: Stefan Binding <sbinding@xxxxxxxxxxxxxxxxxxxxx <mailto:sbinding@xxxxxxxxxxxxxxxxxxxxx>> > Date: Fri Jan 21 17:24:29 2022 +0000 > > platform/x86: serial-multi-instantiate: Add SPI support > > Add support for spi bus in serial-multi-instantiate driver > > Some peripherals can have either a I2C or a SPI connection > to the host (but not both) but use the same HID for both > types. So it is not possible to use the HID to determine > whether it is I2C or SPI. The driver must check the node > to see if it contains I2cSerialBus or SpiSerialBus entries. > > For backwards-compatibility with the existing nodes I2C is > checked first and if such entries are found ONLY I2C devices > are created. Since some existing nodes that were already > handled by this driver could also contain unrelated > SpiSerialBus nodes that were previously ignored, and this > preserves that behavior. If there is ever a need to handle > a node where both I2C and SPI devices must be instantiated > this can be added in future. > > Signed-off-by: Stefan Binding <sbinding@xxxxxxxxxxxxxxxxxxxxx <mailto:sbinding@xxxxxxxxxxxxxxxxxxxxx>> > Link: https://lore.kernel.org/r/20220121172431.6876-8-sbinding@xxxxxxxxxxxxxxxxxxxxx <https://lore.kernel.org/r/20220121172431.6876-8-sbinding@xxxxxxxxxxxxxxxxxxxxx> > Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx <mailto:hdegoede@xxxxxxxxxx>> > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx <mailto:hdegoede@xxxxxxxxxx>> > > So nack for this > > > > This effectively means nack to the series. > But it’s easy to fix. I can add check for ret == 0. I don't see how this is a nack for the series, just drop 1/7 + 2/7 and rebase the rest. Yes there will be conflicts to resolve in the rebase, but the rest of the cleanups can still go upstream after the rebase. Regards, Hans > > --- > > drivers/platform/x86/serial-multi-instantiate.c | 16 +++++++++++----- > > 1 file changed, 11 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/platform/x86/serial-multi-instantiate.c b/drivers/platform/x86/serial-multi-instantiate.c > > index 97db23243018..e599058196bb 100644 > > --- a/drivers/platform/x86/serial-multi-instantiate.c > > +++ b/drivers/platform/x86/serial-multi-instantiate.c > > @@ -232,6 +232,7 @@ static int smi_probe(struct platform_device *pdev) > > const struct smi_node *node; > > struct acpi_device *adev; > > struct smi *smi; > > + int ret; > > > > adev = ACPI_COMPANION(dev); > > if (!adev) > > @@ -255,15 +256,20 @@ static int smi_probe(struct platform_device *pdev) > > case SMI_SPI: > > return smi_spi_probe(pdev, adev, smi, node->instances); > > case SMI_AUTO_DETECT: > > - if (i2c_acpi_client_count(adev) > 0) > > - return smi_i2c_probe(pdev, adev, smi, node->instances); > > - else > > - return smi_spi_probe(pdev, adev, smi, node->instances); > > + ret = smi_i2c_probe(pdev, adev, smi, node->instances); > > + if (ret && ret != -ENOENT) > > + return ret; > > + ret = smi_spi_probe(pdev, adev, smi, node->instances); > > + if (ret && ret != -ENOENT) > > + return ret; > > + if (ret) > > + return dev_err_probe(dev, ret, "Error No resources found\n"); > > + break; > > default: > > return -EINVAL; > > } > > > > - return 0; /* never reached */ > > + return 0; > > } > > > > static int smi_remove(struct platform_device *pdev) > > > > -- > With Best Regards, > Andy Shevchenko > >