--- /dev/null
+From 30b0da8d556e65ff935a56cd82c05ba0516d3e4a Mon Sep 17 00:00:00 2001
+From: Dave Gordon <david.s.gordon@intel.com>
+Date: Thu, 18 Aug 2016 18:17:22 +0100
+Subject: drm: extra printk() wrapper macros
+
+From: Dave Gordon <david.s.gordon@intel.com>
+
+commit 30b0da8d556e65ff935a56cd82c05ba0516d3e4a upstream.
+
+We had only DRM_INFO() and DRM_ERROR(), whereas the underlying printk()
+provides several other useful intermediate levels such as NOTICE and
+WARNING. So this patch fills out the set by providing both regular and
+once-only macros for each of the levels INFO, NOTICE, and WARNING, using
+a common underlying macro that does all the token-pasting.
+
+DRM_ERROR is unchanged, as it's not just a printk wrapper.
+
+v2:
+ Fix whitespace, missing ## (Eric Engestrom)
+
+Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
+Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
+Cc: dri-devel@lists.freedesktop.org
+Acked-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
+Cc: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/drm/drmP.h | 26 ++++++++++++++++++++------
+ 1 file changed, 20 insertions(+), 6 deletions(-)
+
+--- a/include/drm/drmP.h
++++ b/include/drm/drmP.h
+@@ -158,6 +158,26 @@ void drm_err(const char *format, ...);
+ /** \name Macros to make printk easier */
+ /*@{*/
+
++#define _DRM_PRINTK(once, level, fmt, ...) \
++ do { \
++ printk##once(KERN_##level "[" DRM_NAME "] " fmt, \
++ ##__VA_ARGS__); \
++ } while (0)
++
++#define DRM_INFO(fmt, ...) \
++ _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
++#define DRM_NOTE(fmt, ...) \
++ _DRM_PRINTK(, NOTICE, fmt, ##__VA_ARGS__)
++#define DRM_WARN(fmt, ...) \
++ _DRM_PRINTK(, WARNING, fmt, ##__VA_ARGS__)
++
++#define DRM_INFO_ONCE(fmt, ...) \
++ _DRM_PRINTK(_once, INFO, fmt, ##__VA_ARGS__)
++#define DRM_NOTE_ONCE(fmt, ...) \
++ _DRM_PRINTK(_once, NOTICE, fmt, ##__VA_ARGS__)
++#define DRM_WARN_ONCE(fmt, ...) \
++ _DRM_PRINTK(_once, WARNING, fmt, ##__VA_ARGS__)
++
+ /**
+ * Error output.
+ *
+@@ -183,12 +203,6 @@ void drm_err(const char *format, ...);
+ drm_err(fmt, ##__VA_ARGS__); \
+ })
+
+-#define DRM_INFO(fmt, ...) \
+- printk(KERN_INFO "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
+-
+-#define DRM_INFO_ONCE(fmt, ...) \
+- printk_once(KERN_INFO "[" DRM_NAME "] " fmt, ##__VA_ARGS__)
+-
+ /**
+ * Debug output.
+ *