/sys/class/drm 目錄結構

/sys/class/drm 目錄結構

誰負責創建“/sys/class/drm”目錄結構,更具體地說是“/sys/class/drm/card0-LVDS-1”目錄?

我使用的是 kernel-2.6.38 和 nVidia 卡。

答案1

DRM 模組負責 SysFS 中的此子樹。您可以在其中瀏覽原始程式碼drivers/gpu/drm/drm_sysfs.c

子目錄是每個連接器的,其形式的名稱card%d-%s%d索引(我一無所知)替換並被%s連接器名稱替換。

每個設備應顯示五個檔案:

  • 連線狀態
  • 啟用(或不啟用)
  • DPMS狀態
  • 模式列表
  • EDID

對於某些設備,您還將獲得子連接器的額外資訊。

答案2

自上次接受的答案以來已經有了一些發展,因此我正在創建一個新的答案。

從 v6.2.11 開始,負責此 sysfs 子樹的原始碼仍然是驅動程式/gpu/drm/drm_sysfs.c(工作連結)。

DRM 驅動程式本身可以根據硬體支援建立 5 種不同的條目類型。它們是:card%dcontrolD%drenderD%daccel%d、 然後針對每個卡連接器card%d-%s。它們%d是設備次要編號,卡的次要編號應從 0 開始,然後分別與controlDrenderD和匹配,以 64 為增量accel。連接器沒有次要參數,它們位於各自卡的次要參數上。

這些條目是由incontrolD創建的向後相容符號鏈接create_compat_control_link()驅動程式/gpu/drm/drm_drv.c並使用最初保留的次要編號controlD

連接器名稱的格式(%sin card%d-%s)為%s-%d,其中是來自in 的 %s名稱struct drm_conn_prop_enum_list drm_connector_enum_list[]驅動程式/gpu/drm/drm_connector.c%d從 1 開始的連接器索引號(因為一張卡可能有多個相同類型的連接器)。

drm_class_device_register()最後,任何驅動程式都可以使用in在這裡註冊自己的設備驅動程式/gpu/drm/drm_sysfs.c

相關內容