]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
fpga: dfl: return platform data from dfl_fpga_inode_to_feature_dev_data()
authorPeter Colberg <peter.colberg@intel.com>
Wed, 20 Nov 2024 01:10:18 +0000 (20:10 -0500)
committerXu Yilun <yilun.xu@linux.intel.com>
Tue, 10 Dec 2024 06:54:49 +0000 (14:54 +0800)
Refactor dfl_fpga_inode_to_feature_dev() to directly return the feature
device platform data instead of the platform device, and retrieve the
device from the data. The null pointer checks are not needed since the
platform device is guaranteed to have associated feature device data.

This patch is part of a refactoring of the internal DFL APIs to move
the feature device data into a new struct dfl_feature_dev_data which
lifetime is independent of the corresponding platform device.

Signed-off-by: Peter Colberg <peter.colberg@intel.com>
Reviewed-by: Matthew Gerlach <matthew.gerlach@linux.intel.com>
Reviewed-by: Basheer Ahmed Muddebihal <basheer.ahmed.muddebihal@linux.intel.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20241120011035.230574-3-peter.colberg@intel.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
drivers/fpga/dfl-afu-main.c
drivers/fpga/dfl-fme-main.c
drivers/fpga/dfl.h

index 2fd4f07ed081adc76a7a596eacafa2c3e29ece61..4f7555c08d2dc4590bba9b41e53373558c5e37b4 100644 (file)
@@ -595,14 +595,10 @@ static struct dfl_feature_driver port_feature_drvs[] = {
 
 static int afu_open(struct inode *inode, struct file *filp)
 {
-       struct platform_device *fdev = dfl_fpga_inode_to_feature_dev(inode);
-       struct dfl_feature_platform_data *pdata;
+       struct dfl_feature_platform_data *pdata = dfl_fpga_inode_to_feature_dev_data(inode);
+       struct platform_device *fdev = pdata->dev;
        int ret;
 
-       pdata = dev_get_platdata(&fdev->dev);
-       if (WARN_ON(!pdata))
-               return -ENODEV;
-
        mutex_lock(&pdata->lock);
        ret = dfl_feature_dev_use_begin(pdata, filp->f_flags & O_EXCL);
        if (!ret) {
index f8d89a4a6ccbfb5eeba163cdcd7e175130545489..0fb996d798356c207f747389ee4c1e28d453e95d 100644 (file)
@@ -598,13 +598,10 @@ static long fme_ioctl_check_extension(struct dfl_feature_platform_data *pdata,
 
 static int fme_open(struct inode *inode, struct file *filp)
 {
-       struct platform_device *fdev = dfl_fpga_inode_to_feature_dev(inode);
-       struct dfl_feature_platform_data *pdata = dev_get_platdata(&fdev->dev);
+       struct dfl_feature_platform_data *pdata = dfl_fpga_inode_to_feature_dev_data(inode);
+       struct platform_device *fdev = pdata->dev;
        int ret;
 
-       if (WARN_ON(!pdata))
-               return -ENODEV;
-
        mutex_lock(&pdata->lock);
        ret = dfl_feature_dev_use_begin(pdata, filp->f_flags & O_EXCL);
        if (!ret) {
index 5063d73b0d82e79eefd23421485c664b9f703f1d..2285215f444e3cdd0239f36480c6331d06e4f1d9 100644 (file)
@@ -398,14 +398,14 @@ int dfl_fpga_dev_ops_register(struct platform_device *pdev,
                              struct module *owner);
 void dfl_fpga_dev_ops_unregister(struct platform_device *pdev);
 
-static inline
-struct platform_device *dfl_fpga_inode_to_feature_dev(struct inode *inode)
+static inline struct dfl_feature_platform_data *
+dfl_fpga_inode_to_feature_dev_data(struct inode *inode)
 {
        struct dfl_feature_platform_data *pdata;
 
        pdata = container_of(inode->i_cdev, struct dfl_feature_platform_data,
                             cdev);
-       return pdata->dev;
+       return pdata;
 }
 
 #define dfl_fpga_dev_for_each_feature(pdata, feature)                      \