Lines Matching refs:freezer
792 sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); in brcmf_sdiod_freezer_attach()
793 if (!sdiodev->freezer) in brcmf_sdiod_freezer_attach()
795 atomic_set(&sdiodev->freezer->thread_count, 0); in brcmf_sdiod_freezer_attach()
796 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_attach()
797 init_waitqueue_head(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_freezer_attach()
798 init_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_attach()
804 if (sdiodev->freezer) { in brcmf_sdiod_freezer_detach()
805 WARN_ON(atomic_read(&sdiodev->freezer->freezing)); in brcmf_sdiod_freezer_detach()
806 kfree(sdiodev->freezer); in brcmf_sdiod_freezer_detach()
812 atomic_t *expect = &sdiodev->freezer->thread_count; in brcmf_sdiod_freezer_on()
815 sdiodev->freezer->frozen_count = 0; in brcmf_sdiod_freezer_on()
816 reinit_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_on()
817 atomic_set(&sdiodev->freezer->freezing, 1); in brcmf_sdiod_freezer_on()
819 wait_event(sdiodev->freezer->thread_freeze, in brcmf_sdiod_freezer_on()
820 atomic_read(expect) == sdiodev->freezer->frozen_count); in brcmf_sdiod_freezer_on()
832 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_off()
833 complete_all(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_off()
838 return atomic_read(&sdiodev->freezer->freezing); in brcmf_sdiod_freezing()
845 sdiodev->freezer->frozen_count++; in brcmf_sdiod_try_freeze()
846 wake_up(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_try_freeze()
847 wait_for_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_try_freeze()
852 atomic_inc(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_count()
857 atomic_dec(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_uncount()