fbc 14873 drivers/gpu/drm/i915/display/intel_display.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 14875 drivers/gpu/drm/i915/display/intel_display.c fbc->possible_framebuffer_bits |= plane->frontbuffer_bit; fbc 66 drivers/gpu/drm/i915/display/intel_fbc.c static unsigned int get_crtc_fence_y_offset(struct intel_fbc *fbc) fbc 68 drivers/gpu/drm/i915/display/intel_fbc.c return fbc->state_cache.plane.y - fbc->state_cache.plane.adjusted_y; fbc 122 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_reg_params *params = &dev_priv->fbc.params; fbc 170 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_reg_params *params = &dev_priv->fbc.params; fbc 216 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_reg_params *params = &dev_priv->fbc.params; fbc 218 drivers/gpu/drm/i915/display/intel_fbc.c int threshold = dev_priv->fbc.threshold; fbc 283 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_reg_params *params = &dev_priv->fbc.params; fbc 285 drivers/gpu/drm/i915/display/intel_fbc.c int threshold = dev_priv->fbc.threshold; fbc 331 drivers/gpu/drm/i915/display/intel_fbc.c if (dev_priv->fbc.false_color) fbc 367 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 369 drivers/gpu/drm/i915/display/intel_fbc.c fbc->active = true; fbc 383 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 385 drivers/gpu/drm/i915/display/intel_fbc.c fbc->active = false; fbc 406 drivers/gpu/drm/i915/display/intel_fbc.c return dev_priv->fbc.active; fbc 412 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 414 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(!mutex_is_locked(&fbc->lock)); fbc 416 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->active) fbc 419 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = reason; fbc 426 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 434 drivers/gpu/drm/i915/display/intel_fbc.c fbc->visible_pipes_mask |= (1 << pipe); fbc 436 drivers/gpu/drm/i915/display/intel_fbc.c fbc->visible_pipes_mask &= ~(1 << pipe); fbc 438 drivers/gpu/drm/i915/display/intel_fbc.c return (fbc->visible_pipes_mask & ~(1 << pipe)) != 0; fbc 493 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 497 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(drm_mm_node_allocated(&fbc->compressed_fb)); fbc 499 drivers/gpu/drm/i915/display/intel_fbc.c size = intel_fbc_calculate_cfb_size(dev_priv, &fbc->state_cache); fbc 500 drivers/gpu/drm/i915/display/intel_fbc.c fb_cpp = fbc->state_cache.fb.format->cpp[0]; fbc 502 drivers/gpu/drm/i915/display/intel_fbc.c ret = find_compression_threshold(dev_priv, &fbc->compressed_fb, fbc 510 drivers/gpu/drm/i915/display/intel_fbc.c fbc->threshold = ret; fbc 513 drivers/gpu/drm/i915/display/intel_fbc.c I915_WRITE(ILK_DPFC_CB_BASE, fbc->compressed_fb.start); fbc 515 drivers/gpu/drm/i915/display/intel_fbc.c I915_WRITE(DPFC_CB_BASE, fbc->compressed_fb.start); fbc 526 drivers/gpu/drm/i915/display/intel_fbc.c fbc->compressed_llb = compressed_llb; fbc 529 drivers/gpu/drm/i915/display/intel_fbc.c fbc->compressed_fb.start, fbc 532 drivers/gpu/drm/i915/display/intel_fbc.c fbc->compressed_llb->start, fbc 535 drivers/gpu/drm/i915/display/intel_fbc.c dev_priv->dsm.start + fbc->compressed_fb.start); fbc 541 drivers/gpu/drm/i915/display/intel_fbc.c fbc->compressed_fb.size, fbc->threshold); fbc 547 drivers/gpu/drm/i915/display/intel_fbc.c i915_gem_stolen_remove_node(dev_priv, &fbc->compressed_fb); fbc 556 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 558 drivers/gpu/drm/i915/display/intel_fbc.c if (drm_mm_node_allocated(&fbc->compressed_fb)) fbc 559 drivers/gpu/drm/i915/display/intel_fbc.c i915_gem_stolen_remove_node(dev_priv, &fbc->compressed_fb); fbc 561 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->compressed_llb) { fbc 562 drivers/gpu/drm/i915/display/intel_fbc.c i915_gem_stolen_remove_node(dev_priv, fbc->compressed_llb); fbc 563 drivers/gpu/drm/i915/display/intel_fbc.c kfree(fbc->compressed_llb); fbc 569 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 574 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 576 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 632 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 649 drivers/gpu/drm/i915/display/intel_fbc.c intel_fbc_get_plane_source_size(&fbc->state_cache, &effective_w, fbc 651 drivers/gpu/drm/i915/display/intel_fbc.c effective_w += fbc->state_cache.plane.adjusted_x; fbc 652 drivers/gpu/drm/i915/display/intel_fbc.c effective_h += fbc->state_cache.plane.adjusted_y; fbc 662 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 663 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_state_cache *cache = &fbc->state_cache; fbc 703 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 704 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_state_cache *cache = &fbc->state_cache; fbc 709 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->underrun_detected) { fbc 710 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "underrun detected"; fbc 715 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "primary plane not visible"; fbc 720 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "incompatible mode"; fbc 725 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "mode too large for compression"; fbc 743 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "framebuffer not tiled or fenced"; fbc 748 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "rotation unsupported"; fbc 753 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "framebuffer stride not supported"; fbc 758 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "pixel format is invalid"; fbc 764 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "per-pixel alpha blending is incompatible with FBC"; fbc 771 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "pixel rate is too big"; fbc 785 drivers/gpu/drm/i915/display/intel_fbc.c if (intel_fbc_calculate_cfb_size(dev_priv, &fbc->state_cache) > fbc 786 drivers/gpu/drm/i915/display/intel_fbc.c fbc->compressed_fb.size * fbc->threshold) { fbc 787 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "CFB requirements changed"; fbc 797 drivers/gpu/drm/i915/display/intel_fbc.c (fbc->state_cache.plane.adjusted_y & 3)) { fbc 798 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "plane Y offset is misaligned"; fbc 807 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 810 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "VGPU is active"; fbc 815 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "disabled per module param or by default"; fbc 819 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->underrun_detected) { fbc 820 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "underrun detected"; fbc 831 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 832 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc_state_cache *cache = &fbc->state_cache; fbc 844 drivers/gpu/drm/i915/display/intel_fbc.c params->crtc.fence_y_offset = get_crtc_fence_y_offset(fbc); fbc 853 drivers/gpu/drm/i915/display/intel_fbc.c 32 * fbc->threshold) * 8; fbc 861 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 867 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 874 drivers/gpu/drm/i915/display/intel_fbc.c if (!fbc->enabled || fbc->crtc != crtc) fbc 878 drivers/gpu/drm/i915/display/intel_fbc.c fbc->flip_pending = true; fbc 883 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 895 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 896 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_crtc *crtc = fbc->crtc; fbc 898 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(!mutex_is_locked(&fbc->lock)); fbc 899 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(!fbc->enabled); fbc 900 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->active); fbc 906 drivers/gpu/drm/i915/display/intel_fbc.c fbc->enabled = false; fbc 907 drivers/gpu/drm/i915/display/intel_fbc.c fbc->crtc = NULL; fbc 913 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 915 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(!mutex_is_locked(&fbc->lock)); fbc 917 drivers/gpu/drm/i915/display/intel_fbc.c if (!fbc->enabled || fbc->crtc != crtc) fbc 920 drivers/gpu/drm/i915/display/intel_fbc.c fbc->flip_pending = false; fbc 921 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->active); fbc 930 drivers/gpu/drm/i915/display/intel_fbc.c intel_fbc_get_reg_params(crtc, &fbc->params); fbc 935 drivers/gpu/drm/i915/display/intel_fbc.c if (!fbc->busy_bits) { fbc 945 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 950 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 952 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 955 drivers/gpu/drm/i915/display/intel_fbc.c static unsigned int intel_fbc_get_frontbuffer_bit(struct intel_fbc *fbc) fbc 957 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->enabled) fbc 958 drivers/gpu/drm/i915/display/intel_fbc.c return to_intel_plane(fbc->crtc->base.primary)->frontbuffer_bit; fbc 960 drivers/gpu/drm/i915/display/intel_fbc.c return fbc->possible_framebuffer_bits; fbc 967 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 975 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 977 drivers/gpu/drm/i915/display/intel_fbc.c fbc->busy_bits |= intel_fbc_get_frontbuffer_bit(fbc) & frontbuffer_bits; fbc 979 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->enabled && fbc->busy_bits) fbc 982 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 988 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 993 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 995 drivers/gpu/drm/i915/display/intel_fbc.c fbc->busy_bits &= ~frontbuffer_bits; fbc 1000 drivers/gpu/drm/i915/display/intel_fbc.c if (!fbc->busy_bits && fbc->enabled && fbc 1001 drivers/gpu/drm/i915/display/intel_fbc.c (frontbuffer_bits & intel_fbc_get_frontbuffer_bit(fbc))) { fbc 1002 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->active) fbc 1004 drivers/gpu/drm/i915/display/intel_fbc.c else if (!fbc->flip_pending) fbc 1005 drivers/gpu/drm/i915/display/intel_fbc.c __intel_fbc_post_update(fbc->crtc); fbc 1009 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 1027 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1033 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 1036 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->crtc && fbc 1037 drivers/gpu/drm/i915/display/intel_fbc.c !intel_atomic_get_new_crtc_state(state, fbc->crtc)) fbc 1065 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "no suitable CRTC for FBC"; fbc 1068 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 1087 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1092 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 1094 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->enabled) { fbc 1095 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->crtc == NULL); fbc 1096 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->crtc == crtc) { fbc 1098 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->active); fbc 1106 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->active); fbc 1107 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->crtc != NULL); fbc 1111 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "not enough stolen memory"; fbc 1116 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "FBC enabled but not active yet\n"; fbc 1118 drivers/gpu/drm/i915/display/intel_fbc.c fbc->enabled = true; fbc 1119 drivers/gpu/drm/i915/display/intel_fbc.c fbc->crtc = crtc; fbc 1121 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 1133 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1138 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 1139 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->crtc == crtc) fbc 1141 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 1152 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1157 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 1158 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->enabled) { fbc 1159 drivers/gpu/drm/i915/display/intel_fbc.c WARN_ON(fbc->crtc->active); fbc 1162 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 1168 drivers/gpu/drm/i915/display/intel_fbc.c container_of(work, struct drm_i915_private, fbc.underrun_work); fbc 1169 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1171 drivers/gpu/drm/i915/display/intel_fbc.c mutex_lock(&fbc->lock); fbc 1174 drivers/gpu/drm/i915/display/intel_fbc.c if (fbc->underrun_detected || !fbc->enabled) fbc 1178 drivers/gpu/drm/i915/display/intel_fbc.c fbc->underrun_detected = true; fbc 1182 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&fbc->lock); fbc 1196 drivers/gpu/drm/i915/display/intel_fbc.c cancel_work_sync(&dev_priv->fbc.underrun_work); fbc 1198 drivers/gpu/drm/i915/display/intel_fbc.c ret = mutex_lock_interruptible(&dev_priv->fbc.lock); fbc 1202 drivers/gpu/drm/i915/display/intel_fbc.c if (dev_priv->fbc.underrun_detected) { fbc 1204 drivers/gpu/drm/i915/display/intel_fbc.c dev_priv->fbc.no_fbc_reason = "FIFO underrun cleared"; fbc 1207 drivers/gpu/drm/i915/display/intel_fbc.c dev_priv->fbc.underrun_detected = false; fbc 1208 drivers/gpu/drm/i915/display/intel_fbc.c mutex_unlock(&dev_priv->fbc.lock); fbc 1229 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1240 drivers/gpu/drm/i915/display/intel_fbc.c if (READ_ONCE(fbc->underrun_detected)) fbc 1243 drivers/gpu/drm/i915/display/intel_fbc.c schedule_work(&fbc->underrun_work); fbc 1265 drivers/gpu/drm/i915/display/intel_fbc.c dev_priv->fbc.visible_pipes_mask |= (1 << crtc->pipe); fbc 1315 drivers/gpu/drm/i915/display/intel_fbc.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1317 drivers/gpu/drm/i915/display/intel_fbc.c INIT_WORK(&fbc->underrun_work, intel_fbc_underrun_work_fn); fbc 1318 drivers/gpu/drm/i915/display/intel_fbc.c mutex_init(&fbc->lock); fbc 1319 drivers/gpu/drm/i915/display/intel_fbc.c fbc->enabled = false; fbc 1320 drivers/gpu/drm/i915/display/intel_fbc.c fbc->active = false; fbc 1330 drivers/gpu/drm/i915/display/intel_fbc.c fbc->no_fbc_reason = "unsupported by this chipset"; fbc 2452 drivers/gpu/drm/i915/display/intel_sprite.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 2454 drivers/gpu/drm/i915/display/intel_sprite.c fbc->possible_framebuffer_bits |= plane->frontbuffer_bit; fbc 1308 drivers/gpu/drm/i915/i915_debugfs.c struct intel_fbc *fbc = &dev_priv->fbc; fbc 1315 drivers/gpu/drm/i915/i915_debugfs.c mutex_lock(&fbc->lock); fbc 1320 drivers/gpu/drm/i915/i915_debugfs.c seq_printf(m, "FBC disabled: %s\n", fbc->no_fbc_reason); fbc 1340 drivers/gpu/drm/i915/i915_debugfs.c mutex_unlock(&fbc->lock); fbc 1353 drivers/gpu/drm/i915/i915_debugfs.c *val = dev_priv->fbc.false_color; fbc 1366 drivers/gpu/drm/i915/i915_debugfs.c mutex_lock(&dev_priv->fbc.lock); fbc 1369 drivers/gpu/drm/i915/i915_debugfs.c dev_priv->fbc.false_color = val; fbc 1375 drivers/gpu/drm/i915/i915_debugfs.c mutex_unlock(&dev_priv->fbc.lock); fbc 847 drivers/gpu/drm/i915/i915_drv.h u16 fbc; fbc 853 drivers/gpu/drm/i915/i915_drv.h u16 fbc; fbc 1376 drivers/gpu/drm/i915/i915_drv.h struct intel_fbc fbc; fbc 6108 drivers/gpu/drm/i915/i915_reg.h #define HSW_WM_LP_VAL(lat, fbc, pri, cur) \ fbc 6110 drivers/gpu/drm/i915/i915_reg.h ((fbc) << WM1_LP_FBC_SHIFT) | ((pri) << WM1_LP_SR_SHIFT) | (cur)) fbc 192 drivers/gpu/drm/i915/i915_trace.h __field(bool, fbc) fbc 204 drivers/gpu/drm/i915/i915_trace.h __entry->sr_fbc = wm->sr.fbc; fbc 207 drivers/gpu/drm/i915/i915_trace.h __entry->hpll_fbc = wm->hpll.fbc; fbc 210 drivers/gpu/drm/i915/i915_trace.h __entry->fbc = wm->fbc_en; fbc 218 drivers/gpu/drm/i915/i915_trace.h yesno(__entry->fbc)) fbc 964 drivers/gpu/drm/i915/intel_pm.c FW_WM(wm->sr.fbc, FBC_SR) | fbc 965 drivers/gpu/drm/i915/intel_pm.c FW_WM(wm->hpll.fbc, FBC_HPLL_SR) | fbc 1203 drivers/gpu/drm/i915/intel_pm.c dirty |= raw->fbc != value; fbc 1204 drivers/gpu/drm/i915/intel_pm.c raw->fbc = value; fbc 1258 drivers/gpu/drm/i915/intel_pm.c dirty |= raw->fbc != wm; fbc 1259 drivers/gpu/drm/i915/intel_pm.c raw->fbc = wm; fbc 1278 drivers/gpu/drm/i915/intel_pm.c crtc_state->wm.g4x.raw[G4X_WM_LEVEL_SR].fbc, fbc 1279 drivers/gpu/drm/i915/intel_pm.c crtc_state->wm.g4x.raw[G4X_WM_LEVEL_HPLL].fbc); fbc 1321 drivers/gpu/drm/i915/intel_pm.c wm_state->sr.fbc = USHRT_MAX; fbc 1328 drivers/gpu/drm/i915/intel_pm.c wm_state->hpll.fbc = USHRT_MAX; fbc 1378 drivers/gpu/drm/i915/intel_pm.c wm_state->sr.fbc = raw->fbc; fbc 1390 drivers/gpu/drm/i915/intel_pm.c wm_state->hpll.fbc = raw->fbc; fbc 1412 drivers/gpu/drm/i915/intel_pm.c wm_state->sr.fbc > g4x_fbc_fifo_size(G4X_WM_LEVEL_SR)) fbc 1415 drivers/gpu/drm/i915/intel_pm.c wm_state->hpll.fbc > g4x_fbc_fifo_size(G4X_WM_LEVEL_HPLL)) fbc 1460 drivers/gpu/drm/i915/intel_pm.c intermediate->sr.fbc = max(optimal->sr.fbc, fbc 1461 drivers/gpu/drm/i915/intel_pm.c active->sr.fbc); fbc 1467 drivers/gpu/drm/i915/intel_pm.c intermediate->hpll.fbc = max(optimal->hpll.fbc, fbc 1468 drivers/gpu/drm/i915/intel_pm.c active->hpll.fbc); fbc 1481 drivers/gpu/drm/i915/intel_pm.c WARN_ON(intermediate->sr.fbc > g4x_fbc_fifo_size(1) && fbc 1483 drivers/gpu/drm/i915/intel_pm.c WARN_ON(intermediate->hpll.fbc > g4x_fbc_fifo_size(2) && fbc 2498 drivers/gpu/drm/i915/intel_pm.c u16 fbc; fbc 2707 drivers/gpu/drm/i915/intel_pm.c max->fbc = ilk_fbc_wm_reg_max(dev_priv); fbc 2717 drivers/gpu/drm/i915/intel_pm.c max->fbc = ilk_fbc_wm_reg_max(dev_priv); fbc 3320 drivers/gpu/drm/i915/intel_pm.c if (wm->fbc_val > max->fbc) { fbc 5897 drivers/gpu/drm/i915/intel_pm.c wm->sr.fbc = _FW_WM(tmp, FBC_SR); fbc 5898 drivers/gpu/drm/i915/intel_pm.c wm->hpll.fbc = _FW_WM(tmp, FBC_HPLL_SR); fbc 6035 drivers/gpu/drm/i915/intel_pm.c raw->fbc = active->sr.fbc; fbc 6044 drivers/gpu/drm/i915/intel_pm.c raw->fbc = active->hpll.fbc; fbc 6063 drivers/gpu/drm/i915/intel_pm.c wm->sr.plane, wm->sr.cursor, wm->sr.fbc); fbc 6065 drivers/gpu/drm/i915/intel_pm.c wm->hpll.plane, wm->hpll.cursor, wm->hpll.fbc); fbc 6103 drivers/gpu/drm/i915/intel_pm.c raw->fbc = 0; fbc 6106 drivers/gpu/drm/i915/intel_pm.c wm_state->sr.fbc = 0; fbc 6107 drivers/gpu/drm/i915/intel_pm.c wm_state->hpll.fbc = 0; fbc 70 drivers/infiniband/hw/mlx5/cq.c return mlx5_frag_buf_get_wqe(&cq->buf.fbc, n); fbc 674 drivers/infiniband/hw/mlx5/cq.c mlx5_init_fbc(frag_buf->frags, log_wq_stride, log_wq_sz, &buf->fbc); fbc 1204 drivers/infiniband/hw/mlx5/cq.c dcqe = mlx5_frag_buf_get_wqe(&cq->resize_buf->fbc, fbc 268 drivers/infiniband/hw/mlx5/mlx5_ib.h struct mlx5_frag_buf_ctrl fbc; fbc 451 drivers/infiniband/hw/mlx5/mlx5_ib.h struct mlx5_frag_buf_ctrl fbc; fbc 538 drivers/infiniband/hw/mlx5/mlx5_ib.h struct mlx5_frag_buf_ctrl fbc; fbc 1024 drivers/infiniband/hw/mlx5/qp.c (&sq->fbc, fbc 1025 drivers/infiniband/hw/mlx5/qp.c mlx5_frag_buf_get_idx_last_contig_stride(&sq->fbc, idx)); fbc 1077 drivers/infiniband/hw/mlx5/qp.c ilog2(qp->rq.wqe_cnt), &qp->rq.fbc); fbc 1086 drivers/infiniband/hw/mlx5/qp.c sq_strides_offset, &qp->sq.fbc); fbc 4022 drivers/infiniband/hw/mlx5/qp.c *seg = mlx5_frag_buf_get_wqe(&sq->fbc, idx); fbc 4885 drivers/infiniband/hw/mlx5/qp.c p = mlx5_frag_buf_get_wqe(&qp->sq.fbc, idx); fbc 4906 drivers/infiniband/hw/mlx5/qp.c *seg = mlx5_frag_buf_get_wqe(&qp->sq.fbc, *idx); fbc 5395 drivers/infiniband/hw/mlx5/qp.c scat = mlx5_frag_buf_get_wqe(&qp->rq.fbc, ind); fbc 16 drivers/infiniband/hw/mlx5/srq.c return mlx5_frag_buf_get_wqe(&srq->fbc, n); fbc 152 drivers/infiniband/hw/mlx5/srq.c &srq->fbc); fbc 122 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c title->op_own |= 0x01 & (cqcc >> wq->fbc.log_sz); fbc 39 drivers/net/ethernet/mellanox/mlx5/core/wq.c return (u32)wq->fbc.sz_m1 + 1; fbc 44 drivers/net/ethernet/mellanox/mlx5/core/wq.c return wq->fbc.sz_m1 + 1; fbc 49 drivers/net/ethernet/mellanox/mlx5/core/wq.c return wq->fbc.log_stride; fbc 54 drivers/net/ethernet/mellanox/mlx5/core/wq.c return (u32)wq->fbc.sz_m1 + 1; fbc 68 drivers/net/ethernet/mellanox/mlx5/core/wq.c struct mlx5_frag_buf_ctrl *fbc = &wq->fbc; fbc 86 drivers/net/ethernet/mellanox/mlx5/core/wq.c mlx5_init_fbc(wq_ctrl->buf.frags, log_wq_stride, log_wq_sz, fbc); fbc 135 drivers/net/ethernet/mellanox/mlx5/core/wq.c mlx5_init_fbc(wq_ctrl->buf.frags, log_rq_stride, log_rq_sz, &wq->rq.fbc); fbc 145 drivers/net/ethernet/mellanox/mlx5/core/wq.c &wq->sq.fbc); fbc 150 drivers/net/ethernet/mellanox/mlx5/core/wq.c log_sq_stride, log_sq_sz, &wq->sq.fbc); fbc 192 drivers/net/ethernet/mellanox/mlx5/core/wq.c mlx5_init_fbc(wq_ctrl->buf.frags, log_wq_stride, log_wq_sz, &wq->fbc); fbc 209 drivers/net/ethernet/mellanox/mlx5/core/wq.c for (i = 0; i < wq->fbc.sz_m1; i++) { fbc 223 drivers/net/ethernet/mellanox/mlx5/core/wq.c struct mlx5_frag_buf_ctrl *fbc = &wq->fbc; fbc 241 drivers/net/ethernet/mellanox/mlx5/core/wq.c mlx5_init_fbc(wq_ctrl->buf.frags, log_wq_stride, log_wq_sz, fbc); fbc 52 drivers/net/ethernet/mellanox/mlx5/core/wq.h struct mlx5_frag_buf_ctrl fbc; fbc 65 drivers/net/ethernet/mellanox/mlx5/core/wq.h struct mlx5_frag_buf_ctrl fbc; fbc 71 drivers/net/ethernet/mellanox/mlx5/core/wq.h struct mlx5_frag_buf_ctrl fbc; fbc 142 drivers/net/ethernet/mellanox/mlx5/core/wq.h return ctr & wq->fbc.sz_m1; fbc 157 drivers/net/ethernet/mellanox/mlx5/core/wq.h return mlx5_frag_buf_get_wqe(&wq->fbc, ix); fbc 162 drivers/net/ethernet/mellanox/mlx5/core/wq.h return mlx5_frag_buf_get_idx_last_contig_stride(&wq->fbc, ix) - ix + 1; fbc 175 drivers/net/ethernet/mellanox/mlx5/core/wq.h return ctr & wq->fbc.sz_m1; fbc 185 drivers/net/ethernet/mellanox/mlx5/core/wq.h struct mlx5_cqe64 *cqe = mlx5_frag_buf_get_wqe(&wq->fbc, ix); fbc 188 drivers/net/ethernet/mellanox/mlx5/core/wq.h cqe += wq->fbc.log_stride == 7; fbc 195 drivers/net/ethernet/mellanox/mlx5/core/wq.h return ctr >> wq->fbc.log_sz; fbc 231 drivers/net/ethernet/mellanox/mlx5/core/wq.h return wq->cur_sz == wq->fbc.sz_m1; fbc 241 drivers/net/ethernet/mellanox/mlx5/core/wq.h return wq->fbc.sz_m1 - wq->cur_sz; fbc 246 drivers/net/ethernet/mellanox/mlx5/core/wq.h return mlx5_frag_buf_get_wqe(&wq->fbc, ix); fbc 258 drivers/video/fbdev/cg6.c struct cg6_fbc __iomem *fbc; fbc 272 drivers/video/fbdev/cg6.c struct cg6_fbc __iomem *fbc = par->fbc; fbc 276 drivers/video/fbdev/cg6.c if (!(sbus_readl(&fbc->s) & 0x10000000)) fbc 320 drivers/video/fbdev/cg6.c struct cg6_fbc __iomem *fbc = par->fbc; fbc 330 drivers/video/fbdev/cg6.c sbus_writel(rect->color, &fbc->fg); fbc 331 drivers/video/fbdev/cg6.c sbus_writel(~(u32)0, &fbc->pixelm); fbc 332 drivers/video/fbdev/cg6.c sbus_writel(0xea80ff00, &fbc->alu); fbc 333 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->s); fbc 334 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->clip); fbc 335 drivers/video/fbdev/cg6.c sbus_writel(~(u32)0, &fbc->pm); fbc 336 drivers/video/fbdev/cg6.c sbus_writel(rect->dy, &fbc->arecty); fbc 337 drivers/video/fbdev/cg6.c sbus_writel(rect->dx, &fbc->arectx); fbc 338 drivers/video/fbdev/cg6.c sbus_writel(rect->dy + rect->height, &fbc->arecty); fbc 339 drivers/video/fbdev/cg6.c sbus_writel(rect->dx + rect->width, &fbc->arectx); fbc 341 drivers/video/fbdev/cg6.c val = sbus_readl(&fbc->draw); fbc 359 drivers/video/fbdev/cg6.c struct cg6_fbc __iomem *fbc = par->fbc; fbc 367 drivers/video/fbdev/cg6.c sbus_writel(0xff, &fbc->fg); fbc 368 drivers/video/fbdev/cg6.c sbus_writel(0x00, &fbc->bg); fbc 369 drivers/video/fbdev/cg6.c sbus_writel(~0, &fbc->pixelm); fbc 370 drivers/video/fbdev/cg6.c sbus_writel(0xe880cccc, &fbc->alu); fbc 371 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->s); fbc 372 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->clip); fbc 374 drivers/video/fbdev/cg6.c sbus_writel(area->sy, &fbc->y0); fbc 375 drivers/video/fbdev/cg6.c sbus_writel(area->sx, &fbc->x0); fbc 376 drivers/video/fbdev/cg6.c sbus_writel(area->sy + area->height - 1, &fbc->y1); fbc 377 drivers/video/fbdev/cg6.c sbus_writel(area->sx + area->width - 1, &fbc->x1); fbc 378 drivers/video/fbdev/cg6.c sbus_writel(area->dy, &fbc->y2); fbc 379 drivers/video/fbdev/cg6.c sbus_writel(area->dx, &fbc->x2); fbc 380 drivers/video/fbdev/cg6.c sbus_writel(area->dy + area->height - 1, &fbc->y3); fbc 381 drivers/video/fbdev/cg6.c sbus_writel(area->dx + area->width - 1, &fbc->x3); fbc 383 drivers/video/fbdev/cg6.c i = sbus_readl(&fbc->blit); fbc 397 drivers/video/fbdev/cg6.c struct cg6_fbc __iomem *fbc = par->fbc; fbc 412 drivers/video/fbdev/cg6.c sbus_writel(image->fg_color, &fbc->fg); fbc 413 drivers/video/fbdev/cg6.c sbus_writel(image->bg_color, &fbc->bg); fbc 414 drivers/video/fbdev/cg6.c sbus_writel(0x140000, &fbc->mode); fbc 415 drivers/video/fbdev/cg6.c sbus_writel(0xe880fc30, &fbc->alu); fbc 416 drivers/video/fbdev/cg6.c sbus_writel(~(u32)0, &fbc->pixelm); fbc 417 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->s); fbc 418 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->clip); fbc 419 drivers/video/fbdev/cg6.c sbus_writel(0xff, &fbc->pm); fbc 420 drivers/video/fbdev/cg6.c sbus_writel(32, &fbc->incx); fbc 421 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->incy); fbc 431 drivers/video/fbdev/cg6.c sbus_writel(y, &fbc->y0); fbc 432 drivers/video/fbdev/cg6.c sbus_writel(x, &fbc->x0); fbc 433 drivers/video/fbdev/cg6.c sbus_writel(x + 32 - 1, &fbc->x1); fbc 439 drivers/video/fbdev/cg6.c sbus_writel(val, &fbc->font); fbc 448 drivers/video/fbdev/cg6.c sbus_writel(y, &fbc->y0); fbc 449 drivers/video/fbdev/cg6.c sbus_writel(x, &fbc->x0); fbc 450 drivers/video/fbdev/cg6.c sbus_writel(x + width - 1, &fbc->x1); fbc 464 drivers/video/fbdev/cg6.c sbus_writel(val, &fbc->font); fbc 671 drivers/video/fbdev/cg6.c struct cg6_fbc __iomem *fbc = par->fbc; fbc 699 drivers/video/fbdev/cg6.c mode = sbus_readl(&fbc->mode); fbc 701 drivers/video/fbdev/cg6.c i = sbus_readl(&fbc->s); fbc 711 drivers/video/fbdev/cg6.c sbus_writel(mode, &fbc->mode); fbc 713 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->clip); fbc 714 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->offx); fbc 715 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->offy); fbc 716 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->clipminx); fbc 717 drivers/video/fbdev/cg6.c sbus_writel(0, &fbc->clipminy); fbc 718 drivers/video/fbdev/cg6.c sbus_writel(info->var.xres - 1, &fbc->clipmaxx); fbc 719 drivers/video/fbdev/cg6.c sbus_writel(info->var.yres - 1, &fbc->clipmaxy); fbc 725 drivers/video/fbdev/cg6.c if (par->fbc) fbc 726 drivers/video/fbdev/cg6.c of_iounmap(&op->resource[0], par->fbc, 4096); fbc 774 drivers/video/fbdev/cg6.c par->fbc = of_ioremap(&op->resource[0], CG6_FBC_OFFSET, fbc 792 drivers/video/fbdev/cg6.c if (!par->fbc || !par->tec || !par->thc || fbc 242 drivers/video/fbdev/ffb.c u32 fbc; fbc 354 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc; fbc 378 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc; fbc 382 drivers/video/fbdev/ffb.c fbc = par->fbc; fbc 384 drivers/video/fbdev/ffb.c cache = (upa_readl(&fbc->ucsr) & FFB_UCSR_FIFO_MASK); fbc 393 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc; fbc 396 drivers/video/fbdev/ffb.c fbc = par->fbc; fbc 398 drivers/video/fbdev/ffb.c if ((upa_readl(&fbc->ucsr) & FFB_UCSR_ALL_BUSY) == 0) fbc 400 drivers/video/fbdev/ffb.c if ((upa_readl(&fbc->ucsr) & FFB_UCSR_ALL_ERRORS) != 0) { fbc 401 drivers/video/fbdev/ffb.c upa_writel(FFB_UCSR_ALL_ERRORS, &fbc->ucsr); fbc 419 drivers/video/fbdev/ffb.c upa_writel(rop, &par->fbc->rop); fbc 426 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc = par->fbc; fbc 436 drivers/video/fbdev/ffb.c &fbc->ppc); fbc 437 drivers/video/fbdev/ffb.c upa_writel(0x2000707f, &fbc->fbc); fbc 438 drivers/video/fbdev/ffb.c upa_writel(par->rop_cache, &fbc->rop); fbc 439 drivers/video/fbdev/ffb.c upa_writel(0xffffffff, &fbc->pmask); fbc 440 drivers/video/fbdev/ffb.c upa_writel((1 << 16) | (0 << 0), &fbc->fontinc); fbc 441 drivers/video/fbdev/ffb.c upa_writel(par->fg_cache, &fbc->fg); fbc 442 drivers/video/fbdev/ffb.c upa_writel(par->bg_cache, &fbc->bg); fbc 479 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc = par->fbc; fbc 491 drivers/video/fbdev/ffb.c upa_writel(fg, &fbc->fg); fbc 500 drivers/video/fbdev/ffb.c upa_writel(FFB_DRAWOP_RECTANGLE, &fbc->drawop); fbc 501 drivers/video/fbdev/ffb.c upa_writel(rect->dy, &fbc->by); fbc 502 drivers/video/fbdev/ffb.c upa_writel(rect->dx, &fbc->bx); fbc 503 drivers/video/fbdev/ffb.c upa_writel(rect->height, &fbc->bh); fbc 504 drivers/video/fbdev/ffb.c upa_writel(rect->width, &fbc->bw); fbc 519 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc = par->fbc; fbc 533 drivers/video/fbdev/ffb.c upa_writel(FFB_DRAWOP_VSCROLL, &fbc->drawop); fbc 534 drivers/video/fbdev/ffb.c upa_writel(area->sy, &fbc->by); fbc 535 drivers/video/fbdev/ffb.c upa_writel(area->sx, &fbc->bx); fbc 536 drivers/video/fbdev/ffb.c upa_writel(area->dy, &fbc->dy); fbc 537 drivers/video/fbdev/ffb.c upa_writel(area->dx, &fbc->dx); fbc 538 drivers/video/fbdev/ffb.c upa_writel(area->height, &fbc->bh); fbc 539 drivers/video/fbdev/ffb.c upa_writel(area->width, &fbc->bw); fbc 553 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc = par->fbc; fbc 576 drivers/video/fbdev/ffb.c upa_writeq(fgbg, &fbc->fg); fbc 582 drivers/video/fbdev/ffb.c upa_writel(32, &fbc->fontw); fbc 589 drivers/video/fbdev/ffb.c upa_writel(xy, &fbc->fontxy); fbc 598 drivers/video/fbdev/ffb.c upa_writel(val, &fbc->font); fbc 609 drivers/video/fbdev/ffb.c upa_writel(width, &fbc->fontw); fbc 610 drivers/video/fbdev/ffb.c upa_writel(xy, &fbc->fontxy); fbc 618 drivers/video/fbdev/ffb.c upa_writel(val, &fbc->font); fbc 900 drivers/video/fbdev/ffb.c struct ffb_fbc __iomem *fbc; fbc 916 drivers/video/fbdev/ffb.c par->fbc = of_ioremap(&op->resource[2], 0, fbc 918 drivers/video/fbdev/ffb.c if (!par->fbc) fbc 953 drivers/video/fbdev/ffb.c fbc = par->fbc; fbc 954 drivers/video/fbdev/ffb.c if ((upa_readl(&fbc->ucsr) & FFB_UCSR_ALL_ERRORS) != 0) fbc 955 drivers/video/fbdev/ffb.c upa_writel(FFB_UCSR_ALL_ERRORS, &fbc->ucsr); fbc 1017 drivers/video/fbdev/ffb.c of_iounmap(&op->resource[2], par->fbc, sizeof(struct ffb_fbc)); fbc 1034 drivers/video/fbdev/ffb.c of_iounmap(&op->resource[2], par->fbc, sizeof(struct ffb_fbc)); fbc 854 include/linux/mlx5/driver.h struct mlx5_frag_buf_ctrl *fbc) fbc 856 include/linux/mlx5/driver.h fbc->frags = frags; fbc 857 include/linux/mlx5/driver.h fbc->log_stride = log_stride; fbc 858 include/linux/mlx5/driver.h fbc->log_sz = log_sz; fbc 859 include/linux/mlx5/driver.h fbc->sz_m1 = (1 << fbc->log_sz) - 1; fbc 860 include/linux/mlx5/driver.h fbc->log_frag_strides = PAGE_SHIFT - fbc->log_stride; fbc 861 include/linux/mlx5/driver.h fbc->frag_sz_m1 = (1 << fbc->log_frag_strides) - 1; fbc 862 include/linux/mlx5/driver.h fbc->strides_offset = strides_offset; fbc 867 include/linux/mlx5/driver.h struct mlx5_frag_buf_ctrl *fbc) fbc 869 include/linux/mlx5/driver.h mlx5_init_fbc_offset(frags, log_stride, log_sz, 0, fbc); fbc 872 include/linux/mlx5/driver.h static inline void *mlx5_frag_buf_get_wqe(struct mlx5_frag_buf_ctrl *fbc, fbc 877 include/linux/mlx5/driver.h ix += fbc->strides_offset; fbc 878 include/linux/mlx5/driver.h frag = ix >> fbc->log_frag_strides; fbc 880 include/linux/mlx5/driver.h return fbc->frags[frag].buf + ((fbc->frag_sz_m1 & ix) << fbc->log_stride); fbc 884 include/linux/mlx5/driver.h mlx5_frag_buf_get_idx_last_contig_stride(struct mlx5_frag_buf_ctrl *fbc, u32 ix) fbc 886 include/linux/mlx5/driver.h u32 last_frag_stride_idx = (ix + fbc->strides_offset) | fbc->frag_sz_m1; fbc 888 include/linux/mlx5/driver.h return min_t(u32, last_frag_stride_idx - fbc->strides_offset, fbc->sz_m1); fbc 31 include/linux/percpu_counter.h int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, gfp_t gfp, fbc 34 include/linux/percpu_counter.h #define percpu_counter_init(fbc, value, gfp) \ fbc 38 include/linux/percpu_counter.h __percpu_counter_init(fbc, value, gfp, &__key); \ fbc 41 include/linux/percpu_counter.h void percpu_counter_destroy(struct percpu_counter *fbc); fbc 42 include/linux/percpu_counter.h void percpu_counter_set(struct percpu_counter *fbc, s64 amount); fbc 43 include/linux/percpu_counter.h void percpu_counter_add_batch(struct percpu_counter *fbc, s64 amount, fbc 45 include/linux/percpu_counter.h s64 __percpu_counter_sum(struct percpu_counter *fbc); fbc 46 include/linux/percpu_counter.h int __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch); fbc 48 include/linux/percpu_counter.h static inline int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs) fbc 50 include/linux/percpu_counter.h return __percpu_counter_compare(fbc, rhs, percpu_counter_batch); fbc 53 include/linux/percpu_counter.h static inline void percpu_counter_add(struct percpu_counter *fbc, s64 amount) fbc 55 include/linux/percpu_counter.h percpu_counter_add_batch(fbc, amount, percpu_counter_batch); fbc 58 include/linux/percpu_counter.h static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc) fbc 60 include/linux/percpu_counter.h s64 ret = __percpu_counter_sum(fbc); fbc 64 include/linux/percpu_counter.h static inline s64 percpu_counter_sum(struct percpu_counter *fbc) fbc 66 include/linux/percpu_counter.h return __percpu_counter_sum(fbc); fbc 69 include/linux/percpu_counter.h static inline s64 percpu_counter_read(struct percpu_counter *fbc) fbc 71 include/linux/percpu_counter.h return fbc->count; fbc 79 include/linux/percpu_counter.h static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc) fbc 82 include/linux/percpu_counter.h s64 ret = READ_ONCE(fbc->count); fbc 89 include/linux/percpu_counter.h static inline bool percpu_counter_initialized(struct percpu_counter *fbc) fbc 91 include/linux/percpu_counter.h return (fbc->counters != NULL); fbc 100 include/linux/percpu_counter.h static inline int percpu_counter_init(struct percpu_counter *fbc, s64 amount, fbc 103 include/linux/percpu_counter.h fbc->count = amount; fbc 107 include/linux/percpu_counter.h static inline void percpu_counter_destroy(struct percpu_counter *fbc) fbc 111 include/linux/percpu_counter.h static inline void percpu_counter_set(struct percpu_counter *fbc, s64 amount) fbc 113 include/linux/percpu_counter.h fbc->count = amount; fbc 116 include/linux/percpu_counter.h static inline int percpu_counter_compare(struct percpu_counter *fbc, s64 rhs) fbc 118 include/linux/percpu_counter.h if (fbc->count > rhs) fbc 120 include/linux/percpu_counter.h else if (fbc->count < rhs) fbc 127 include/linux/percpu_counter.h __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch) fbc 129 include/linux/percpu_counter.h return percpu_counter_compare(fbc, rhs); fbc 133 include/linux/percpu_counter.h percpu_counter_add(struct percpu_counter *fbc, s64 amount) fbc 136 include/linux/percpu_counter.h fbc->count += amount; fbc 141 include/linux/percpu_counter.h percpu_counter_add_batch(struct percpu_counter *fbc, s64 amount, s32 batch) fbc 143 include/linux/percpu_counter.h percpu_counter_add(fbc, amount); fbc 146 include/linux/percpu_counter.h static inline s64 percpu_counter_read(struct percpu_counter *fbc) fbc 148 include/linux/percpu_counter.h return fbc->count; fbc 155 include/linux/percpu_counter.h static inline s64 percpu_counter_read_positive(struct percpu_counter *fbc) fbc 157 include/linux/percpu_counter.h return fbc->count; fbc 160 include/linux/percpu_counter.h static inline s64 percpu_counter_sum_positive(struct percpu_counter *fbc) fbc 162 include/linux/percpu_counter.h return percpu_counter_read_positive(fbc); fbc 165 include/linux/percpu_counter.h static inline s64 percpu_counter_sum(struct percpu_counter *fbc) fbc 167 include/linux/percpu_counter.h return percpu_counter_read(fbc); fbc 170 include/linux/percpu_counter.h static inline bool percpu_counter_initialized(struct percpu_counter *fbc) fbc 177 include/linux/percpu_counter.h static inline void percpu_counter_inc(struct percpu_counter *fbc) fbc 179 include/linux/percpu_counter.h percpu_counter_add(fbc, 1); fbc 182 include/linux/percpu_counter.h static inline void percpu_counter_dec(struct percpu_counter *fbc) fbc 184 include/linux/percpu_counter.h percpu_counter_add(fbc, -1); fbc 187 include/linux/percpu_counter.h static inline void percpu_counter_sub(struct percpu_counter *fbc, s64 amount) fbc 189 include/linux/percpu_counter.h percpu_counter_add(fbc, -amount); fbc 24 lib/percpu_counter.c struct percpu_counter *fbc = addr; fbc 28 lib/percpu_counter.c percpu_counter_destroy(fbc); fbc 29 lib/percpu_counter.c debug_object_free(fbc, &percpu_counter_debug_descr); fbc 41 lib/percpu_counter.c static inline void debug_percpu_counter_activate(struct percpu_counter *fbc) fbc 43 lib/percpu_counter.c debug_object_init(fbc, &percpu_counter_debug_descr); fbc 44 lib/percpu_counter.c debug_object_activate(fbc, &percpu_counter_debug_descr); fbc 47 lib/percpu_counter.c static inline void debug_percpu_counter_deactivate(struct percpu_counter *fbc) fbc 49 lib/percpu_counter.c debug_object_deactivate(fbc, &percpu_counter_debug_descr); fbc 50 lib/percpu_counter.c debug_object_free(fbc, &percpu_counter_debug_descr); fbc 54 lib/percpu_counter.c static inline void debug_percpu_counter_activate(struct percpu_counter *fbc) fbc 56 lib/percpu_counter.c static inline void debug_percpu_counter_deactivate(struct percpu_counter *fbc) fbc 60 lib/percpu_counter.c void percpu_counter_set(struct percpu_counter *fbc, s64 amount) fbc 65 lib/percpu_counter.c raw_spin_lock_irqsave(&fbc->lock, flags); fbc 67 lib/percpu_counter.c s32 *pcount = per_cpu_ptr(fbc->counters, cpu); fbc 70 lib/percpu_counter.c fbc->count = amount; fbc 71 lib/percpu_counter.c raw_spin_unlock_irqrestore(&fbc->lock, flags); fbc 82 lib/percpu_counter.c void percpu_counter_add_batch(struct percpu_counter *fbc, s64 amount, s32 batch) fbc 87 lib/percpu_counter.c count = __this_cpu_read(*fbc->counters) + amount; fbc 90 lib/percpu_counter.c raw_spin_lock_irqsave(&fbc->lock, flags); fbc 91 lib/percpu_counter.c fbc->count += count; fbc 92 lib/percpu_counter.c __this_cpu_sub(*fbc->counters, count - amount); fbc 93 lib/percpu_counter.c raw_spin_unlock_irqrestore(&fbc->lock, flags); fbc 95 lib/percpu_counter.c this_cpu_add(*fbc->counters, amount); fbc 105 lib/percpu_counter.c s64 __percpu_counter_sum(struct percpu_counter *fbc) fbc 111 lib/percpu_counter.c raw_spin_lock_irqsave(&fbc->lock, flags); fbc 112 lib/percpu_counter.c ret = fbc->count; fbc 114 lib/percpu_counter.c s32 *pcount = per_cpu_ptr(fbc->counters, cpu); fbc 117 lib/percpu_counter.c raw_spin_unlock_irqrestore(&fbc->lock, flags); fbc 122 lib/percpu_counter.c int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, gfp_t gfp, fbc 127 lib/percpu_counter.c raw_spin_lock_init(&fbc->lock); fbc 128 lib/percpu_counter.c lockdep_set_class(&fbc->lock, key); fbc 129 lib/percpu_counter.c fbc->count = amount; fbc 130 lib/percpu_counter.c fbc->counters = alloc_percpu_gfp(s32, gfp); fbc 131 lib/percpu_counter.c if (!fbc->counters) fbc 134 lib/percpu_counter.c debug_percpu_counter_activate(fbc); fbc 137 lib/percpu_counter.c INIT_LIST_HEAD(&fbc->list); fbc 139 lib/percpu_counter.c list_add(&fbc->list, &percpu_counters); fbc 146 lib/percpu_counter.c void percpu_counter_destroy(struct percpu_counter *fbc) fbc 150 lib/percpu_counter.c if (!fbc->counters) fbc 153 lib/percpu_counter.c debug_percpu_counter_deactivate(fbc); fbc 157 lib/percpu_counter.c list_del(&fbc->list); fbc 160 lib/percpu_counter.c free_percpu(fbc->counters); fbc 161 lib/percpu_counter.c fbc->counters = NULL; fbc 179 lib/percpu_counter.c struct percpu_counter *fbc; fbc 184 lib/percpu_counter.c list_for_each_entry(fbc, &percpu_counters, list) { fbc 187 lib/percpu_counter.c raw_spin_lock(&fbc->lock); fbc 188 lib/percpu_counter.c pcount = per_cpu_ptr(fbc->counters, cpu); fbc 189 lib/percpu_counter.c fbc->count += *pcount; fbc 191 lib/percpu_counter.c raw_spin_unlock(&fbc->lock); fbc 202 lib/percpu_counter.c int __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch) fbc 206 lib/percpu_counter.c count = percpu_counter_read(fbc); fbc 215 lib/percpu_counter.c count = percpu_counter_sum(fbc);