Linux 内核更新后设备的 IRQ 中断

问题描述

从 3.18.31 内核升级到 3.18.71 内核以启动适用于我的设备(msm8953,股票 - Nougat)的 Android Oreo 后,cs35l35 驱动程序中的 IRQ 已损坏。升级之前,IRQ 只处理了 3-4 次,但现在可以在 5 分钟内处理 >10k 次。我曾尝试使用 IRQ 查看 sound/soc/codecs 中的其他驱动程序,但它们具有几乎相同的代码来注册 IRQ 处理程序。

此外,在日志中出现 E irq 97 : nobody cared (try booting with the "irqpoll" option) 消息后,IRQ 处理程序不再工作。我查看了 /proc/interrupts 并且 cs35l35 IRQ 是 97。

GPIO 中断引脚连接到 gpio90,下拉。

IRQ 处理程序注册代码:

    cs35l35->irq_gpio = devm_gpiod_get_optional(&i2c_client->dev,"irq",GPIOD_IN);
    if (IS_ERR(cs35l35->irq_gpio))
        return PTR_ERR(cs35l35->irq_gpio);

    ret = devm_request_threaded_irq(&i2c_client->dev,gpiod_to_irq(cs35l35->irq_gpio),NULL,cs35l35_irq,IRQF_ONESHOT | IRQF_TRIGGER_LOW,"cs35l35",cs35l35);
    if (ret != 0) {
        dev_err(&i2c_client->dev,"Failed to request IRQ: %d\n",ret);
        goto err;
    }

任何其他代码都可以在 https://github.com/meizucustoms/android_kernel_meizu_m1721 (branch lineage-15.1-rebase) 找到。 cs35l35.c - https://github.com/meizucustoms/android_kernel_meizu_m1721/blob/lineage-15.1-rebase/sound/soc/codecs/cs35l35.c

那么,我该如何解决这个问题?感谢您的帮助:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...