nouveau_util.c revision d7facf9dc50acff69de9688088caa78b3cf69ebb
1d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs/* 2d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * Copyright (C) 2010 Nouveau Project 3d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * 4d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * All Rights Reserved. 5d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * 6d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * Permission is hereby granted, free of charge, to any person obtaining 7d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * a copy of this software and associated documentation files (the 8d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * "Software"), to deal in the Software without restriction, including 9d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * without limitation the rights to use, copy, modify, merge, publish, 10d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * distribute, sublicense, and/or sell copies of the Software, and to 11d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * permit persons to whom the Software is furnished to do so, subject to 12d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * the following conditions: 13d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * 14d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * The above copyright notice and this permission notice (including the 15d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * next paragraph) shall be included in all copies or substantial 16d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * portions of the Software. 17d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * 18d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 19d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 21d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE 22d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 23d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 24d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs * 26d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs */ 27d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs 28d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs#include <linux/ratelimit.h> 29d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs 30d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggsstatic DEFINE_RATELIMIT_STATE(nouveau_ratelimit_state, 3 * HZ, 20); 31d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs 32d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggsint 33d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggsnouveau_ratelimit(void) 34d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs{ 35d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs return __ratelimit(&nouveau_ratelimit_state); 36d7facf9dc50acff69de9688088caa78b3cf69ebbBen Skeggs} 37