-----Original Message----- From: Alsa-devel alsa-devel-bounces@alsa-project.org On Behalf Of Rafael J. Wysocki Sent: 21 January 2022 17:15 To: Stefan Binding sbinding@opensource.cirrus.com Cc: Platform Driver platform-driver-x86@vger.kernel.org; moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM... <alsa- devel@alsa-project.org>; ACPI Devel Maling List <linux- acpi@vger.kernel.org>; Rafael J. Wysocki rafael@kernel.org; Linux Kernel Mailing List linux-kernel@vger.kernel.org; Takashi Iwai tiwai@suse.com; Mark Gross markgross@kernel.org; Hans de Goede hdegoede@redhat.com; Mark Brown broonie@kernel.org; patches@opensource.cirrus.com; linux-spi linux-spi@vger.kernel.org; Len Brown lenb@kernel.org Subject: Re: [PATCH v5 7/9] platform/x86: serial-multi-instantiate: Add SPI support
@@ -146,7 +247,21 @@ static int smi_probe(struct platform_device
*pdev)
platform_set_drvdata(pdev, smi);
return smi_i2c_probe(pdev, adev, smi, inst_array);
switch (node->bus_type) {
case SMI_I2C:
return smi_i2c_probe(pdev, adev, smi, node->instances);
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);
default:
break;
Why is this needed?
This return code is attempting to ensure that we don’t try to guess
whether we
expect devices to be I2C or SPI - especially with regards to existing devices. We wanted to maintain compatibility with existing devices, which would all
be
I2C. For the device for which we are adding, the same HID is used by both the
same
chip for both I2C and SPI, so we also needed a way to support both.
I meant why was the "default" case needed. Sorry for the confusion.
I added a default case here purely for static analysis reasons. I don’t think it necessarily required, and I can remove it if necessary.
Thanks, Stefan