Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Sep 2008 02:08:42 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Rui Paulo <rpaulo@FreeBSD.org>
Cc:        freebsd-multimedia@FreeBSD.org
Subject:   Re: snd_hda suspend/resume support
Message-ID:  <48C701FA.8010807@FreeBSD.org>
In-Reply-To: <20080909124811.GA35538@alpha.local>
References:  <1219692182.00003969.1219680004@10.7.7.3> <48B30A83.1030206@FreeBSD.org> <20080825204941.GA68247@alpha.local> <48C44BE0.5090500@FreeBSD.org> <20080908205502.GF89070@alpha.local> <48C5952F.5040805@FreeBSD.org> <20080908211715.GH89070@alpha.local> <48C66DDD.2010803@FreeBSD.org> <20080909124811.GA35538@alpha.local>

next in thread | previous in thread | raw e-mail | index | archive | help
Rui Paulo wrote:
> On Tue, Sep 09, 2008 at 03:36:45PM +0300, Alexander Motin wrote:
>> Rui Paulo wrote:
>>> On Tue, Sep 09, 2008 at 12:12:15AM +0300, Alexander Motin wrote:
>>>> Rui Paulo wrote:
>>>>> Great work! This works fine! I just wish I didn't had to stop my media
>>>>> player before resume. That probably needs more work on the sound layer.
>>>> When I am calling suspend and resume myself on alive system for several 
>>>> seconds playback restores fine. Whats happening if you don't stop media 
>>>> player?
>>> No sound is output after resume. I can't play anything after resume and
>>> only a reboot fixes it (kldunload/kldload doesn't do the job).
>> Any errors? Player progress bar is moving? What happens if you press
>> stop and then play?
> 
> No errors whatsoever. I hear nothing if I press stop and then play.

I have changed suspend/resume sequences a bit. Now I am doing more 
complete codec power up on resume. On my system I am able to call 
suspend() and then 15 seconds later resume() call successfully restores 
the sound after complete HDA controller, bus and codecs.

If you still have a problem - try to reproduce my experiment using 
temporal hack in a last version:
sysctl dev.hdac.0.pindump=100  <= hdac_suspend()
sysctl dev.hdac.0.pindump=101  <= hdac_resume()

Also I have made suspend() to left HDA bus in reset state which saves 
about 200mW of power according to my laptop battery stats.

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48C701FA.8010807>