2016-08-19 1 views
0

다른 드라이버가 공유하는 인터럽트 라인이 다른 고유 한 인터럽트 핸들러를 가질 수 있습니까? 예를 들어, 이와 같은 것이 가능할 수 있습니까?Linux의 공유 인터럽트 라인이 다른 인터럽트 핸들러를 가질 수 있습니까?

드라이버 1에

은 : request_irq(irq, &handler1, IRQF_SHARED,"dev1", dev1); driver2에

이 IRQ를 공유 할 request_irq(irq, &handler2, IRQF_SHARED,"dev2", dev2);

+0

당신에게 –

+0

을 향상 제목을 명확히 고마워요 @tofro –

+0

관련 질문 http://unix.stackexchange.com/questions/47306/how-does-the-linux-kernel-handle-shared-irqs을 향상 제목을 명확히 언어 – user1929959

답변

0

하면 모든 드라이버는이 작동 IRQF_SHARED 그것을 요청하는 - 오직 그들 중 하나는 하지 설정을하지 않으면 그 플래그, 즉 IRQ를 독점적으로 원하면 request_irq이 실패합니다.

또 다른 전제 조건은 하드웨어가 어떤 식 으로든 자신의 장치가 IRQ를 트리거했는지 여부를 인식 할 수 있어야한다는 것입니다. 이것은 핸들러의 반환 값을 결정합니다.

커널은 실제로 IRQ를 처리 할 때까지 IRQ를 공유하는 모든 처리기를 차례로 호출합니다.

+0

을 도울 수있는 문법 –