default:
                if (item->tag >= HID_MAIN_ITEM_TAG_RESERVED_MIN &&
                        item->tag <= HID_MAIN_ITEM_TAG_RESERVED_MAX)
-                       hid_warn(parser->device, "reserved main item tag 0x%x\n", item->tag);
+                       hid_warn_ratelimited(parser->device, "reserved main item tag 0x%x\n", item->tag);
                else
-                       hid_warn(parser->device, "unknown main item tag 0x%x\n", item->tag);
+                       hid_warn_ratelimited(parser->device, "unknown main item tag 0x%x\n", item->tag);
                ret = 0;
        }
 
 
        dev_notice(&(hid)->dev, fmt, ##__VA_ARGS__)
 #define hid_warn(hid, fmt, ...)                                \
        dev_warn(&(hid)->dev, fmt, ##__VA_ARGS__)
+#define hid_warn_ratelimited(hid, fmt, ...)                            \
+       dev_warn_ratelimited(&(hid)->dev, fmt, ##__VA_ARGS__)
 #define hid_info(hid, fmt, ...)                                \
        dev_info(&(hid)->dev, fmt, ##__VA_ARGS__)
 #define hid_dbg(hid, fmt, ...)                         \