kernel:module_init模块加载顺序

[第二次修改:linux中有各个模块init函数放在init断中。最先init的设备(驱动最先被注册),睡眠唤醒的时候最后被suspend最先被resume。]

 

需求:dsi这边的驱动需要比我一个挂载在i2c上的设备晚.

也就是说.平台端要先初始化i2c从设备以后,再输出mipi信号.

平台:qcom 8930

 做法

1.修改dsi

--- a/drivers/video/msm/mdss/mdss_dsi.c
+++ b/drivers/video/msm/mdss/mdss_dsi.c
@@ -3180,6 +3180,7 @@ static int mdss_dsi_ctrl_probe(struct platform_device *pdev)
        static int te_irq_registered;
        struct mdss_panel_data *pdata;
+//    msleep(5000);
+//    mdelay(5000);
+    printk("mdss ctrl probe sleep 5s\n");
        if (!pdev || !pdev->dev.of_node) {
                pr_err("%s: pdev not found for DSI controller\n", __func__);
                return -ENODEV;
@@ -4357,6 +4358,7 @@ static int __init mdss_dsi_driver_init(void)
        return ret;
 }
 module_init(mdss_dsi_driver_init);
+//late_initcall(mdss_dsi_driver_init);
这个错误通常是因为你没有在初始化卷积层对象时提供必需的参数之一,即卷积核的大小 `kernel_size`。在初始化时,你需要指定卷积核的大小,例如 `nn.Conv2d(in_channels, out_channels, kernel_size)`。请确保你在初始化时提供了所有必需的参数。 例如,如果你的代码是这样的: ``` import torch.nn as nn class MyNet(nn.Module): def __init__(self): super(MyNet, self).__init__() self.conv1 = nn.Conv2d(3, 16) self.conv2 = nn.Conv2d(16, 32, kernel_size=3) self.fc1 = nn.Linear(32 * 6 * 6, 64) self.fc2 = nn.Linear(64, 10) def forward(self, x): x = self.conv1(x) x = nn.functional.relu(x) x = self.conv2(x) x = nn.functional.relu(x) x = nn.functional.max_pool2d(x, 2) x = x.view(-1, 32 * 6 * 6) x = self.fc1(x) x = nn.functional.relu(x) x = self.fc2(x) return x ``` 你需要将 `self.conv1 = nn.Conv2d(3, 16)` 改为 `self.conv1 = nn.Conv2d(3, 16, kernel_size=3)`,以指定卷积核的大小,例如: ``` import torch.nn as nn class MyNet(nn.Module): def __init__(self): super(MyNet, self).__init__() self.conv1 = nn.Conv2d(3, 16, kernel_size=3) self.conv2 = nn.Conv2d(16, 32, kernel_size=3) self.fc1 = nn.Linear(32 * 6 * 6, 64) self.fc2 = nn.Linear(64, 10) def forward(self, x): x = self.conv1(x) x = nn.functional.relu(x) x = self.conv2(x) x = nn.functional.relu(x) x = nn.functional.max_pool2d(x, 2) x = x.view(-1, 32 * 6 * 6) x = self.fc1(x) x = nn.functional.relu(x) x = self.fc2(x) return x ``` 这样就能够解决这个错误了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值