HDMI驅動熱插拔檢測方法


1. 使用poll機制

1.1 如何使用?

a. open("/dev/HPD");
b. poll狀態發生變化
c. read確定接上還是接下

1.2 情景分析:

  1. APP使用open("/dev/HPD");
  2. APP : poll -> 驅動:poll -> 休眠 -> 中斷
  3. APP : read

2. state主動上報數據

2.1 switch設備簡介:

2.1.1. 構造switch_dev:

.name = "hdmi";
.state = 1,0;

2.1.2 switch_dev_register
a. 創建class_create("switch");
/sys/class/switch

b. 在類下創建設備device_create("hdmi");
/sys/class/switch/hdmi

c. device_create_file("state");
/sys/class/switch/state

2.2 使用switch系統

2.2.1 第一種方法:

  1. 中斷程序設置switch_dev的state
  2. APP讀/sys/class/switch/state

這種方法相當耗資源
2.2.2 第二種方法:

  1. APP設置網絡(讀數據)

  2. 驅動:中斷-> schdule_work -> 發送網絡數據
    a. 構造envp[]
    b. kobject_uevent_env發送給user app
    b.1 使用網絡發送envp
    b.2 /sbin/hotplug

  3. APP被喚醒,讀、處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM