@@ -629,9 +629,15 @@ static inline struct drm_printer drm_line_printer(struct drm_printer *p,
629629 * Prefer drm_device based logging over device or prink based logging.
630630 */
631631
632+ /* Helper to enforce struct drm_device type */
633+ static inline struct device * __drm_to_dev (const struct drm_device * drm )
634+ {
635+ return drm ? drm -> dev : NULL ;
636+ }
637+
632638/* Helper for struct drm_device based logging. */
633639#define __drm_printk (drm , level , type , fmt , ...) \
634- dev_##level##type((drm) ? (drm)->dev : NULL , "[drm] " fmt, ##__VA_ARGS__)
640+ dev_##level##type(__drm_to_dev (drm), "[drm] " fmt, ##__VA_ARGS__)
635641
636642
637643#define drm_info (drm , fmt , ...) \
@@ -667,47 +673,47 @@ static inline struct drm_printer drm_line_printer(struct drm_printer *p,
667673#ifdef __linux__
668674
669675#define drm_dbg_core (drm , fmt , ...) \
670- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_CORE, fmt, ##__VA_ARGS__)
676+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_CORE, fmt, ##__VA_ARGS__)
671677#define drm_dbg_driver (drm , fmt , ...) \
672- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
678+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
673679#define drm_dbg_kms (drm , fmt , ...) \
674- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_KMS, fmt, ##__VA_ARGS__)
680+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_KMS, fmt, ##__VA_ARGS__)
675681#define drm_dbg_prime (drm , fmt , ...) \
676- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_PRIME, fmt, ##__VA_ARGS__)
682+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_PRIME, fmt, ##__VA_ARGS__)
677683#define drm_dbg_atomic (drm , fmt , ...) \
678- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
684+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
679685#define drm_dbg_vbl (drm , fmt , ...) \
680- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_VBL, fmt, ##__VA_ARGS__)
686+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_VBL, fmt, ##__VA_ARGS__)
681687#define drm_dbg_state (drm , fmt , ...) \
682- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_STATE, fmt, ##__VA_ARGS__)
688+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_STATE, fmt, ##__VA_ARGS__)
683689#define drm_dbg_lease (drm , fmt , ...) \
684- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_LEASE, fmt, ##__VA_ARGS__)
690+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_LEASE, fmt, ##__VA_ARGS__)
685691#define drm_dbg_dp (drm , fmt , ...) \
686- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_DP, fmt, ##__VA_ARGS__)
692+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DP, fmt, ##__VA_ARGS__)
687693#define drm_dbg_drmres (drm , fmt , ...) \
688- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_DRMRES, fmt, ##__VA_ARGS__)
694+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRMRES, fmt, ##__VA_ARGS__)
689695#else
690696
691697#define drm_dbg_core (drm , fmt , ...) \
692- drm_dev_dbg((drm)->dev , DRM_UT_CORE, __func__, fmt, ##__VA_ARGS__)
698+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_CORE, __func__, fmt, ##__VA_ARGS__)
693699#define drm_dbg_driver (drm , fmt , ...) \
694- drm_dev_dbg((drm)->dev , DRM_UT_DRIVER, __func__, fmt, ##__VA_ARGS__)
700+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRIVER, __func__, fmt, ##__VA_ARGS__)
695701#define drm_dbg_kms (drm , fmt , ...) \
696- drm_dev_dbg((drm)->dev , DRM_UT_KMS, __func__, fmt, ##__VA_ARGS__)
702+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_KMS, __func__, fmt, ##__VA_ARGS__)
697703#define drm_dbg_prime (drm , fmt , ...) \
698- drm_dev_dbg((drm)->dev , DRM_UT_PRIME, __func__, fmt, ##__VA_ARGS__)
704+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_PRIME, __func__, fmt, ##__VA_ARGS__)
699705#define drm_dbg_atomic (drm , fmt , ...) \
700- drm_dev_dbg((drm)->dev , DRM_UT_ATOMIC, __func__, fmt, ##__VA_ARGS__)
706+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_ATOMIC, __func__, fmt, ##__VA_ARGS__)
701707#define drm_dbg_vbl (drm , fmt , ...) \
702- drm_dev_dbg((drm)->dev , DRM_UT_VBL, __func__, fmt, ##__VA_ARGS__)
708+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_VBL, __func__, fmt, ##__VA_ARGS__)
703709#define drm_dbg_state (drm , fmt , ...) \
704- drm_dev_dbg((drm)->dev , DRM_UT_STATE, __func__, fmt, ##__VA_ARGS__)
710+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_STATE, __func__, fmt, ##__VA_ARGS__)
705711#define drm_dbg_lease (drm , fmt , ...) \
706- drm_dev_dbg((drm)->dev , DRM_UT_LEASE, __func__, fmt, ##__VA_ARGS__)
712+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_LEASE, __func__, fmt, ##__VA_ARGS__)
707713#define drm_dbg_dp (drm , fmt , ...) \
708- drm_dev_dbg((drm)->dev , DRM_UT_DP, __func__, fmt, ##__VA_ARGS__)
714+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DP, __func__, fmt, ##__VA_ARGS__)
709715#define drm_dbg_drmres (drm , fmt , ...) \
710- drm_dev_dbg((drm)->dev , DRM_UT_DRMRES, __func__, fmt, ##__VA_ARGS__)
716+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRMRES, __func__, fmt, ##__VA_ARGS__)
711717#endif
712718
713719#define drm_dbg (drm , fmt , ...) drm_dbg_driver(drm, fmt, ##__VA_ARGS__)
@@ -839,10 +845,9 @@ void __drm_err(const char *function_name, const char *format, ...);
839845#define __DRM_DEFINE_DBG_RATELIMITED (category , drm , fmt , ...) \
840846({ \
841847 static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\
842- const struct drm_device *drm_ = (drm); \
843848 \
844849 if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \
845- drm_dev_printk(drm_ ? drm_->dev : NULL , KERN_DEBUG, fmt, ## __VA_ARGS__); \
850+ drm_dev_printk(__drm_to_dev(drm) , KERN_DEBUG, fmt, ## __VA_ARGS__); \
846851})
847852
848853#define drm_dbg_ratelimited (drm , fmt , ...) \
@@ -864,13 +869,13 @@ void __drm_err(const char *function_name, const char *format, ...);
864869/* Helper for struct drm_device based WARNs */
865870#define drm_WARN (drm , condition , format , arg ...) \
866871 WARN(condition, "%s %s: [drm] " format, \
867- dev_driver_string((drm)->dev), \
868- dev_name((drm)->dev ), ## arg)
872+ dev_driver_string(__drm_to_dev (drm)), \
873+ dev_name(__drm_to_dev (drm)), ## arg)
869874
870875#define drm_WARN_ONCE (drm , condition , format , arg ...) \
871876 WARN_ONCE(condition, "%s %s: [drm] " format, \
872- dev_driver_string((drm)->dev), \
873- dev_name((drm)->dev ), ## arg)
877+ dev_driver_string(__drm_to_dev (drm)), \
878+ dev_name(__drm_to_dev (drm)), ## arg)
874879
875880#define drm_WARN_ON (drm , x ) \
876881 drm_WARN((drm), (x), "%s", \
0 commit comments