Adjust the registration method of PCIe and INET drivers, and set raid6_select to start asynchronously by default.

Asynchronous modules should now be configured in the DTS file, with an additional variable in the bootargs.
The recommended configuration is as follows:
driver_async_probe=spacemit-hdmi-drv,i2c-spacemit-k1x,ri2c-spacemit-k1x,k1xccic,sdhci-spacemit,k1x-dwc-pcie,pxa2xx-uart

Change-Id: I2877696e84cc735c95363a1614dcbf3e5e26d5e0
This commit is contained in:
goumin 2024-11-22 17:59:34 +08:00 committed by zhangmeng
parent 6c7f63e739
commit 8b8ec6e224
3 changed files with 18 additions and 3 deletions

View file

@ -18,6 +18,9 @@
#else
#include <linux/module.h>
#include <linux/gfp.h>
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/async.h>
/* In .bss so it's zeroed */
const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256)));
EXPORT_SYMBOL(raid6_empty_zero_page);
@ -289,7 +292,18 @@ static void raid6_exit(void)
do { } while (0);
}
subsys_initcall(raid6_select_algo);
static void raid6_select_algo_wrapper(void *data, long long unsigned int arg)
{
raid6_select_algo();
}
static int __init raid6_select_algo_async_init(void)
{
async_schedule(raid6_select_algo_wrapper, NULL);
return 0;
}
subsys_initcall(raid6_select_algo_async_init);
module_exit(raid6_exit);
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("RAID6 Q-syndrome calculations");