问题描述
从 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 (将#修改为@)