bdl_pos_adj: configure a solução temporária de tempo do IRQ para hda-intel

6

Recebo erros nos meus registros:

kernel: snd_hda_intel 0000:00:1b.0: IRQ timing workaround is 
        activated for card #0. Suggest a bigger bdl_pos_adj

O Google encontrou algumas postagens antigas aqui e aqui que lida com o mesmo problema. A solução oferecida sugere mudar o valor do módulo do kernel:

options snd-hda-intel enable_msi=1 bdl_pos_adj=1,48

No entanto, em nenhum lugar existe o que os números significam. Além disso, o valor atual (padrão) que tenho agora tem vários números:

# cat /sys/module/snd_hda_intel/parameters/bdl_pos_adj
-1,1,-1,-1,-1,-1,-1,-1

Alguém pode, por favor, explicar o que significam todos esses números e como mudá-los para se livrar dos erros?

    
por Martin Vegter 16.05.2015 / 15:47

1 resposta

3

A documentação do kernel descreve bdl_pos_adj como segue (veja ALSA- Configuração.txt e HD-Audio.txt ):

bdl_pos_adj - Specifies the DMA IRQ timing delay in samples. Passing -1 will make the driver to choose the appropriate value based on the controller chip.

(sic) Nos controladores Intel, o padrão é 1 (que é o que você pode ver no seu próprio /sys/module/snd_hda_intel/parameters/bdl_pos_adj ). Os vários números estão lá porque o módulo suporta vários dispositivos HDA (oito por padrão, é SNDRV_CARDS em a fonte do kernel ). Não sei bem qual é a correspondência; Eu teria esperado que correspondesse ao número do cartão, mas você está recebendo o erro para o cartão # 0 enquanto o bdl_pos_adj sugere que ele está tirando seu valor na segunda posição ...

No que diz respeito à correção do problema, não há muita documentação e o código também não diz muito. A única sugestão que tenho é seguir as instruções e tentar aumentar o valor até obter algo que funcione:

options snd-hda-intel enable_msi=1 bdl_pos_adj=2,2

(Estou usando 2,2 aqui porque não sei qual dos dois primeiros será usado para o seu dispositivo.)

    
por 16.05.2015 / 16:08