Lines Matching refs:freezer
911 sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); in brcmf_sdiod_freezer_attach()
912 if (!sdiodev->freezer) in brcmf_sdiod_freezer_attach()
914 atomic_set(&sdiodev->freezer->thread_count, 0); in brcmf_sdiod_freezer_attach()
915 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_attach()
916 init_waitqueue_head(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_freezer_attach()
917 init_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_attach()
923 if (sdiodev->freezer) { in brcmf_sdiod_freezer_detach()
924 WARN_ON(atomic_read(&sdiodev->freezer->freezing)); in brcmf_sdiod_freezer_detach()
925 kfree(sdiodev->freezer); in brcmf_sdiod_freezer_detach()
931 atomic_t *expect = &sdiodev->freezer->thread_count; in brcmf_sdiod_freezer_on()
934 sdiodev->freezer->frozen_count = 0; in brcmf_sdiod_freezer_on()
935 reinit_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_on()
936 atomic_set(&sdiodev->freezer->freezing, 1); in brcmf_sdiod_freezer_on()
938 wait_event(sdiodev->freezer->thread_freeze, in brcmf_sdiod_freezer_on()
939 atomic_read(expect) == sdiodev->freezer->frozen_count); in brcmf_sdiod_freezer_on()
951 atomic_set(&sdiodev->freezer->freezing, 0); in brcmf_sdiod_freezer_off()
952 complete_all(&sdiodev->freezer->resumed); in brcmf_sdiod_freezer_off()
957 return atomic_read(&sdiodev->freezer->freezing); in brcmf_sdiod_freezing()
964 sdiodev->freezer->frozen_count++; in brcmf_sdiod_try_freeze()
965 wake_up(&sdiodev->freezer->thread_freeze); in brcmf_sdiod_try_freeze()
966 wait_for_completion(&sdiodev->freezer->resumed); in brcmf_sdiod_try_freeze()
971 atomic_inc(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_count()
976 atomic_dec(&sdiodev->freezer->thread_count); in brcmf_sdiod_freezer_uncount()