Askıya alma sırasında ses kaynaklarını yönetme

Sistemin kararlılığını ve Askıya Alıp RAM'e Yazma (S2R) veya Askıya Alıp Diske Yazma (S2D) gibi düşük güç durumlarına girme özelliğini sağlamak için güç geçişleri sırasında ses kaynaklarının düzgün şekilde yönetilmesi çok önemlidir.

Sistem askıya alma işlemi başlattığında uygulamalar her zaman ses girişi veya çıkışı akışlarını serbest bırakmayabilir. Etkin ses akışları, ses alt sisteminin ve temel donanımın boşta kalmasını engelleyebilir. Bu durum, çip üzerinde sistemin (SoC) derin uyku moduna girmesini engelleyebilir. Bu durum, askıya alma denemelerinin başarısız olmasına ve güç tüketiminin artmasına neden olur.

OEM'ler, askıya alma geçişleri sırasında etkin ses akışlarını işlemek için Ses donanımı soyutlama katmanı (HAL) uygulamalarında güçlü bir yedek mekanizma uygulamalıdır. Bu, uygulama davranışından bağımsız olarak platform kararlılığı için gereklidir.

Uygulamalar ses kaynaklarını doğru şekilde yönetmelidir ancak sistem, temel güç durumu geçişleri için buna güvenemez. Ses HAL'si, sistemin askıya alma durumlarına girebilmesini sağlamak için kaynak devre dışı bırakmayı zorunlu kılmak üzere kullanılan uygun katmandır. Güç yönetiminin sorunsuz olması için bu yaklaşımı öneririz.

Güç yönetimini uygulama

Audio HAL'de güçlü bir güç yönetimi uygulamak için aşağıdaki adımları uygulayın:

  1. Sistemin güç durumu değişikliklerini, özellikle de askıya alma durumuna geçişi algılayın.

  2. Sistem askıya almaya hazırlanırken herhangi bir ses akışı (hem giriş hem çıkış) hâlâ etkinse müdahale edin:

    • Donanım çıkış akışlarını serbest bırakın ve ses çerçevesinden gelen verileri atın.
    • Donanım giriş akışlarını serbest bırakın ve çerçeveye sessiz ses gönderin.

    Bu HAL düzeyindeki işlem, ses donanımının boşta kalmasını sağlar. Böylece, bir uygulama ses kaynaklarını serbest bırakmamış olsa bile sistem başarılı bir şekilde askıya alınabilir.

  3. Sistem askıya alma durumundan devam ettiğinde ses alt sistemini etkin durumuna geri yükleyin. Bu işlem, daha önce sessize alınmış tüm çıkış akışlarının sesini açmayı ve giriş akışlarını yeniden etkinleştirmeyi içerir. Böylece uygulamalar ses oynatmaya ve yakalamaya devam edebilir.

Uygulamalar üzerindeki etkisi

Askıya alma sırasında ses kaynaklarının HAL düzeyinde yönetimi, uygulamaları aşağıdaki şekillerde etkiler:

  • Şeffaf askıya alma: Mikrofon kullanan uygulamalarda sistem askıya alma (S2D veya S2R'ye girme) şeffaftır.
  • Geçiş sırasında sesin kapatılması: Askıya alma geçişi başlatıldıktan sonra etkin akışların sesi HAL'de kapatılır. Uygulama çalışmaya devam eder ancak askıya alma sırasında yalnızca sessiz ses alır.
  • Otomatik devam ettirme: Sistem devam ettirildiğinde uygulama, kaynak yeniden edinme veya kurtarma işlemleri gerektirmeden gerçek ses verilerini tekrar almaya ya da göndermeye otomatik olarak başlar.