Lines Matching refs:freezer
789 sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); in brcmf_sdiod_freezer_attach()
790 if (!sdiodev->freezer) in brcmf_sdiod_freezer_attach()
792 atomic_set(&sdiodev->freezer->thread_count, 0); in brcmf_sdiod_freezer_attach()
793 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_attach()
794 init_waitqueue_head(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_freezer_attach()
795 init_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_attach()
801 if (sdiodev->freezer) { in brcmf_sdiod_freezer_detach()
802 WARN_ON(atomic_read(&sdiodev->freezer->freezing)); in brcmf_sdiod_freezer_detach()
803 kfree(sdiodev->freezer); in brcmf_sdiod_freezer_detach()
809 atomic_t *expect = &sdiodev->freezer->thread_count; in brcmf_sdiod_freezer_on()
812 sdiodev->freezer->frozen_count = 0; in brcmf_sdiod_freezer_on()
813 reinit_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_on()
814 atomic_set(&sdiodev->freezer->freezing, 1); in brcmf_sdiod_freezer_on()
816 wait_event(sdiodev->freezer->thread_freeze, in brcmf_sdiod_freezer_on()
817 atomic_read(expect) == sdiodev->freezer->frozen_count); in brcmf_sdiod_freezer_on()
829 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_off()
830 complete_all(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_off()
835 return atomic_read(&sdiodev->freezer->freezing); in brcmf_sdiod_freezing()
842 sdiodev->freezer->frozen_count++; in brcmf_sdiod_try_freeze()
843 wake_up(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_try_freeze()
844 wait_for_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_try_freeze()
849 atomic_inc(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_count()
854 atomic_dec(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_uncount()