Re: [RFC][PATCH] crypto: caam - Add missing MODULE_ALIAS

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

 



On 20/09/2021 18:09, Claudius Heine wrote:
> Hi,
> 
> On 2021-09-20 15:43, Marek Vasut wrote:
>> On 9/17/21 7:30 PM, Krzysztof Kozlowski wrote:
>>> On 17/09/2021 18:21, Krzysztof Kozlowski wrote:
>>>> On 17/09/2021 16:44, Horia Geantă wrote:
>>>>> On 9/17/2021 1:33 PM, Krzysztof Kozlowski wrote:
>>>>>> On 17/09/2021 11:51, Horia Geantă wrote:
>>>>>>> On 9/16/2021 5:06 PM, Marek Vasut wrote:
>>>>>>>> On 9/16/21 3:59 PM, Krzysztof Kozlowski wrote:
>>>>>>>>> On 16/09/2021 15:41, Marek Vasut wrote:
>>>>>>>>>> Add MODULE_ALIAS for caam and caam_jr modules, so they can be 
>>>>>>>>>> auto-loaded.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Marek Vasut <marex@xxxxxxx>
>>>>>>>>>> Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
>>>>>>>>>> Cc: Horia Geantă <horia.geanta@xxxxxxx>
>>>>>>>>>> Cc: Iuliana Prodan <iuliana.prodan@xxxxxxx>
>>>>>>>>>> Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
>>>>>>>>>> ---
>>>>>>>>>>    drivers/crypto/caam/ctrl.c | 1 +
>>>>>>>>>>    drivers/crypto/caam/jr.c   | 1 +
>>>>>>>>>>    2 files changed, 2 insertions(+)
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Since you marked it as RFC, let me share a comment - would be 
>>>>>>>>> nice to
>>>>>>>>> see here explanation why do you need module alias.
>>>>>>>>>
>>>>>>>>> Drivers usually do not need module alias to be auto-loaded, 
>>>>>>>>> unless the
>>>>>>>>> subsystem/bus reports different alias than one used for binding. 
>>>>>>>>> Since
>>>>>>>>> the CAAM can bind only via OF, I wonder what is really missing 
>>>>>>>>> here. Is
>>>>>>>>> it a MFD child (it's one of cases this can happen)?
>>>>>>>>
>>>>>>>> I noticed the CAAM is not being auto-loaded on boot, and then I 
>>>>>>>> noticed
>>>>>>>> the MODULE_ALIAS fixes cropping up in the kernel log, but I couldn't
>>>>>>>> find a good documentation for that MODULE_ALIAS. So I was hoping 
>>>>>>>> to get
>>>>>>>> a feedback on it.
>>>>>>>>
>>>>>>> What platform are you using?
>>>>>>>
>>>>>>> "make modules_install" should take care of adding the proper aliases,
>>>>>>> relying on the MODULE_DEVICE_TABLE() macro in the caam, caam_jr 
>>>>>>> drivers.
>>>>>>>
>>>>>>> modules.alias file should contain:
>>>>>>> alias of:N*T*Cfsl,sec4.0C* caam
>>>>>>> alias of:N*T*Cfsl,sec4.0 caam
>>>>>>> alias of:N*T*Cfsl,sec-v4.0C* caam
>>>>>>> alias of:N*T*Cfsl,sec-v4.0 caam
>>>>>>> alias of:N*T*Cfsl,sec4.0-job-ringC* caam_jr
>>>>>>> alias of:N*T*Cfsl,sec4.0-job-ring caam_jr
>>>>>>> alias of:N*T*Cfsl,sec-v4.0-job-ringC* caam_jr
>>>>>>> alias of:N*T*Cfsl,sec-v4.0-job-ring caam_jr
>>>>>>
>>>>>> Marek added a platform alias which is not present here on the list
>>>>>> (because there are no platform device IDs). The proper question is who
>>>>>> requests this device via a platform match? Who sends such event?
>>>>>>
>>>>> AFAICS the platform bus adds the "platform:" alias to uevent env.
>>>>> in its .uevent callback - platform_uevent().
>>>>>
>>>>> When caam (platform) device is added, the uevent is generated with 
>>>>> this env.,
>>>>> which contains both OF-style and "platform:" modaliases.
>>>>
>>>> I am not saying about theoretical case, I know that platform bus will
>>>> send platform uevent. How did this device end up in platform bus so this
>>>> uevent is being sent? It should be instantiated from OF on for example
>>>> amba bus or directly from OF FDT scanning.
>>>>
>>>> Therefore I have the same question - who requests device via a platform
>>>> match? Is it used out-of-tree in different configuration?
>>>
>>> I tried to reproduce such situation in case of a board I have with me
>>> (Exynos5422). I have a platform_driver only with of_device_id table. The
>>> driver is built as module. In my DTS the device node is like
>>> (exynos5.dtsi and device is modified exynos-chipid to be a module):
>>>
>>>         soc: soc {
>>>                  compatible = "simple-bus";
>>>                  #address-cells = <1>;
>>>                  #size-cells = <1>;
>>>                  ranges;
>>>
>>>                  chipid: chipid@10000000 {
>>>                          compatible = "samsung,exynos4210-chipid";
>>>                          reg = <0x10000000 0x100>;
>>>                  };
>>>
>>>         ...
>>>     };
>>>
>>> The module was properly autoloaded (via OF aliases/events) and device
>>> was matched.
>>
>> Please put this on hold for a bit, I need a colleague to check the udev 
>> event on this platform before we can move on any further.
> 
> Here are the uevent entries without this RFC patch applied:
> 
> ```
> # udevadm info -q all -p devices/platform/soc@0/30800000.bus/30900000.crypto
> P: /devices/platform/soc@0/30800000.bus/30900000.crypto
> L: 0
> E: DEVPATH=/devices/platform/soc@0/30800000.bus/30900000.crypto
> E: DRIVER=caam
> E: OF_NAME=crypto
> E: OF_FULLNAME=/soc@0/bus@30800000/crypto@30900000
> E: OF_COMPATIBLE_0=fsl,sec-v4.0
> E: OF_COMPATIBLE_N=1
> E: MODALIAS=of:NcryptoT(null)Cfsl,sec-v4.0
> E: SUBSYSTEM=platform
> E: USEC_INITIALIZED=4468986
> E: ID_PATH=platform-30900000.crypto
> E: ID_PATH_TAG=platform-30900000_crypto
> ```


Thanks. There is no platform alias in MODALIAS (as expected). It's
exactly the same uevent I found in my case of exynos-chipid driver. No
need for platform module alias. :)

Best regards,
Krzysztof



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux