__string(dev, __dev_name_kms(crtc))
                             __array(u32, frame, I915_MAX_PIPES)
                             __array(u32, scanline, I915_MAX_PIPES)
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             ),
            TP_fast_assign(
                           struct intel_display *display = to_intel_display(crtc);
                                   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
                                   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
                           }
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           ),
 
            TP_printk("dev %s, pipe %c enable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
                      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
                      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
                             __string(dev, __dev_name_kms(crtc))
                             __array(u32, frame, I915_MAX_PIPES)
                             __array(u32, scanline, I915_MAX_PIPES)
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             ),
 
            TP_fast_assign(
                                   __entry->frame[it__->pipe] = intel_crtc_get_vblank_counter(it__);
                                   __entry->scanline[it__->pipe] = intel_get_crtc_scanline(it__);
                           }
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           ),
 
            TP_printk("dev %s, pipe %c disable, pipe A: frame=%u, scanline=%u, pipe B: frame=%u, scanline=%u, pipe C: frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame[PIPE_A], __entry->scanline[PIPE_A],
                      __entry->frame[PIPE_B], __entry->scanline[PIPE_B],
                      __entry->frame[PIPE_C], __entry->scanline[PIPE_C])
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline)
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __array(u32, crcs, 5)
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           memcpy(__entry->crcs, crcs, sizeof(__entry->crcs));
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u crc=%08x %08x %08x %08x %08x",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline,
                      __entry->crcs[0], __entry->crcs[1],
                      __entry->crcs[2], __entry->crcs[3],
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_display(display))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
            TP_fast_assign(
                           struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
                           __assign_str(dev);
-                          __entry->pipe = pipe;
+                          __entry->pipe_name = pipe_name(pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline)
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_display(display))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
                           enum pipe pipe = pch_transcoder;
                           struct intel_crtc *crtc = intel_crtc_for_pipe(display, pipe);
                           __assign_str(dev);
-                          __entry->pipe = pipe;
+                          __entry->pipe_name = pipe_name(pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pch transcoder %c, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline)
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __field(u16, primary)
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           __entry->primary = wm->pipe[crtc->pipe].plane[PLANE_PRIMARY];
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, wm %d/%d/%d, sr %s/%d/%d/%d, hpll %s/%d/%d/%d, fbc %s",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline,
                      __entry->primary, __entry->sprite, __entry->cursor,
                      str_yes_no(__entry->cxsr), __entry->sr_plane, __entry->sr_cursor, __entry->sr_fbc,
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __field(u32, level)
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           __entry->level = wm->level;
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, level=%d, cxsr=%d, wm %d/%d/%d/%d, sr %d/%d",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline,
                      __entry->level, __entry->cxsr,
                      __entry->primary, __entry->sprite0, __entry->sprite1, __entry->cursor,
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __field(u32, sprite0_start)
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           __entry->sprite0_start = sprite0_start;
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, %d/%d/%d",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline,
                      __entry->sprite0_start, __entry->sprite1_start, __entry->fifo_size)
 );
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __field(bool, async_flip)
            TP_fast_assign(
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           __entry->async_flip = async_flip;
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u, async_flip=%s",
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline, str_yes_no(__entry->async_flip))
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __array(int, src, 4)
            TP_fast_assign(
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           memcpy(__entry->src, &plane->base.state->src, sizeof(__entry->src));
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline,
                      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
                      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __array(int, src, 4)
            TP_fast_assign(
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           memcpy(__entry->src, &plane->base.state->src, sizeof(__entry->src));
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u, " DRM_RECT_FP_FMT " -> " DRM_RECT_FMT,
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline,
                      DRM_RECT_FP_ARG((const struct drm_rect *)__entry->src),
                      DRM_RECT_ARG((const struct drm_rect *)__entry->dst))
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __string(name, plane->base.name)
            TP_fast_assign(
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline)
 );
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
                             __string(name, plane->base.name)
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
                                                                         plane->pipe);
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline)
 );
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
                             __string(name, plane->base.name)
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
                                                                         plane->pipe);
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline)
 );
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(plane))
                             __string(name, plane->base.name)
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
                                                                         plane->pipe);
                           __assign_str(dev);
                           __assign_str(name);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, plane %s, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe), __get_str(name),
+                     __get_str(dev), __entry->pipe_name, __get_str(name),
                      __entry->frame, __entry->scanline)
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline)
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline)
 );
 
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __field(u32, min)
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = intel_crtc_get_vblank_counter(crtc);
                           __entry->scanline = intel_get_crtc_scanline(crtc);
                           __entry->min = crtc->debug.min_vbl;
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline,
                      __entry->min, __entry->max)
 );
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             __field(u32, min)
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = crtc->debug.start_vbl_count;
                           __entry->scanline = crtc->debug.scanline_start;
                           __entry->min = crtc->debug.min_vbl;
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u, min=%u, max=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline,
                      __entry->min, __entry->max)
 );
 
            TP_STRUCT__entry(
                             __string(dev, __dev_name_kms(crtc))
-                            __field(enum pipe, pipe)
+                            __field(char, pipe_name)
                             __field(u32, frame)
                             __field(u32, scanline)
                             ),
 
            TP_fast_assign(
                           __assign_str(dev);
-                          __entry->pipe = crtc->pipe;
+                          __entry->pipe_name = pipe_name(crtc->pipe);
                           __entry->frame = frame;
                           __entry->scanline = scanline_end;
                           ),
 
            TP_printk("dev %s, pipe %c, frame=%u, scanline=%u",
-                     __get_str(dev), pipe_name(__entry->pipe),
+                     __get_str(dev), __entry->pipe_name,
                      __entry->frame, __entry->scanline)
 );