현재 PCI 장치에 2 개의 벡터가있는 MSI를 지원해야합니다. 각 벡터에는 다른 처리 루틴이 있어야합니다. HW 문서는 다음다른 IRQ 처리기로 PCI 드라이버에서 다중 MSI 활성화
벡터 0 벡터 1 파워 센서 아래
입니다
난 다음입니다 드라이버 코드 온도 센서 말한다. 1. 먼저 pci_enable_msi_block (pdev, 2)을 사용하여 두 벡터를 활성화하십시오. 2. request_irq (두 개의 다른 irq, 두 개의 diff 인터럽트 핸들러)를 사용하여 인터럽트 핸들러를 할당하십시오.
int vecs = 2;
struct pci_dev *pdev = dev->pci_dev;
result = pci_enable_msi_block(pdev, vecs);
여기서 두 개의 벡터를 활성화 할 때 호출이 성공했다고하는 결과는 0입니다. 내가이
질문은 다음과 같습니다
- HW 문서 벡터 0, 난이 잘 OS의 벡터 0이 아닌 희망을 말한다? 어떤 경우에는 OS에서 벡터 0을 얻을 수 없습니다.
- 내가 직면하는 어려운 문제는 첫 번째 irq에 대한 request_irq()를 수행 할 때 운영체제에이 요청을 벡터 0의 하드웨어에 매핑하는 방법은 무엇입니까? 연속적으로 두 번째 irq에 대해, 어떻게 HW 벡터 1 벡터를 매핑합니까?