mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
fpga: dfl: return platform data from dfl_fpga_inode_to_feature_dev_data()
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>
This commit is contained in:
parent
958d8c7002
commit
d4970a9d9b
3 changed files with 7 additions and 14 deletions
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) \
|
||||
|
|
Loading…
Add table
Reference in a new issue