Re: [PATCH] stmmac: Add support for SIMATIC IOT2000 platform

From: Andy Shevchenko
Date: Wed Apr 26 2017 - 14:29:39 EST


On Tue, Apr 25, 2017 at 3:15 PM, Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote:
> On 2017-04-25 13:42, Andy Shevchenko wrote:
>> On Tue, Apr 25, 2017 at 1:09 PM, Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote:
>>> On 2017-04-25 12:07, Jan Kiszka wrote:
>>>> On 2017-04-25 11:46, Andy Shevchenko wrote:
>>>>> On Tue, Apr 25, 2017 at 12:00 PM, Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote:

>>>>> {
>>>>> .name = "SIMATIC IOT2000",
>>>>> .func = 6,
>>>>> .phy_addr = 1,
>>>>> },
>>>>> {
>>>>> .name = "SIMATIC IOT2000",
>>>>> .func = 7,
>>>>> .phy_addr = 1,
>>>>> },
>>>>>
>>>>> That's all what you need.
>>>>
>>>> Nope. Again: the asset tag is the way to tell both apart AND to ensure
>>>> that we do not match on future devices.
>>
>>> To be more verbose: your version (which is our old one) would even
>>> enable the second, not connected port on the IOT2020. Incorrectly.
>>
>> So, name has 2000 for 2020 device? It's clear bug in DMI table you have. :-(
>>

>> What else do you have in DMI which can be used to distinguish those devices?

So, except asset tag is there anything else to use?

Whatever you choose would be nice to split this long conditional:

if (!strcmp(dmi->name, name) && dmi->func == func) {
/* ASSET_TAG is optional */
if (dmi->asset_tag && strcmp(dmi->asset_tag, asset_tag))
continue;
return dmi->phy_addr;
}

> Andy, there are devices out there in the field, if we as engineers like
> it or not, that are all called "IOT2000" although they are sightly
> different inside. This patch accounts for that. And it does that even
> without adding "platform_data" hacks like in other patches of mine. ;)

Yes, which is good.

--
With Best Regards,
Andy Shevchenko