Re: [PATCH 1/3] fpga: dfl: move dfl_device_id to mod_devicetable.h

From: Tom Rix
Date: Thu Sep 10 2020 - 17:37:57 EST



On 9/10/20 1:41 AM, Xu Yilun wrote:
> On Wed, Sep 09, 2020 at 05:55:33AM -0700, Tom Rix wrote:
>> On 9/7/20 10:48 PM, Xu Yilun wrote:
>>> In order to support MODULE_DEVICE_TABLE() for dfl device driver, this
>>> patch moves struct dfl_device_id to mod_devicetable.h
>>>
>>> Signed-off-by: Xu Yilun <yilun.xu@xxxxxxxxx>
>>> Signed-off-by: Wu Hao <hao.wu@xxxxxxxxx>
>>> Signed-off-by: Matthew Gerlach <matthew.gerlach@xxxxxxxxxxxxxxx>
>>> Signed-off-by: Russ Weight <russell.h.weight@xxxxxxxxx>
>>> ---
>>> drivers/fpga/dfl.h | 13 +------------
>>> include/linux/mod_devicetable.h | 12 ++++++++++++
>>> 2 files changed, 13 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/drivers/fpga/dfl.h b/drivers/fpga/dfl.h
>>> index 5dc758f..d5b0760 100644
>>> --- a/drivers/fpga/dfl.h
>>> +++ b/drivers/fpga/dfl.h
>>> @@ -26,6 +26,7 @@
>>> #include <linux/slab.h>
>>> #include <linux/uuid.h>
>>> #include <linux/fpga/fpga-region.h>
>>> +#include <linux/mod_devicetable.h>
>>>
>>> /* maximum supported number of ports */
>>> #define MAX_DFL_FPGA_PORT_NUM 4
>>> @@ -526,18 +527,6 @@ enum dfl_id_type {
>>> };
>>>
>>> /**
>>> - * struct dfl_device_id - dfl device identifier
>>> - * @type: contains 4 bits DFL FIU type of the device. See enum dfl_id_type.
>>> - * @feature_id: contains 12 bits feature identifier local to its DFL FIU type.
>>> - * @driver_data: driver specific data.
>>> - */
>>> -struct dfl_device_id {
>>> - u8 type;
>>> - u16 feature_id;
>>> - unsigned long driver_data;
>>> -};
>>> -
>>> -/**
>>> * struct dfl_device - represent an dfl device on dfl bus
>>> *
>>> * @dev: generic device interface.
>>> diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
>>> index 5b08a47..407d8dc 100644
>>> --- a/include/linux/mod_devicetable.h
>>> +++ b/include/linux/mod_devicetable.h
>>> @@ -838,4 +838,16 @@ struct mhi_device_id {
>>> kernel_ulong_t driver_data;
>>> };
>>>
>>> +/**
>>> + * struct dfl_device_id - dfl device identifier
>>> + * @type: contains 4 bits DFL FIU type of the device. See enum dfl_id_type.
>>> + * @feature_id: contains 12 bits feature identifier local to its DFL FIU type.
>>> + * @driver_data: driver specific data.
>>> + */
>>> +struct dfl_device_id {
>>> + __u8 type;
>>> + __u16 feature_id;
>> I thought i saw feature id's going to 64 bit, does this type need to expand ?
> Feature id is a 12bit field in DFL spec. Previously we define it u64
> cause we are considering it may expand sometime. But now seems GUID will
> be used in future design.
>
> And the header file will be used by modpost, which is not supporting u64
> now. So it is not necessary we use u64 for extra work. A patch is
> already applied for this change - "change data type of feature id to u16"
>
> Thanks,
> Yilun

Thanks for the explanation.

Reviewed-by: Tom Rix <trix@xxxxxxxxxx>

>
>> Tom 
>>
>>> + kernel_ulong_t driver_data;
>>> +};
>>> +
>>> #endif /* LINUX_MOD_DEVICETABLE_H */