Vietnamese (machine translation)

Lưu ý

Mục đích của file này là để độc giả tiếng Việt có thể đọc và hiểu tài liệu nhân kernel dễ dàng hơn, không phải để tạo ra một nhánh tài liệu riêng. Nếu bạn có bất kỳ nhận xét hoặc cập nhật nào cho file này, vui lòng thử cập nhật file tiếng Anh gốc trước. Nếu bạn thấy có sự khác biệt giữa bản dịch và bản gốc, hoặc có vấn đề về bản dịch, vui lòng gửi góp ý hoặc patch cho người dịch của file này, hoặc nhờ người bảo trì và người review tài liệu tiếng Việt giúp đỡ.

Bản gốc:

HD-Audio DP-MST Support

Người dịch:

Google Translate (machine translation)

Phiên bản gốc:

8541d8f725c6

Cảnh báo

Tài liệu này được dịch tự động bằng máy và chưa được review bởi người dịch. Nội dung có thể không chính xác hoặc khó hiểu ở một số chỗ. Khi có sự khác biệt với bản gốc, bản gốc luôn là chuẩn. Bản dịch chất lượng cao (được review) được đặt trong thư mục vi_VN/.

Hỗ trợ âm thanh HD DP-MST

Để hỗ trợ âm thanh DP MST, trình điều khiển codec hdmi HD Audio giới thiệu pin ảo và phân công pcm động.

Ghim ảo là phần mở rộng của per_pin. Điểm khác biệt nhất của DP MST kế thừa là DP MST giới thiệu mục nhập thiết bị. Mỗi chân có thể chứa một số mục nhập thiết bị. Mỗi mục nhập thiết bị hoạt động như một mã pin.

Vì mỗi pin có thể chứa một số mục thiết bị và mỗi codec có thể chứa nhiều chân, nếu chúng ta sử dụng một pcm cho mỗi chân, sẽ có nhiều PCM. Giải pháp mới là tạo ra một vài PCM và liên kết động pcm với per_pin. Trình điều khiển sử dụng cờ spec->dyn_pcm_sign để cho biết có nên sử dụng hay không giải pháp mới.

PCM

Để được thêm vào

Khởi tạo mã pin

Mỗi chân có thể có một số mục thiết bị (chân ảo). Trên nền tảng Intel, số mục nhập thiết bị được thay đổi linh hoạt. Nếu trung tâm DP MST được kết nối, nó ở chế độ DP MST và số mục nhập thiết bị là 3. Nếu không, số mục nhập thiết bị là 1.

Để đơn giản hóa việc thực hiện, tất cả các mục thiết bị sẽ được khởi tạo khi khởi động bất kể nó có ở chế độ DP MST hay không.

Danh sách kết nối

DP MST sử dụng lại mã danh sách kết nối. Mã có thể được sử dụng lại vì các mục thiết bị trên cùng một pin có cùng danh sách kết nối.

Điều này có nghĩa là DP MST nhận danh sách kết nối mục nhập thiết bị mà không cần cài đặt nhập thiết bị.

Jack

Giả sử:
  • MST phải là dyn_pcm_task và là acomp (đối với kịch bản Intel);

  • NON-MST có thể là dyn_pcm_signed hoặc không, nó có thể là acomp hoặc !acomp;

Vì vậy có các tình huống sau:

một. MST (&& dyn_pcm_sign && acomp) b. NON-MST && dyn_pcm_sign && acomp c. NON-MST && !dyn_pcm_sign && !acomp

Cuộc thảo luận bên dưới sẽ bỏ qua sự khác biệt của MST và NON-MST vì nó không ảnh hưởng đến việc xử lý jack quá nhiều.

Trình điều khiển sử dụng mảng struct hdmi_pcm pcm[] trong hdmi_spec và snd_jack là một thành viên của hdmi_pcm. Mỗi chân có một con trỏ struct hdmi_pcm * pcm.

Đối với !dyn_pcm_sign, per_pin->pcm sẽ được gán tĩnh cho spec->pcm[n].

Đối với dyn_pcm_sign, per_pin->pcm sẽ được gán cho spec->pcm[n] khi màn hình được cắm nóng.

Xây dựng Jack

  • dyn_pcm_sign

Sẽ không sử dụng hda_jack mà sử dụng snd_jack trong spec->pcm_rec[pcm_idx].jack trực tiếp.

  • !dyn_pcm_sign

Sử dụng hda_jack và gán tĩnh spec->pcm_rec[pcm_idx].jack = jack->jack.

Kích hoạt sự kiện không được yêu cầu

Kích hoạt sự kiện không được yêu cầu nếu !acomp.

Giám sát việc xử lý sự kiện Hotplug

  • acomp

pin_eld_notify() -> check_presence_and_report() -> hdmi_ Present_sense() ->

sync_eld_via_acomp().

Sử dụng trực tiếp snd_jack_report() trên spec->pcm_rec[pcm_idx].jack cho

cả dyn_pcm_sign và !dyn_pcm_sign

  • !acomp

hdmi_unsol_event() -> hdmi_intrinsic_event() -> check_presence_and_report() ->

hdmi_hiện_sense() -> hdmi_prepsent_sense_via_verbs()

Sử dụng trực tiếp snd_jack_report() trên spec->pcm_rec[pcm_idx].jack cho dyn_pcm_sign.

Sử dụng cơ chế hda_jack để xử lý các sự kiện jack.

Những người khác sẽ được bổ sung sau