@@ -632,9 +632,15 @@ static inline struct drm_printer drm_line_printer(struct drm_printer *p,
632632 * Prefer drm_device based logging over device or prink based logging.
633633 */
634634
635+ /* Helper to enforce struct drm_device type */
636+ static inline struct device * __drm_to_dev (const struct drm_device * drm )
637+ {
638+ return drm ? drm -> dev : NULL ;
639+ }
640+
635641/* Helper for struct drm_device based logging. */
636642#define __drm_printk (drm , level , type , fmt , ...) \
637- dev_##level##type((drm) ? (drm)->dev : NULL , "[drm] " fmt, ##__VA_ARGS__)
643+ dev_##level##type(__drm_to_dev (drm), "[drm] " fmt, ##__VA_ARGS__)
638644
639645
640646#define drm_info (drm , fmt , ...) \
@@ -670,47 +676,47 @@ static inline struct drm_printer drm_line_printer(struct drm_printer *p,
670676#ifdef __linux__
671677
672678#define drm_dbg_core (drm , fmt , ...) \
673- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_CORE, fmt, ##__VA_ARGS__)
679+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_CORE, fmt, ##__VA_ARGS__)
674680#define drm_dbg_driver (drm , fmt , ...) \
675- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
681+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
676682#define drm_dbg_kms (drm , fmt , ...) \
677- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_KMS, fmt, ##__VA_ARGS__)
683+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_KMS, fmt, ##__VA_ARGS__)
678684#define drm_dbg_prime (drm , fmt , ...) \
679- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_PRIME, fmt, ##__VA_ARGS__)
685+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_PRIME, fmt, ##__VA_ARGS__)
680686#define drm_dbg_atomic (drm , fmt , ...) \
681- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
687+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
682688#define drm_dbg_vbl (drm , fmt , ...) \
683- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_VBL, fmt, ##__VA_ARGS__)
689+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_VBL, fmt, ##__VA_ARGS__)
684690#define drm_dbg_state (drm , fmt , ...) \
685- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_STATE, fmt, ##__VA_ARGS__)
691+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_STATE, fmt, ##__VA_ARGS__)
686692#define drm_dbg_lease (drm , fmt , ...) \
687- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_LEASE, fmt, ##__VA_ARGS__)
693+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_LEASE, fmt, ##__VA_ARGS__)
688694#define drm_dbg_dp (drm , fmt , ...) \
689- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_DP, fmt, ##__VA_ARGS__)
695+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DP, fmt, ##__VA_ARGS__)
690696#define drm_dbg_drmres (drm , fmt , ...) \
691- drm_dev_dbg((drm) ? (drm)->dev : NULL , DRM_UT_DRMRES, fmt, ##__VA_ARGS__)
697+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRMRES, fmt, ##__VA_ARGS__)
692698#else
693699
694700#define drm_dbg_core (drm , fmt , ...) \
695- drm_dev_dbg((drm)->dev , DRM_UT_CORE, __func__, fmt, ##__VA_ARGS__)
701+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_CORE, __func__, fmt, ##__VA_ARGS__)
696702#define drm_dbg_driver (drm , fmt , ...) \
697- drm_dev_dbg((drm)->dev , DRM_UT_DRIVER, __func__, fmt, ##__VA_ARGS__)
703+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRIVER, __func__, fmt, ##__VA_ARGS__)
698704#define drm_dbg_kms (drm , fmt , ...) \
699- drm_dev_dbg((drm)->dev , DRM_UT_KMS, __func__, fmt, ##__VA_ARGS__)
705+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_KMS, __func__, fmt, ##__VA_ARGS__)
700706#define drm_dbg_prime (drm , fmt , ...) \
701- drm_dev_dbg((drm)->dev , DRM_UT_PRIME, __func__, fmt, ##__VA_ARGS__)
707+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_PRIME, __func__, fmt, ##__VA_ARGS__)
702708#define drm_dbg_atomic (drm , fmt , ...) \
703- drm_dev_dbg((drm)->dev , DRM_UT_ATOMIC, __func__, fmt, ##__VA_ARGS__)
709+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_ATOMIC, __func__, fmt, ##__VA_ARGS__)
704710#define drm_dbg_vbl (drm , fmt , ...) \
705- drm_dev_dbg((drm)->dev , DRM_UT_VBL, __func__, fmt, ##__VA_ARGS__)
711+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_VBL, __func__, fmt, ##__VA_ARGS__)
706712#define drm_dbg_state (drm , fmt , ...) \
707- drm_dev_dbg((drm)->dev , DRM_UT_STATE, __func__, fmt, ##__VA_ARGS__)
713+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_STATE, __func__, fmt, ##__VA_ARGS__)
708714#define drm_dbg_lease (drm , fmt , ...) \
709- drm_dev_dbg((drm)->dev , DRM_UT_LEASE, __func__, fmt, ##__VA_ARGS__)
715+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_LEASE, __func__, fmt, ##__VA_ARGS__)
710716#define drm_dbg_dp (drm , fmt , ...) \
711- drm_dev_dbg((drm)->dev , DRM_UT_DP, __func__, fmt, ##__VA_ARGS__)
717+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DP, __func__, fmt, ##__VA_ARGS__)
712718#define drm_dbg_drmres (drm , fmt , ...) \
713- drm_dev_dbg((drm)->dev , DRM_UT_DRMRES, __func__, fmt, ##__VA_ARGS__)
719+ drm_dev_dbg(__drm_to_dev (drm), DRM_UT_DRMRES, __func__, fmt, ##__VA_ARGS__)
714720#endif
715721
716722#define drm_dbg (drm , fmt , ...) drm_dbg_driver(drm, fmt, ##__VA_ARGS__)
@@ -842,10 +848,9 @@ void __drm_err(const char *function_name, const char *format, ...);
842848#define __DRM_DEFINE_DBG_RATELIMITED (category , drm , fmt , ...) \
843849({ \
844850 static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST);\
845- const struct drm_device *drm_ = (drm); \
846851 \
847852 if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(&rs_)) \
848- drm_dev_printk(drm_ ? drm_->dev : NULL , KERN_DEBUG, fmt, ## __VA_ARGS__); \
853+ drm_dev_printk(__drm_to_dev(drm) , KERN_DEBUG, fmt, ## __VA_ARGS__); \
849854})
850855
851856#define drm_dbg_ratelimited (drm , fmt , ...) \
@@ -867,13 +872,13 @@ void __drm_err(const char *function_name, const char *format, ...);
867872/* Helper for struct drm_device based WARNs */
868873#define drm_WARN (drm , condition , format , arg ...) \
869874 WARN(condition, "%s %s: [drm] " format, \
870- dev_driver_string((drm)->dev), \
871- dev_name((drm)->dev ), ## arg)
875+ dev_driver_string(__drm_to_dev (drm)), \
876+ dev_name(__drm_to_dev (drm)), ## arg)
872877
873878#define drm_WARN_ONCE (drm , condition , format , arg ...) \
874879 WARN_ONCE(condition, "%s %s: [drm] " format, \
875- dev_driver_string((drm)->dev), \
876- dev_name((drm)->dev ), ## arg)
880+ dev_driver_string(__drm_to_dev (drm)), \
881+ dev_name(__drm_to_dev (drm)), ## arg)
877882
878883#define drm_WARN_ON (drm , x ) \
879884 drm_WARN((drm), (x), "%s", \
0 commit comments