Q&A 게시판

리눅스 커널에 대한 Q&A 게시판 입니다. (비밀글 체크는 꼭 필요한 경우에만)

device 구조체에 coherent_dma_mask 속성에 대해서?

작성자
@zilzu
작성일
2019-05-13 18:28
조회
402
안녕하세요?
드라이버 동작 관련하여 문의 드립니다.

device tree에서
&ecspi {
display@0:{
};
};


display에 선언한 드라이버가 로드 될 떄 coherent_dma_mask를 속성을 확인 하는 루틴이 있습니다.
로그로 확인하면, 값이 0으로 설정 되어 있습니다.
저 coherent_dma_mask 값이 FFFF FFFF 로 설정 되게 하려면, 드라이버 쪽에서 구현해 줘야 하는 부분이 있을까요?
device의 parent에는 값이 FFFF FFFF 로 설정되어 있었습니다.

하위 디바이스는 어떻게 저 부분을 활성하여 사용 할 수 있을까요?
전체 1
  • 2019-05-14 09:25
    안녕하세요?

    디바이스 트리를 통해서 플랫폼 디바이스가 로드된 경우라면
    부트업 시 플랫폼 디바이스를 등록하는 of_platform_bus_create() -> of_platform_device_create_pdata() 함수가
    호출되는 과정에서 자동으로 coherent_dma_mask에 0xffff_ffff 가 대입됩니다.

    아래 참고 문서를 보시고 확인하시면 될 것 같습니다.
    참고: Device & Driver -3- (Platform device) | 문c - http://jake.dothome.co.kr/device-driver-3

    그런데 플랫폼 디바이스로 등록되는 spi, uart, i2c 컨트롤러들이 dma를 이용할 수 있으나, 그 하위에 연결되는 디바이스가 dma를 사용할 수 없겠죠?

    따라서 하뒤 디바이스의 coherent_dma_mask 값에 0x0인 것이 놀라울 일이 아닌 것 같습니다.

    다시 한 번 확인해 보시기 바랍니다.

    감사합니다.