Activation de l’éveil
Avant de mettre hors tension un codec, le pilote de fonction codec permet généralement au codec de réveiller le système si un événement de changement de status se produit alors que le codec est sous tension. Pour un codec audio, un tel événement peut être déclenché lorsque l’utilisateur insère une fiche dans une prise d’entrée ou supprime une fiche d’une prise. Pour un codec de modem, un événement de changement de status peut se produire lorsque le téléphone sonne pour indiquer un appel entrant. Pour plus d’informations sur les événements de changement de status, consultez la spécification audio haute définition Intel sur le site web d’Intel HD Audio.
Pour préparer la mise hors tension, le pilote de fonction configure d’abord le codec pour signaler le contrôleur de bus Audio HD lorsqu’un événement de changement de status se produit. Ensuite, le pilote de fonction envoie un IRP IRP_MN_WAIT_WAKE de gestion de l’alimentation au pilote de bus AUDIO HD pour lui indiquer d’activer le signal de mise en éveil à partir du codec. Plus tard, si le signal de mise en éveil est activé et que le codec transmet un événement de changement de status sur la ligne SDI du codec, le contrôleur génère un signal de mise en éveil au système et le pilote de bus avertit le pilote de fonction en effectuant la IRP_MN_WAIT_WAKE IRP.
Après un événement de sortie de veille, le pilote de bus détermine le codec qui a généré le signal de sortie de veille et termine les IRP_MN_WAIT_WAKE IRPs en attente sur ce codec. Toutefois, si le codec contient à la fois des groupes de fonctions audio et modem, par exemple, le pilote de bus n’a aucun moyen de déterminer quel groupe de fonctions est la source du signal de mise en éveil. Dans ce cas, le pilote de fonction doit envoyer ses propres requêtes au codec pour vérifier la source du signal de mise en éveil.