diff --git a/drivers/media/pci/intel/ipu7/ipu7.h b/drivers/media/pci/intel/ipu7/ipu7.h index 41f3efd..b48bc1d 100644 --- a/drivers/media/pci/intel/ipu7/ipu7.h +++ b/drivers/media/pci/intel/ipu7/ipu7.h @@ -81,13 +81,13 @@ struct ipu7_device { void __iomem *base; void __iomem *pb_base; -#ifdef CONFIG_DEBUG_FS - struct dentry *ipu7_dir; -#endif u8 hw_ver; bool ipc_reinit; bool secure_mode; bool ipu7_bus_ready_to_probe; +#ifdef CONFIG_DEBUG_FS + struct dentry *ipu7_dir; +#endif }; #define IPU_DMA_MASK 39 diff --git a/drivers/media/pci/intel/ipu7/psys/ipu-psys.c b/drivers/media/pci/intel/ipu7/psys/ipu-psys.c index d89e8b6..e4fc3f0 100644 --- a/drivers/media/pci/intel/ipu7/psys/ipu-psys.c +++ b/drivers/media/pci/intel/ipu7/psys/ipu-psys.c @@ -1311,8 +1311,11 @@ static int ipu7_psys_init_debugfs(struct ipu7_psys *psys) { struct dentry *file; struct dentry *dir; - +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 17, 0) dir = debugfs_create_dir("psys", psys->adev->isp->ipu7_dir); +#else + dir = debugfs_create_dir("ipu7-psys", NULL); +#endif if (IS_ERR(dir)) return -ENOMEM; @@ -1459,9 +1462,7 @@ static void ipu7_psys_remove(struct auxiliary_device *auxdev) struct ipu7_psys *psys = dev_get_drvdata(&auxdev->dev); struct device *dev = &auxdev->dev; #ifdef CONFIG_DEBUG_FS - struct ipu7_device *isp = psys->adev->isp; - - if (isp->ipu7_dir) + if (psys->debugfsdir) debugfs_remove_recursive(psys->debugfsdir); #endif @@ -1541,7 +1542,28 @@ static struct auxiliary_driver ipu7_psys_driver = { }, }; -module_auxiliary_driver(ipu7_psys_driver); +static int __init ipu7_psys_init(void) +{ + int ret; + + ret = bus_register(&ipu7_psys_bus); + if (ret) + return ret; + + ret = auxiliary_driver_register(&ipu7_psys_driver); + if (ret) + bus_unregister(&ipu7_psys_bus); + + return ret; +} +module_init(ipu7_psys_init); + +static void __exit ipu7_psys_exit(void) +{ + auxiliary_driver_unregister(&ipu7_psys_driver); + bus_unregister(&ipu7_psys_bus); +} +module_exit(ipu7_psys_exit); MODULE_AUTHOR("Bingbu Cao "); MODULE_AUTHOR("Qingwu Zhang ");