Lines Matching refs:freezer
910 sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); in brcmf_sdiod_freezer_attach()
911 if (!sdiodev->freezer) in brcmf_sdiod_freezer_attach()
913 atomic_set(&sdiodev->freezer->thread_count, 0); in brcmf_sdiod_freezer_attach()
914 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_attach()
915 init_waitqueue_head(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_freezer_attach()
916 init_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_attach()
922 if (sdiodev->freezer) { in brcmf_sdiod_freezer_detach()
923 WARN_ON(atomic_read(&sdiodev->freezer->freezing)); in brcmf_sdiod_freezer_detach()
924 kfree(sdiodev->freezer); in brcmf_sdiod_freezer_detach()
930 atomic_t *expect = &sdiodev->freezer->thread_count; in brcmf_sdiod_freezer_on()
933 sdiodev->freezer->frozen_count = 0; in brcmf_sdiod_freezer_on()
934 reinit_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_on()
935 atomic_set(&sdiodev->freezer->freezing, 1); in brcmf_sdiod_freezer_on()
937 wait_event(sdiodev->freezer->thread_freeze, in brcmf_sdiod_freezer_on()
938 atomic_read(expect) == sdiodev->freezer->frozen_count); in brcmf_sdiod_freezer_on()
950 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_off()
951 complete_all(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_off()
956 return atomic_read(&sdiodev->freezer->freezing); in brcmf_sdiod_freezing()
963 sdiodev->freezer->frozen_count++; in brcmf_sdiod_try_freeze()
964 wake_up(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_try_freeze()
965 wait_for_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_try_freeze()
970 atomic_inc(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_count()
975 atomic_dec(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_uncount()