Home | History | Annotate | Line # | Download | only in include
i915_trace.h revision 1.13
      1   1.4  riastrad /*	$NetBSD: i915_trace.h,v 1.13 2018/08/27 15:09:35 riastradh Exp $	*/
      2   1.2  riastrad 
      3   1.2  riastrad /*-
      4   1.2  riastrad  * Copyright (c) 2013 The NetBSD Foundation, Inc.
      5   1.2  riastrad  * All rights reserved.
      6   1.2  riastrad  *
      7   1.2  riastrad  * This code is derived from software contributed to The NetBSD Foundation
      8   1.2  riastrad  * by Taylor R. Campbell.
      9   1.2  riastrad  *
     10   1.2  riastrad  * Redistribution and use in source and binary forms, with or without
     11   1.2  riastrad  * modification, are permitted provided that the following conditions
     12   1.2  riastrad  * are met:
     13   1.2  riastrad  * 1. Redistributions of source code must retain the above copyright
     14   1.2  riastrad  *    notice, this list of conditions and the following disclaimer.
     15   1.2  riastrad  * 2. Redistributions in binary form must reproduce the above copyright
     16   1.2  riastrad  *    notice, this list of conditions and the following disclaimer in the
     17   1.2  riastrad  *    documentation and/or other materials provided with the distribution.
     18   1.2  riastrad  *
     19   1.2  riastrad  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     20   1.2  riastrad  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     21   1.2  riastrad  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     22   1.2  riastrad  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     23   1.2  riastrad  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     24   1.2  riastrad  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     25   1.2  riastrad  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     26   1.2  riastrad  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     27   1.2  riastrad  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     28   1.2  riastrad  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29   1.2  riastrad  * POSSIBILITY OF SUCH DAMAGE.
     30   1.2  riastrad  */
     31   1.2  riastrad 
     32   1.2  riastrad #ifndef _I915_TRACE_H_
     33   1.2  riastrad #define _I915_TRACE_H_
     34   1.2  riastrad 
     35   1.2  riastrad #include <sys/types.h>
     36  1.13  riastrad #include <sys/sdt.h>
     37   1.2  riastrad 
     38   1.2  riastrad #include "intel_drv.h"
     39   1.2  riastrad 
     40  1.13  riastrad /* Must come last.  */
     41  1.13  riastrad #include <drm/drm_trace_netbsd.h>
     42  1.11  riastrad 
     43  1.13  riastrad DEFINE_TRACE2(i915,, flip__request,
     44  1.13  riastrad     "enum plane"/*plane*/, "struct drm_i915_gem_object *"/*obj*/);
     45  1.11  riastrad static inline void
     46  1.13  riastrad trace_i915_flip_request(enum plane plane, struct drm_i915_gem_object *obj)
     47   1.2  riastrad {
     48  1.13  riastrad 	TRACE2(i915,, flip__request,  plane, obj);
     49   1.2  riastrad }
     50   1.2  riastrad 
     51  1.13  riastrad DEFINE_TRACE2(i915,, flip__complete,
     52  1.13  riastrad     "enum plane"/*plane*/, "struct drm_i915_gem_object *"/*obj*/);
     53   1.2  riastrad static inline void
     54  1.13  riastrad trace_i915_flip_complete(enum plane plane, struct drm_i915_gem_object *obj)
     55   1.2  riastrad {
     56  1.13  riastrad 	TRACE2(i915,, flip__complete,  plane, obj);
     57   1.2  riastrad }
     58   1.2  riastrad 
     59  1.13  riastrad DEFINE_TRACE4(i915,, gem__evict,
     60  1.13  riastrad     "int"/*devno*/,
     61  1.13  riastrad     "int"/*min_size*/, "unsigned"/*alignment*/, "unsigned"/*flags*/);
     62   1.2  riastrad static inline void
     63  1.13  riastrad trace_i915_gem_evict(struct drm_device *dev, int min_size, unsigned alignment,
     64  1.13  riastrad     unsigned flags)
     65   1.3  riastrad {
     66  1.13  riastrad 	TRACE4(i915,, gem__evict,
     67  1.13  riastrad 	    dev->primary->index, min_size, alignment, flags);
     68   1.3  riastrad }
     69   1.3  riastrad 
     70  1.13  riastrad DEFINE_TRACE2(i915,, gem__evict__vm,
     71  1.13  riastrad     "int"/*devno*/, "struct i915_address_space *"/*vm*/);
     72   1.3  riastrad static inline void
     73  1.13  riastrad trace_i915_gem_evict_vm(struct i915_address_space *vm)
     74   1.2  riastrad {
     75  1.13  riastrad 	TRACE2(i915,, gem__evict__vm,  vm->dev->primary->index, vm);
     76   1.2  riastrad }
     77   1.2  riastrad 
     78  1.13  riastrad DEFINE_TRACE3(i915,, gem__object__change__domain,
     79  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
     80  1.13  riastrad     "uint32_t"/*read_domains*/,
     81  1.13  riastrad     "uint32_t"/*write_domain*/);
     82   1.2  riastrad static inline void
     83  1.13  riastrad trace_i915_gem_object_change_domain(struct drm_i915_gem_object *obj,
     84  1.13  riastrad     uint32_t old_read_domains, uint32_t old_write_domain)
     85   1.2  riastrad {
     86  1.13  riastrad 	TRACE3(i915,, gem__object__change__domain,
     87  1.13  riastrad 	    obj,
     88  1.13  riastrad 	    obj->base.read_domains | (old_read_domains << 16),
     89  1.13  riastrad 	    obj->base.write_domain | (old_write_domain << 16));
     90   1.2  riastrad }
     91   1.2  riastrad 
     92  1.13  riastrad DEFINE_TRACE1(i915,, gem__object__clflush,
     93  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/);
     94   1.2  riastrad static inline void
     95  1.13  riastrad trace_i915_gem_object_clflush(struct drm_i915_gem_object *obj)
     96   1.2  riastrad {
     97  1.13  riastrad 	TRACE1(i915,, gem__object__clflush,  obj);
     98   1.2  riastrad }
     99   1.2  riastrad 
    100  1.13  riastrad DEFINE_TRACE2(i915,, gem__object__create,
    101  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
    102  1.13  riastrad     "size_t"/*size*/);
    103   1.2  riastrad static inline void
    104  1.13  riastrad trace_i915_gem_object_create(struct drm_i915_gem_object *obj)
    105   1.2  riastrad {
    106  1.13  riastrad 	TRACE2(i915,, gem__object__create,  obj, obj->base.size);
    107   1.2  riastrad }
    108   1.2  riastrad 
    109  1.13  riastrad DEFINE_TRACE1(i915,, gem__object__destroy,
    110  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/);
    111   1.2  riastrad static inline void
    112  1.13  riastrad trace_i915_gem_object_destroy(struct drm_i915_gem_object *obj)
    113   1.2  riastrad {
    114  1.13  riastrad 	TRACE1(i915,, gem__object__destroy,  obj);
    115   1.2  riastrad }
    116   1.2  riastrad 
    117  1.13  riastrad DEFINE_TRACE4(i915,, gem__object__fault,
    118  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
    119  1.13  riastrad     "pgoff_t"/*page_offset*/,
    120  1.13  riastrad     "bool"/*gtt*/,
    121  1.13  riastrad     "bool"/*write*/);
    122   1.2  riastrad static inline void
    123  1.13  riastrad trace_i915_gem_object_fault(struct drm_i915_gem_object *obj,
    124  1.13  riastrad     pgoff_t page_offset, bool gtt, bool write)
    125   1.2  riastrad {
    126  1.13  riastrad 	TRACE4(i915,, gem__object__fault,  obj, page_offset, gtt, write);
    127   1.2  riastrad }
    128   1.2  riastrad 
    129  1.13  riastrad /* XXX Not sure about size/offset types here.  */
    130  1.13  riastrad DEFINE_TRACE3(i915,, gem__object__pread,
    131  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
    132  1.13  riastrad     "off_t"/*offset*/,
    133  1.13  riastrad     "size_t"/*size*/);
    134   1.2  riastrad static inline void
    135  1.13  riastrad trace_i915_gem_object_pread(struct drm_i915_gem_object *obj, off_t offset,
    136  1.13  riastrad     size_t size)
    137   1.2  riastrad {
    138  1.13  riastrad 	TRACE3(i915,, gem__object__pread,  obj, offset, size);
    139   1.2  riastrad }
    140   1.2  riastrad 
    141  1.13  riastrad DEFINE_TRACE3(i915,, gem__object__write,
    142  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
    143  1.13  riastrad     "off_t"/*offset*/,
    144  1.13  riastrad     "size_t"/*size*/);
    145   1.2  riastrad static inline void
    146  1.13  riastrad trace_i915_gem_object_pwrite(struct drm_i915_gem_object *obj, off_t offset,
    147  1.13  riastrad     size_t size)
    148   1.2  riastrad {
    149  1.13  riastrad 	TRACE3(i915,, gem__object__write,  obj, offset, size);
    150   1.2  riastrad }
    151   1.2  riastrad 
    152  1.13  riastrad DEFINE_TRACE3(i915,, gem__request__add,
    153  1.13  riastrad     "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
    154   1.2  riastrad static inline void
    155   1.4  riastrad trace_i915_gem_request_add(struct drm_i915_gem_request *request)
    156   1.2  riastrad {
    157  1.13  riastrad 	TRACE3(i915,, gem__request__add,
    158  1.13  riastrad 	    request->ring->dev->primary->index,
    159  1.13  riastrad 	    request->ring->id,
    160  1.13  riastrad 	    request->seqno);
    161   1.2  riastrad }
    162   1.2  riastrad 
    163  1.13  riastrad DEFINE_TRACE3(i915,, gem__request__retire,
    164  1.13  riastrad     "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
    165   1.2  riastrad static inline void
    166  1.13  riastrad trace_i915_gem_request_retire(struct drm_i915_gem_request *request)
    167   1.2  riastrad {
    168  1.13  riastrad 	TRACE3(i915,, gem__request__retire,
    169  1.13  riastrad 	    request->ring->dev->primary->index,
    170  1.13  riastrad 	    request->ring->id,
    171  1.13  riastrad 	    request->seqno);
    172   1.2  riastrad }
    173   1.2  riastrad 
    174  1.13  riastrad DEFINE_TRACE3(i915,, gem__request__wait__begin,
    175  1.13  riastrad     "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
    176   1.2  riastrad static inline void
    177  1.13  riastrad trace_i915_gem_request_wait_begin(struct drm_i915_gem_request *request)
    178   1.2  riastrad {
    179  1.13  riastrad 	TRACE3(i915,, gem__request__wait__begin,
    180  1.13  riastrad 	    request->ring->dev->primary->index,
    181  1.13  riastrad 	    request->ring->id,
    182  1.13  riastrad 	    request->seqno);
    183   1.2  riastrad }
    184   1.2  riastrad 
    185  1.13  riastrad DEFINE_TRACE3(i915,, gem__request__wait__end,
    186  1.13  riastrad     "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
    187   1.2  riastrad static inline void
    188  1.13  riastrad trace_i915_gem_request_wait_end(struct drm_i915_gem_request *request)
    189   1.2  riastrad {
    190  1.13  riastrad 	TRACE3(i915,, gem__request__wait__end,
    191  1.13  riastrad 	    request->ring->dev->primary->index,
    192  1.13  riastrad 	    request->ring->id,
    193  1.13  riastrad 	    request->seqno);
    194   1.2  riastrad }
    195   1.2  riastrad 
    196  1.13  riastrad DEFINE_TRACE3(i915,, gem__request__notify,
    197  1.13  riastrad     "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/);
    198   1.2  riastrad static inline void
    199  1.13  riastrad trace_i915_gem_request_notify(struct intel_engine_cs *ring)
    200   1.8  riastrad {
    201  1.13  riastrad 	TRACE3(i915,, gem__request__notify,
    202  1.13  riastrad 	    ring->dev->primary->index, ring->id, ring->get_seqno(ring, false));
    203   1.8  riastrad }
    204   1.8  riastrad 
    205  1.13  riastrad /* XXX Why no request in the trace upstream?  */
    206  1.13  riastrad DEFINE_TRACE4(i915,, gem__ring__dispatch,
    207  1.13  riastrad     "int"/*devno*/, "int"/*ringid*/, "uint32_t"/*seqno*/, "uint32_t"/*flags*/);
    208   1.8  riastrad static inline void
    209  1.13  riastrad trace_i915_gem_ring_dispatch(struct drm_i915_gem_request *request,
    210  1.13  riastrad     uint32_t flags)
    211   1.2  riastrad {
    212  1.13  riastrad 	TRACE4(i915,, gem__ring__dispatch,
    213  1.13  riastrad 	    request->ring->dev->primary->index,
    214  1.13  riastrad 	    request->ring->id,
    215  1.13  riastrad 	    request->seqno,
    216  1.13  riastrad 	    flags);
    217  1.13  riastrad 	/* XXX i915_trace_irq_get?  Doesn't seem to be used.  */
    218   1.2  riastrad }
    219   1.2  riastrad 
    220  1.13  riastrad DEFINE_TRACE4(i915,, gem__ring__flush,
    221  1.13  riastrad     "int"/*devno*/,
    222  1.13  riastrad     "int"/*ringid*/,
    223  1.13  riastrad     "uint32_t"/*invalidate*/,
    224  1.13  riastrad     "uint32_t"/*flags*/);
    225   1.2  riastrad static inline void
    226  1.13  riastrad trace_i915_gem_ring_flush(struct drm_i915_gem_request *request,
    227  1.13  riastrad     uint32_t invalidate, uint32_t flags)
    228   1.2  riastrad {
    229  1.13  riastrad 	TRACE4(i915,, gem__ring__flush,
    230  1.13  riastrad 	    request->ring->dev->primary->index,
    231  1.13  riastrad 	    request->ring->id,
    232  1.13  riastrad 	    invalidate,
    233  1.13  riastrad 	    flags);
    234   1.2  riastrad }
    235   1.2  riastrad 
    236  1.13  riastrad DEFINE_TRACE4(i915,, gem__ring__sync__to,
    237  1.13  riastrad     "int"/*devno*/,
    238  1.13  riastrad     "int"/*from_ringid*/,
    239  1.13  riastrad     "int"/*to_ringid*/,
    240  1.13  riastrad     "uint32_t"/*seqno*/);
    241   1.2  riastrad static inline void
    242  1.13  riastrad trace_i915_gem_ring_sync_to(struct drm_i915_gem_request *to_req,
    243  1.13  riastrad     struct intel_engine_cs *from, struct drm_i915_gem_request *from_req)
    244   1.3  riastrad {
    245  1.13  riastrad 	TRACE4(i915,, gem__ring__sync__to,
    246  1.13  riastrad 	    from->dev->primary->index,
    247  1.13  riastrad 	    from->id,
    248  1.13  riastrad 	    to_req->ring->id,
    249  1.13  riastrad 	    i915_gem_request_get_seqno(from_req));
    250   1.3  riastrad }
    251   1.3  riastrad 
    252  1.13  riastrad DEFINE_TRACE3(i915,, register__read,
    253  1.13  riastrad     "uint32_t"/*reg*/, "uint64_t"/*value*/, "size_t"/*len*/);
    254  1.13  riastrad DEFINE_TRACE3(i915,, register__write,
    255  1.13  riastrad     "uint32_t"/*reg*/, "uint64_t"/*value*/, "size_t"/*len*/);
    256   1.3  riastrad static inline void
    257  1.13  riastrad trace_i915_reg_rw(bool write, uint32_t reg, uint64_t value, size_t len,
    258  1.13  riastrad     bool trace)
    259   1.2  riastrad {
    260  1.13  riastrad 	if (!trace)
    261  1.13  riastrad 		return;
    262  1.13  riastrad 	if (write)
    263  1.13  riastrad 		TRACE3(i915,, register__read,  reg, value, len);
    264  1.13  riastrad 	else
    265  1.13  riastrad 		TRACE3(i915,, register__write,  reg, value, len);
    266   1.2  riastrad }
    267   1.2  riastrad 
    268  1.13  riastrad DEFINE_TRACE5(i915,, vma__bind,
    269  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
    270  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    271  1.13  riastrad     "uint64_t"/*offset*/,
    272  1.13  riastrad     "uint64_t"/*size*/,
    273  1.13  riastrad     "uint64_t"/*flags*/);
    274   1.2  riastrad static inline void
    275  1.13  riastrad trace_i915_vma_bind(struct i915_vma *vma, uint64_t flags)
    276   1.3  riastrad {
    277  1.13  riastrad 	TRACE5(i915,, vma__bind,
    278  1.13  riastrad 	    vma->obj, vma->vm, vma->node.start, vma->node.size, flags);
    279   1.3  riastrad }
    280   1.3  riastrad 
    281  1.13  riastrad DEFINE_TRACE4(i915,, vma__unbind,
    282  1.13  riastrad     "struct drm_i915_gem_object *"/*obj*/,
    283  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    284  1.13  riastrad     "uint64_t"/*offset*/,
    285  1.13  riastrad     "uint64_t"/*size*/);
    286   1.3  riastrad static inline void
    287  1.13  riastrad trace_i915_vma_unbind(struct i915_vma *vma)
    288   1.3  riastrad {
    289  1.13  riastrad 	TRACE4(i915,, vma__unbind,
    290  1.13  riastrad 	    vma->obj, vma->vm, vma->node.start, vma->node.size);
    291   1.3  riastrad }
    292   1.3  riastrad 
    293  1.13  riastrad DEFINE_TRACE1(i915,, gpu__freq__change,
    294  1.13  riastrad     "int"/*freq*/);
    295   1.3  riastrad static inline void
    296  1.13  riastrad trace_intel_gpu_freq_change(int freq)
    297   1.2  riastrad {
    298  1.13  riastrad 	TRACE1(i915,, gpu__freq__change,  freq);
    299   1.2  riastrad }
    300   1.2  riastrad 
    301  1.13  riastrad DEFINE_TRACE3(i915,, context__create,
    302  1.13  riastrad     "int"/*devno*/,
    303  1.13  riastrad     "struct intel_context *"/*ctx*/,
    304  1.13  riastrad     "struct i915_address_space *"/*vm*/);
    305   1.6  riastrad static inline void
    306  1.13  riastrad trace_i915_context_create(struct intel_context *ctx)
    307   1.6  riastrad {
    308  1.13  riastrad 	TRACE3(i915,, context__create,
    309  1.13  riastrad 	    ctx->i915->dev->primary->index,
    310  1.13  riastrad 	    ctx,
    311  1.13  riastrad 	    (ctx->ppgtt ? &ctx->ppgtt->base : NULL));
    312   1.6  riastrad }
    313   1.6  riastrad 
    314  1.13  riastrad DEFINE_TRACE3(i915,, context__free,
    315  1.13  riastrad     "int"/*devno*/,
    316  1.13  riastrad     "struct intel_context *"/*ctx*/,
    317  1.13  riastrad     "struct i915_address_space *"/*vm*/);
    318   1.6  riastrad static inline void
    319  1.13  riastrad trace_i915_context_free(struct intel_context *ctx)
    320   1.6  riastrad {
    321  1.13  riastrad 	TRACE3(i915,, context__free,
    322  1.13  riastrad 	    ctx->i915->dev->primary->index,
    323  1.13  riastrad 	    ctx,
    324  1.13  riastrad 	    (ctx->ppgtt ? &ctx->ppgtt->base : NULL));
    325   1.6  riastrad }
    326   1.6  riastrad 
    327  1.13  riastrad DEFINE_TRACE4(i915,, page_directory_entry_alloc,
    328  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    329  1.13  riastrad     "uint32_t"/*pdpe*/,
    330  1.13  riastrad     "uint64_t"/*start*/,
    331  1.13  riastrad     "uint64_t"/*pde_shift*/);
    332   1.6  riastrad static inline void
    333  1.13  riastrad trace_i915_page_directory_entry_alloc(struct i915_address_space *vm,
    334  1.13  riastrad     uint32_t pdpe, uint64_t start, uint64_t pde_shift)
    335   1.9  riastrad {
    336  1.13  riastrad 	TRACE4(i915,, page_directory_entry_alloc,  vm, pdpe, start, pde_shift);
    337   1.9  riastrad }
    338   1.9  riastrad 
    339  1.13  riastrad DEFINE_TRACE4(i915,, page_directory_pointer_entry_alloc,
    340  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    341  1.13  riastrad     "uint32_t"/*pml4e*/,
    342  1.13  riastrad     "uint64_t"/*start*/,
    343  1.13  riastrad     "uint64_t"/*pde_shift*/);
    344   1.9  riastrad static inline void
    345  1.13  riastrad trace_i915_page_directory_pointer_entry_alloc(struct i915_address_space *vm,
    346  1.13  riastrad     uint32_t pml4e, uint64_t start, uint64_t pde_shift)
    347   1.9  riastrad {
    348  1.13  riastrad 	TRACE4(i915,, page_directory_pointer_entry_alloc,
    349  1.13  riastrad 	    vm, pml4e, start, pde_shift);
    350   1.9  riastrad }
    351   1.9  riastrad 
    352  1.13  riastrad DEFINE_TRACE4(i915,, page_table_entry_alloc,
    353  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    354  1.13  riastrad     "uint32_t"/*pde*/,
    355  1.13  riastrad     "uint64_t"/*start*/,
    356  1.13  riastrad     "uint64_t"/*pde_shift*/);
    357   1.9  riastrad static inline void
    358  1.13  riastrad trace_i915_page_table_entry_alloc(struct i915_address_space *vm, uint32_t pde,
    359  1.13  riastrad     uint64_t start, uint64_t pde_shift)
    360   1.9  riastrad {
    361  1.13  riastrad 	TRACE4(i915,, page_table_entry_alloc,  vm, pde, start, pde_shift);
    362   1.9  riastrad }
    363   1.9  riastrad 
    364  1.13  riastrad DEFINE_TRACE6(i915,, page_table_entry_map,
    365  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    366  1.13  riastrad     "uint32_t"/*pde*/,
    367  1.13  riastrad     "struct i915_page_table *"/*pt*/,
    368  1.13  riastrad     "uint32_t"/*first*/,
    369  1.13  riastrad     "uint32_t"/*count*/,
    370  1.13  riastrad     "uint32_t"/*bits*/);
    371   1.9  riastrad static inline void
    372  1.13  riastrad trace_i915_page_table_entry_map(struct i915_address_space *vm, uint32_t pde,
    373  1.13  riastrad     struct i915_page_table *pt, uint32_t first, uint32_t count, uint32_t bits)
    374   1.9  riastrad {
    375  1.13  riastrad 	TRACE6(i915,, page_table_entry_map,  vm, pde, pt, first, count, bits);
    376   1.9  riastrad }
    377   1.9  riastrad 
    378  1.13  riastrad DEFINE_TRACE2(i915,, ppgtt__create,
    379  1.13  riastrad     "int"/*devno*/,
    380  1.13  riastrad     "struct i915_address_space *"/*vm*/);
    381   1.9  riastrad static inline void
    382  1.13  riastrad trace_i915_ppgtt_create(struct i915_address_space *vm)
    383   1.9  riastrad {
    384  1.13  riastrad 	TRACE2(i915,, ppgtt__create,  vm->dev->primary->index, vm);
    385   1.9  riastrad }
    386   1.9  riastrad 
    387  1.13  riastrad DEFINE_TRACE2(i915,, ppgtt__release,
    388  1.13  riastrad     "int"/*devno*/,
    389  1.13  riastrad     "struct i915_address_space *"/*vm*/);
    390   1.9  riastrad static inline void
    391  1.13  riastrad trace_i915_ppgtt_release(struct i915_address_space *vm)
    392   1.9  riastrad {
    393  1.13  riastrad 	TRACE2(i915,, ppgtt__release,  vm->dev->primary->index, vm);
    394   1.9  riastrad }
    395   1.9  riastrad 
    396  1.13  riastrad #define	VM_TO_TRACE_NAME(vm)	(i915_is_ggtt(vm) ? "G" : "P")
    397   1.9  riastrad 
    398  1.13  riastrad DEFINE_TRACE4(i915,, va__alloc,
    399  1.13  riastrad     "struct i915_address_space *"/*vm*/,
    400  1.13  riastrad     "uint64_t"/*start*/,
    401  1.13  riastrad     "uint64_t"/*end*/,
    402  1.13  riastrad     "const char *"/*name*/);
    403   1.9  riastrad static inline void
    404  1.13  riastrad trace_i915_va_alloc(struct i915_address_space *vm, uint64_t start,
    405  1.13  riastrad     uint64_t length, const char *name)
    406   1.9  riastrad {
    407  1.13  riastrad 	/* XXX Why start/end upstream?  */
    408  1.13  riastrad 	TRACE4(i915,, va__alloc,  vm, start, start + length - 1, name);
    409   1.9  riastrad }
    410   1.9  riastrad 
    411  1.13  riastrad DEFINE_TRACE3(i915,, gem__shrink,
    412  1.13  riastrad     "int"/*devno*/,
    413  1.13  riastrad     "unsigned long"/*target*/,
    414  1.13  riastrad     "unsigned"/*flags*/);
    415   1.9  riastrad static inline void
    416  1.10  riastrad trace_i915_gem_shrink(struct drm_i915_private *dev_priv, unsigned long target,
    417  1.13  riastrad     unsigned flags)
    418  1.10  riastrad {
    419  1.13  riastrad 	TRACE3(i915,, gem__shrink,
    420  1.13  riastrad 	    dev_priv->dev->primary->index, target, flags);
    421  1.10  riastrad }
    422  1.10  riastrad 
    423  1.13  riastrad DEFINE_TRACE5(i915,, pipe__update__start,
    424  1.13  riastrad     "enum i915_pipe"/*pipe*/,
    425  1.13  riastrad     "uint32_t"/*frame*/,
    426  1.13  riastrad     "int"/*scanline*/,
    427  1.13  riastrad     "uint32_t"/*min*/,
    428  1.13  riastrad     "uint32_t"/*max*/);
    429  1.10  riastrad static inline void
    430  1.12  riastrad trace_i915_pipe_update_start(struct intel_crtc *crtc)
    431  1.12  riastrad {
    432  1.13  riastrad 	TRACE5(i915,, pipe__update__start,
    433  1.13  riastrad 	    crtc->pipe,
    434  1.13  riastrad 	    crtc->base.dev->driver->get_vblank_counter(crtc->base.dev,
    435  1.13  riastrad 		crtc->pipe),
    436  1.13  riastrad 	    intel_get_crtc_scanline(crtc),
    437  1.13  riastrad 	    crtc->debug.min_vbl,
    438  1.13  riastrad 	    crtc->debug.max_vbl);
    439  1.12  riastrad }
    440  1.12  riastrad 
    441  1.13  riastrad DEFINE_TRACE5(i915,, pipe__update__vblank__evaded,
    442  1.13  riastrad     "enum i915_pipe"/*pipe*/,
    443  1.13  riastrad     "uint32_t"/*frame*/,
    444  1.13  riastrad     "int"/*scanline*/,
    445  1.13  riastrad     "uint32_t"/*min*/,
    446  1.13  riastrad     "uint32_t"/*max*/);
    447  1.12  riastrad static inline void
    448  1.12  riastrad trace_i915_pipe_update_vblank_evaded(struct intel_crtc *crtc)
    449  1.12  riastrad {
    450  1.13  riastrad 	TRACE5(i915,, pipe__update__vblank__evaded,
    451  1.13  riastrad 	    crtc->pipe,
    452  1.13  riastrad 	    crtc->debug.start_vbl_count,
    453  1.13  riastrad 	    crtc->debug.scanline_start,
    454  1.13  riastrad 	    crtc->debug.min_vbl,
    455  1.13  riastrad 	    crtc->debug.max_vbl);
    456  1.13  riastrad }
    457  1.13  riastrad 
    458  1.13  riastrad DEFINE_TRACE3(i915,, pipe__update__end,
    459  1.13  riastrad     "enum i915_pipe"/*pipe*/,
    460  1.13  riastrad     "uint32_t"/*frame*/,
    461  1.13  riastrad     "int"/*scanline*/);
    462  1.13  riastrad static inline void
    463  1.13  riastrad trace_i915_pipe_update_end(struct intel_crtc *crtc, uint32_t frame,
    464  1.13  riastrad     int scanline)
    465  1.13  riastrad {
    466  1.13  riastrad 	TRACE3(i915,, pipe__update__end,  crtc->pipe, frame, scanline);
    467  1.13  riastrad }
    468  1.13  riastrad 
    469  1.13  riastrad DEFINE_TRACE4(i915,, switch__mm,
    470  1.13  riastrad     "int"/*devno*/,
    471  1.13  riastrad     "int"/*ringid*/,
    472  1.13  riastrad     "struct intel_context *"/*to*/,
    473  1.13  riastrad     "struct i915_address_space *"/*vm*/);
    474  1.13  riastrad static inline void
    475  1.13  riastrad trace_switch_mm(struct intel_engine_cs *ring, struct intel_context *to)
    476  1.13  riastrad {
    477  1.13  riastrad 	TRACE4(i915,, switch__mm,
    478  1.13  riastrad 	    ring->dev->primary->index,
    479  1.13  riastrad 	    ring->id,
    480  1.13  riastrad 	    to,
    481  1.13  riastrad 	    to->ppgtt ? &to->ppgtt->base : NULL);
    482   1.6  riastrad }
    483   1.6  riastrad 
    484   1.2  riastrad #endif  /* _I915_TRACE_H_ */
    485