Re: [PATCH 2/3] iio: accel: bmc150: Check for a second ACPI device for BOSC0200

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 11/25/20 12:20 PM, Andy Shevchenko wrote:
> On Wed, Nov 25, 2020 at 1:11 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>> On 11/25/20 11:55 AM, Andy Shevchenko wrote:
>>> On Wed, Nov 25, 2020 at 10:37 AM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> 
> ...
> 
>>> I'm wondering if we can meanwhile update hwdb to support
>>> i2c-multi-instantiate cases in the future and in a few years switch to
>>> it.
>>
>> Even if we fix current hwdb entries to match on both, then there
>> is no guarantee newly added entries will also contain the new match.
>>
>> Now with the code to get the matrix from the ACPI tables new entries
>> should happen less often, but I saw at least one model where the ACPI
>> provided matrix appears to be wrong (if the ACPI matrix was always
>> correct then breaking hwdb would not really be an issue).
>>
>> So I don't think this is going to work and all in all it feels like
>> a lot of work for little gain.
> 
> Okay!
> 
> ...
> 
>>>> +                       .dev_name = "BOSC0200:base",
>>>
>>> Hmm... Can we use '.' (dot) rather than ':' (colon) to avoid confusion
>>> with ACPI device naming schema? (Or was it on purpose?)
>>
>> So with the ':' the end result is:
>>
>> [root@localhost ~]# cd /sys/bus/i2c/devices/
>> [root@localhost devices]# ls | cat
>> 6-0050
>> i2c-0
>> i2c-1
>> i2c-2
>> i2c-3
>> i2c-4
>> i2c-5
>> i2c-6
>> i2c-BOSC0200:00
>> i2c-BOSC0200:base
>> i2c-WCOM50BD:00
>>
>> Which looks nice and consistent, which is why I went with the ':'
>> and since base is not a number, there is no chance on conflicting with
>> ACPI device names (it does look somewhat like an ACPI device name, but
>> it is an ACPI enumerated device, so ...).
> 
> I see. So this was made on purpose.
> 
>> Anyways if there is a strong preference for changing this to a '.'
>> I would be happy to make this change.
> 
> No strong preferences from my side.
> 
>>> And this seems to be the only device in the system, second as this is
>>> not allowed as far as I understand. Right?
>>
>> I don't understand what you are trying to say here, sorry.
>>
>>> But theoretically I can
>>> create an ACPI SSDT with quite similar excerpt and sensor and
>>> enumerate it via ConfigFS (I understand that is quite unlikely).
> 
> What if you have two devices with the same ID and both have two
> I2cSerialBusV2() resources? Second one can't be instantiated because
> 'base' is already here.
> Making it like i2c-BOSC0200:00.base would be much better in my opinion.

Ah I see, that is a somewhat valid point. But I really never expect
there to be 2 ACPI devices with a BOSC0200 hw-id, while also specifying
more then 1 i2c-client per node. That would just be all kinds of messed-up.

Thinking about this I think that getting a WARN_ON (and thus a bug report)
about a duplicate kobject-name when this happens would actually be good,
because then we need to figure out what the beep is going on on that
system. Note that other then triggering a WARN_ON the second
i2c_acpi_new_device will simply fail in this very unlikely scenario
(I know because I triggered this by accident while working on the patch).

Since in a way getting this WARN_ON is actually good (lets us know about
completely unexpected circumstances) and that making the name dynamic
as you suggest requires a bit of extra code I would actually prefer to
keep this as. Please let me know if that is ok with you.

Regards,

Hans




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux