gpt4 book ai didi

linux - 设备树 - 探测驱动程序并避免竞争条件

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:18 24 4
gpt4 key购买 nike

我有一个连接到 Linux 板的触摸屏设备。它是一个基于 SPI 的设备。显示器运行良好,但触摸屏(使用 STMPE610 Controller )非常不可靠 - 它适用于不同的板和系统,但不适用于其他板和系统。已发现的是屏幕在设备探测期间出现故障(错误 -22)。驱动程序探测失败。

SPI 可以在各种模式下进行电气配置/驱动(有 4 种),触摸 Controller 似乎处于某种未知状态。

此外,计算机还尝试配置其驱动屏幕的 SPI 引脚(视情况而定,将它们拉高或拉低)。

问题 - 我需要知道 Linux 设备驱动程序延迟探测 的做法是什么,或者如何解决竞争条件,以便在有问题的 SPI 从属设备上进行驱动程序探测可以工作。 Linux DeviceTree 是否提供诸如waitdelay 功能之类的功能?

我基本上需要延迟驱动程序探测,直到系统成功地自行电气配置(计算机)并且从属设备(触摸屏)最终决定它是什么 SPI 模式。

最佳答案

我之前遇到过类似的问题,那就是两个车手之间的比赛条件。我所做的是将 usleep_range(1000000, 12000000); 添加到驱动程序内的 probe 函数中。这会给你大约 10 秒的延迟。

在您的情况下,您可以尝试将 usleep_range(1000000, 12000000); 放入您的触摸屏 驱动程序中的 probe 函数中,这样驱动程序将在 10 - 12 秒后加载。您可以对其进行调整,以便首先加载 SPI 并分配触摸屏 驱动程序所需的所有资源并准备好使用。

这不是解决问题的好方法,只能节省时间,因为它有可能会失败,例如由于某些原因 SPI 驱动程序加载晚于 10 秒。

关于linux - 设备树 - 探测驱动程序并避免竞争条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44189725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com