All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Zhi Wang <zhi.wang.linux@gmail.com>,
	jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com,
	rodrigo.vivi@intel.com, zhenyuw@linux.intel.com,
	zhi.a.wang@intel.com, jgg@nvidia.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Cc: kbuild-all@lists.01.org
Subject: Re: [Intel-gfx] [PATCH 1/3] i915/gvt: seperate tracked MMIO table from handlers.c
Date: Fri, 12 Nov 2021 07:32:37 +0800	[thread overview]
Message-ID: <202111120709.0HZyzp3c-lkp@intel.com> (raw)
In-Reply-To: <20211108212718.10576-1-zhi.a.wang@intel.com>

[-- Attachment #1: Type: text/plain, Size: 60730 bytes --]

Hi Zhi,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v5.15 next-20211111]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Zhi-Wang/i915-gvt-seperate-tracked-MMIO-table-from-handlers-c/20211109-052907
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/8d4393b277b5196206271d5191d25fe61b1b34f1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Zhi-Wang/i915-gvt-seperate-tracked-MMIO-table-from-handlers-c/20211109-052907
        git checkout 8d4393b277b5196206271d5191d25fe61b1b34f1
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from <command-line>:
   drivers/gpu/drm/i915/gvt/mmio_table.h:85:52: error: 'struct intel_gvt' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
      85 | static int intel_gvt_init_generic_mmio_info(struct intel_gvt *gvt)
         |                                                    ^~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h: In function 'intel_gvt_init_generic_mmio_info':
>> drivers/gpu/drm/i915/gvt/mmio_table.h:87:41: error: dereferencing pointer to incomplete type 'struct intel_gvt'
      87 |  struct drm_i915_private *dev_priv = gvt->gt->i915;
         |                                         ^~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:36:8: error: implicit declaration of function 'new_mmio_info' [-Werror=implicit-function-declaration]
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |        ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:2: note: in expansion of macro 'MMIO_F'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:36:27: error: implicit declaration of function 'i915_mmio_reg_offset' [-Werror=implicit-function-declaration]
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                           ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:2: note: in expansion of macro 'MMIO_F'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:16: error: implicit declaration of function 'RING_IMR' [-Werror=implicit-function-declaration]
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                ^~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:62:16: error: 'RENDER_RING_BASE' undeclared (first use in this function)
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:16: note: each undeclared identifier is reported only once for each function it appears in
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:26: error: 'D_ALL' undeclared (first use in this function)
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                          ^~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:17: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                 ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:36: error: 'NULL' undeclared (first use in this function)
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                                    ^~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:20: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                    ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:1:1: note: 'NULL' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
     +++ |+#include <stddef.h>
       1 | /*
>> drivers/gpu/drm/i915/gvt/mmio_table.h:92:3: error: 'intel_vgpu_reg_imr_handler' undeclared (first use in this function)
      92 |   intel_vgpu_reg_imr_handler);
         |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:63:16: error: 'BLT_RING_BASE' undeclared (first use in this function)
      63 |  MMIO_F(prefix(BLT_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:64:16: error: 'GEN6_BSD_RING_BASE' undeclared (first use in this function)
      64 |  MMIO_F(prefix(GEN6_BSD_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:65:16: error: 'VEBOX_RING_BASE' undeclared (first use in this function)
      65 |  MMIO_F(prefix(VEBOX_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:66:6: error: implicit declaration of function 'HAS_ENGINE' [-Werror=implicit-function-declaration]
      66 |  if (HAS_ENGINE(gvt->gt, VCS1)) \
         |      ^~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:66:26: error: 'VCS1' undeclared (first use in this function)
      66 |  if (HAS_ENGINE(gvt->gt, VCS1)) \
         |                          ^~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:67:17: error: 'GEN8_BSD2_RING_BASE' undeclared (first use in this function)
      67 |   MMIO_F(prefix(GEN8_BSD2_RING_BASE), s, f, am, rm, d, r, w); \
         |                 ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:94:11: error: 'SDEIMR' undeclared (first use in this function)
      94 |  MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:94:2: note: in expansion of macro 'MMIO_DFH'
      94 |  MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:95:11: error: 'SDEIER' undeclared (first use in this function)
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:95:2: note: in expansion of macro 'MMIO_DFH'
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:95:35: error: 'intel_vgpu_reg_ier_handler' undeclared (first use in this function)
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:95:2: note: in expansion of macro 'MMIO_DFH'
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:96:11: error: 'SDEIIR' undeclared (first use in this function)
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:96:2: note: in expansion of macro 'MMIO_DFH'
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:96:35: error: 'intel_vgpu_reg_iir_handler' undeclared (first use in this function)
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:96:2: note: in expansion of macro 'MMIO_DFH'
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:97:9: error: 'SDEISR' undeclared (first use in this function)
      97 |  MMIO_D(SDEISR, D_ALL);
         |         ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:97:2: note: in expansion of macro 'MMIO_D'
      97 |  MMIO_D(SDEISR, D_ALL);
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:99:16: error: implicit declaration of function 'RING_HWSTAM' [-Werror=implicit-function-declaration]
      99 |  MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
         |                ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:99:2: note: in expansion of macro 'MMIO_RING_DFH'
      99 |  MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:10: error: 'GEN8_GAMW_ECO_DEV_RW_IA' undeclared (first use in this function)
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |          ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:35: error: 'D_BDW_PLUS' undeclared (first use in this function)
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |                                   ^~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:17: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                 ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:103:3: error: 'gamw_echo_dev_rw_ia_write' undeclared (first use in this function)
     103 |   gamw_echo_dev_rw_ia_write);
         |   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:14: error: 'BSD_HWS_PGA_GEN7' undeclared (first use in this function)
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:56:17: error: 'F_GMADR' undeclared (first use in this function)
      56 |  MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
         |                 ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:3: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |   ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:56:27: error: 'F_CMD_ACCESS' undeclared (first use in this function)
      56 |  MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
         |                           ^~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:3: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |   ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:106:14: error: 'BLT_HWS_PGA_GEN7' undeclared (first use in this function)
     106 |  MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:106:2: note: in expansion of macro 'MMIO_GM_RDR'
     106 |  MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:107:14: error: 'VEBOX_HWS_PGA_GEN7' undeclared (first use in this function)
     107 |  MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:107:2: note: in expansion of macro 'MMIO_GM_RDR'
     107 |  MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:109:24: error: implicit declaration of function '_MMIO' [-Werror=implicit-function-declaration]
     109 | #define RING_REG(base) _MMIO((base) + 0x28)
         |                        ^~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:9: note: in expansion of macro 'RING_REG'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \


vim +87 drivers/gpu/drm/i915/gvt/mmio_table.h

    27	
    28	#ifdef GENERATE_MMIO_TABLE_IN_I915
    29	#define MMIO_F(reg, s, f, am, rm, d, r, w) do { \
    30		ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg)); \
    31		if (ret) \
    32			return ret; \
    33	} while (0)
    34	#else
    35	#define MMIO_F(reg, s, f, am, rm, d, r, w) do { \
  > 36		ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
    37			f, s, am, rm, d, r, w); \
    38		if (ret) \
    39			return ret; \
    40	} while (0)
    41	#endif
    42	
    43	#define MMIO_D(reg, d) \
    44		MMIO_F(reg, 4, 0, 0, 0, d, NULL, NULL)
    45	
    46	#define MMIO_DH(reg, d, r, w) \
    47		MMIO_F(reg, 4, 0, 0, 0, d, r, w)
    48	
    49	#define MMIO_DFH(reg, d, f, r, w) \
    50		MMIO_F(reg, 4, f, 0, 0, d, r, w)
    51	
    52	#define MMIO_GM(reg, d, r, w) \
    53		MMIO_F(reg, 4, F_GMADR, 0xFFFFF000, 0, d, r, w)
    54	
    55	#define MMIO_GM_RDR(reg, d, r, w) \
  > 56		MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
    57	
    58	#define MMIO_RO(reg, d, f, rm, r, w) \
  > 59		MMIO_F(reg, 4, F_RO | f, 0, rm, d, r, w)
    60	
    61	#define MMIO_RING_F(prefix, s, f, am, rm, d, r, w) do { \
  > 62		MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
  > 63		MMIO_F(prefix(BLT_RING_BASE), s, f, am, rm, d, r, w); \
  > 64		MMIO_F(prefix(GEN6_BSD_RING_BASE), s, f, am, rm, d, r, w); \
  > 65		MMIO_F(prefix(VEBOX_RING_BASE), s, f, am, rm, d, r, w); \
  > 66		if (HAS_ENGINE(gvt->gt, VCS1)) \
  > 67			MMIO_F(prefix(GEN8_BSD2_RING_BASE), s, f, am, rm, d, r, w); \
    68	} while (0)
    69	
    70	#define MMIO_RING_D(prefix, d) \
    71		MMIO_RING_F(prefix, 4, 0, 0, 0, d, NULL, NULL)
    72	
    73	#define MMIO_RING_DFH(prefix, d, f, r, w) \
    74		MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
    75	
    76	#define MMIO_RING_GM(prefix, d, r, w) \
    77		MMIO_RING_F(prefix, 4, F_GMADR, 0xFFFF0000, 0, d, r, w)
    78	
    79	#define MMIO_RING_GM_RDR(prefix, d, r, w) \
    80		MMIO_RING_F(prefix, 4, F_GMADR | F_CMD_ACCESS, 0xFFFF0000, 0, d, r, w)
    81	
    82	#define MMIO_RING_RO(prefix, d, f, rm, r, w) \
    83		MMIO_RING_F(prefix, 4, F_RO | f, 0, rm, d, r, w)
    84	
    85	static int intel_gvt_init_generic_mmio_info(struct intel_gvt *gvt)
    86	{
  > 87		struct drm_i915_private *dev_priv = gvt->gt->i915;
    88	
    89		int ret;
    90	
  > 91		MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
  > 92			intel_vgpu_reg_imr_handler);
    93	
  > 94		MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
  > 95		MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
  > 96		MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
  > 97		MMIO_D(SDEISR, D_ALL);
    98	
  > 99		MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
   100	
   101	
 > 102		MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
 > 103			gamw_echo_dev_rw_ia_write);
   104	
 > 105		MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
 > 106		MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
 > 107		MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
   108	
 > 109	#define RING_REG(base) _MMIO((base) + 0x28)
   110		MMIO_RING_DFH(RING_REG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   111	#undef RING_REG
   112	
   113	#define RING_REG(base) _MMIO((base) + 0x134)
   114		MMIO_RING_DFH(RING_REG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   115	#undef RING_REG
   116	
   117	#define RING_REG(base) _MMIO((base) + 0x6c)
 > 118		MMIO_RING_DFH(RING_REG, D_ALL, 0, mmio_read_from_hw, NULL);
   119	#undef RING_REG
 > 120		MMIO_DH(GEN7_SC_INSTDONE, D_BDW_PLUS, mmio_read_from_hw, NULL);
   121	
   122		MMIO_GM_RDR(_MMIO(0x2148), D_ALL, NULL, NULL);
 > 123		MMIO_GM_RDR(CCID(RENDER_RING_BASE), D_ALL, NULL, NULL);
   124		MMIO_GM_RDR(_MMIO(0x12198), D_ALL, NULL, NULL);
 > 125		MMIO_D(GEN7_CXT_SIZE, D_ALL);
   126	
 > 127		MMIO_RING_DFH(RING_TAIL, D_ALL, 0, NULL, NULL);
 > 128		MMIO_RING_DFH(RING_HEAD, D_ALL, 0, NULL, NULL);
 > 129		MMIO_RING_DFH(RING_CTL, D_ALL, 0, NULL, NULL);
 > 130		MMIO_RING_DFH(RING_ACTHD, D_ALL, 0, mmio_read_from_hw, NULL);
 > 131		MMIO_RING_GM(RING_START, D_ALL, NULL, NULL);
   132	
   133		/* RING MODE */
   134	#define RING_REG(base) _MMIO((base) + 0x29c)
   135		MMIO_RING_DFH(RING_REG, D_ALL,
 > 136			F_MODE_MASK | F_CMD_ACCESS | F_CMD_WRITE_PATCH, NULL,
 > 137			ring_mode_mmio_write);
   138	#undef RING_REG
   139	
 > 140		MMIO_RING_DFH(RING_MI_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   141			NULL, NULL);
 > 142		MMIO_RING_DFH(RING_INSTPM, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   143				NULL, NULL);
 > 144		MMIO_RING_DFH(RING_TIMESTAMP, D_ALL, F_CMD_ACCESS,
   145				mmio_read_from_hw, NULL);
 > 146		MMIO_RING_DFH(RING_TIMESTAMP_UDW, D_ALL, F_CMD_ACCESS,
   147				mmio_read_from_hw, NULL);
   148	
 > 149		MMIO_DFH(GEN7_GT_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 150		MMIO_DFH(CACHE_MODE_0_GEN7, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   151			NULL, NULL);
 > 152		MMIO_DFH(CACHE_MODE_1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 153		MMIO_DFH(CACHE_MODE_0, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   154		MMIO_DFH(_MMIO(0x2124), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   155	
   156		MMIO_DFH(_MMIO(0x20dc), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 157		MMIO_DFH(_3D_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   158		MMIO_DFH(_MMIO(0x2088), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 159		MMIO_DFH(FF_SLICE_CS_CHICKEN2, D_ALL,
   160			 F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   161		MMIO_DFH(_MMIO(0x2470), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 162		MMIO_DFH(GAM_ECOCHK, D_ALL, F_CMD_ACCESS, NULL, NULL);
 > 163		MMIO_DFH(GEN7_COMMON_SLICE_CHICKEN1, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   164			NULL, NULL);
 > 165		MMIO_DFH(COMMON_SLICE_CHICKEN2, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   166			 NULL, NULL);
   167		MMIO_DFH(_MMIO(0x9030), D_ALL, F_CMD_ACCESS, NULL, NULL);
   168		MMIO_DFH(_MMIO(0x20a0), D_ALL, F_CMD_ACCESS, NULL, NULL);
   169		MMIO_DFH(_MMIO(0x2420), D_ALL, F_CMD_ACCESS, NULL, NULL);
   170		MMIO_DFH(_MMIO(0x2430), D_ALL, F_CMD_ACCESS, NULL, NULL);
   171		MMIO_DFH(_MMIO(0x2434), D_ALL, F_CMD_ACCESS, NULL, NULL);
   172		MMIO_DFH(_MMIO(0x2438), D_ALL, F_CMD_ACCESS, NULL, NULL);
   173		MMIO_DFH(_MMIO(0x243c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   174		MMIO_DFH(_MMIO(0x7018), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 175		MMIO_DFH(HALF_SLICE_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 176		MMIO_DFH(GEN7_HALF_SLICE_CHICKEN1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   177	
   178		/* display */
   179		MMIO_F(_MMIO(0x60220), 0x20, 0, 0, 0, D_ALL, NULL, NULL);
   180		MMIO_D(_MMIO(0x602a0), D_ALL);
   181	
   182		MMIO_D(_MMIO(0x65050), D_ALL);
   183		MMIO_D(_MMIO(0x650b4), D_ALL);
   184	
   185		MMIO_D(_MMIO(0xc4040), D_ALL);
 > 186		MMIO_D(DERRMR, D_ALL);
   187	
 > 188		MMIO_D(PIPEDSL(PIPE_A), D_ALL);
 > 189		MMIO_D(PIPEDSL(PIPE_B), D_ALL);
 > 190		MMIO_D(PIPEDSL(PIPE_C), D_ALL);
 > 191		MMIO_D(PIPEDSL(_PIPE_EDP), D_ALL);
   192	
 > 193		MMIO_DH(PIPECONF(PIPE_A), D_ALL, NULL, pipeconf_mmio_write);
   194		MMIO_DH(PIPECONF(PIPE_B), D_ALL, NULL, pipeconf_mmio_write);
   195		MMIO_DH(PIPECONF(PIPE_C), D_ALL, NULL, pipeconf_mmio_write);
   196		MMIO_DH(PIPECONF(_PIPE_EDP), D_ALL, NULL, pipeconf_mmio_write);
   197	
 > 198		MMIO_D(PIPESTAT(PIPE_A), D_ALL);
   199		MMIO_D(PIPESTAT(PIPE_B), D_ALL);
   200		MMIO_D(PIPESTAT(PIPE_C), D_ALL);
   201		MMIO_D(PIPESTAT(_PIPE_EDP), D_ALL);
   202	
 > 203		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_A), D_ALL);
   204		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_B), D_ALL);
   205		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_C), D_ALL);
   206		MMIO_D(PIPE_FLIPCOUNT_G4X(_PIPE_EDP), D_ALL);
   207	
 > 208		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_A), D_ALL);
   209		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_B), D_ALL);
   210		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_C), D_ALL);
   211		MMIO_D(PIPE_FRMCOUNT_G4X(_PIPE_EDP), D_ALL);
   212	
 > 213		MMIO_D(CURCNTR(PIPE_A), D_ALL);
   214		MMIO_D(CURCNTR(PIPE_B), D_ALL);
   215		MMIO_D(CURCNTR(PIPE_C), D_ALL);
   216	
 > 217		MMIO_D(CURPOS(PIPE_A), D_ALL);
   218		MMIO_D(CURPOS(PIPE_B), D_ALL);
   219		MMIO_D(CURPOS(PIPE_C), D_ALL);
   220	
 > 221		MMIO_D(CURBASE(PIPE_A), D_ALL);
   222		MMIO_D(CURBASE(PIPE_B), D_ALL);
   223		MMIO_D(CURBASE(PIPE_C), D_ALL);
   224	
 > 225		MMIO_D(CUR_FBC_CTL(PIPE_A), D_ALL);
   226		MMIO_D(CUR_FBC_CTL(PIPE_B), D_ALL);
   227		MMIO_D(CUR_FBC_CTL(PIPE_C), D_ALL);
   228	
   229		MMIO_D(_MMIO(0x700ac), D_ALL);
   230		MMIO_D(_MMIO(0x710ac), D_ALL);
   231		MMIO_D(_MMIO(0x720ac), D_ALL);
   232	
   233		MMIO_D(_MMIO(0x70090), D_ALL);
   234		MMIO_D(_MMIO(0x70094), D_ALL);
   235		MMIO_D(_MMIO(0x70098), D_ALL);
   236		MMIO_D(_MMIO(0x7009c), D_ALL);
   237	
 > 238		MMIO_D(DSPCNTR(PIPE_A), D_ALL);
 > 239		MMIO_D(DSPADDR(PIPE_A), D_ALL);
 > 240		MMIO_D(DSPSTRIDE(PIPE_A), D_ALL);
 > 241		MMIO_D(DSPPOS(PIPE_A), D_ALL);
 > 242		MMIO_D(DSPSIZE(PIPE_A), D_ALL);
 > 243		MMIO_DH(DSPSURF(PIPE_A), D_ALL, NULL, pri_surf_mmio_write);
 > 244		MMIO_D(DSPOFFSET(PIPE_A), D_ALL);
 > 245		MMIO_D(DSPSURFLIVE(PIPE_A), D_ALL);
 > 246		MMIO_DH(REG_50080(PIPE_A, PLANE_PRIMARY), D_ALL, NULL,
 > 247			reg50080_mmio_write);
   248	
   249		MMIO_D(DSPCNTR(PIPE_B), D_ALL);
   250		MMIO_D(DSPADDR(PIPE_B), D_ALL);
   251		MMIO_D(DSPSTRIDE(PIPE_B), D_ALL);
   252		MMIO_D(DSPPOS(PIPE_B), D_ALL);
   253		MMIO_D(DSPSIZE(PIPE_B), D_ALL);
   254		MMIO_DH(DSPSURF(PIPE_B), D_ALL, NULL, pri_surf_mmio_write);
   255		MMIO_D(DSPOFFSET(PIPE_B), D_ALL);
   256		MMIO_D(DSPSURFLIVE(PIPE_B), D_ALL);
   257		MMIO_DH(REG_50080(PIPE_B, PLANE_PRIMARY), D_ALL, NULL,
   258			reg50080_mmio_write);
   259	
   260		MMIO_D(DSPCNTR(PIPE_C), D_ALL);
   261		MMIO_D(DSPADDR(PIPE_C), D_ALL);
   262		MMIO_D(DSPSTRIDE(PIPE_C), D_ALL);
   263		MMIO_D(DSPPOS(PIPE_C), D_ALL);
   264		MMIO_D(DSPSIZE(PIPE_C), D_ALL);
   265		MMIO_DH(DSPSURF(PIPE_C), D_ALL, NULL, pri_surf_mmio_write);
   266		MMIO_D(DSPOFFSET(PIPE_C), D_ALL);
   267		MMIO_D(DSPSURFLIVE(PIPE_C), D_ALL);
   268		MMIO_DH(REG_50080(PIPE_C, PLANE_PRIMARY), D_ALL, NULL,
   269			reg50080_mmio_write);
   270	
 > 271		MMIO_D(SPRCTL(PIPE_A), D_ALL);
 > 272		MMIO_D(SPRLINOFF(PIPE_A), D_ALL);
 > 273		MMIO_D(SPRSTRIDE(PIPE_A), D_ALL);
 > 274		MMIO_D(SPRPOS(PIPE_A), D_ALL);
 > 275		MMIO_D(SPRSIZE(PIPE_A), D_ALL);
 > 276		MMIO_D(SPRKEYVAL(PIPE_A), D_ALL);
 > 277		MMIO_D(SPRKEYMSK(PIPE_A), D_ALL);
 > 278		MMIO_DH(SPRSURF(PIPE_A), D_ALL, NULL, spr_surf_mmio_write);
 > 279		MMIO_D(SPRKEYMAX(PIPE_A), D_ALL);
 > 280		MMIO_D(SPROFFSET(PIPE_A), D_ALL);
 > 281		MMIO_D(SPRSCALE(PIPE_A), D_ALL);
 > 282		MMIO_D(SPRSURFLIVE(PIPE_A), D_ALL);
 > 283		MMIO_DH(REG_50080(PIPE_A, PLANE_SPRITE0), D_ALL, NULL,
   284			reg50080_mmio_write);
   285	
   286		MMIO_D(SPRCTL(PIPE_B), D_ALL);
   287		MMIO_D(SPRLINOFF(PIPE_B), D_ALL);
   288		MMIO_D(SPRSTRIDE(PIPE_B), D_ALL);
   289		MMIO_D(SPRPOS(PIPE_B), D_ALL);
   290		MMIO_D(SPRSIZE(PIPE_B), D_ALL);
   291		MMIO_D(SPRKEYVAL(PIPE_B), D_ALL);
   292		MMIO_D(SPRKEYMSK(PIPE_B), D_ALL);
   293		MMIO_DH(SPRSURF(PIPE_B), D_ALL, NULL, spr_surf_mmio_write);
   294		MMIO_D(SPRKEYMAX(PIPE_B), D_ALL);
   295		MMIO_D(SPROFFSET(PIPE_B), D_ALL);
   296		MMIO_D(SPRSCALE(PIPE_B), D_ALL);
   297		MMIO_D(SPRSURFLIVE(PIPE_B), D_ALL);
   298		MMIO_DH(REG_50080(PIPE_B, PLANE_SPRITE0), D_ALL, NULL,
   299			reg50080_mmio_write);
   300	
   301		MMIO_D(SPRCTL(PIPE_C), D_ALL);
   302		MMIO_D(SPRLINOFF(PIPE_C), D_ALL);
   303		MMIO_D(SPRSTRIDE(PIPE_C), D_ALL);
   304		MMIO_D(SPRPOS(PIPE_C), D_ALL);
   305		MMIO_D(SPRSIZE(PIPE_C), D_ALL);
   306		MMIO_D(SPRKEYVAL(PIPE_C), D_ALL);
   307		MMIO_D(SPRKEYMSK(PIPE_C), D_ALL);
   308		MMIO_DH(SPRSURF(PIPE_C), D_ALL, NULL, spr_surf_mmio_write);
   309		MMIO_D(SPRKEYMAX(PIPE_C), D_ALL);
   310		MMIO_D(SPROFFSET(PIPE_C), D_ALL);
   311		MMIO_D(SPRSCALE(PIPE_C), D_ALL);
   312		MMIO_D(SPRSURFLIVE(PIPE_C), D_ALL);
   313		MMIO_DH(REG_50080(PIPE_C, PLANE_SPRITE0), D_ALL, NULL,
   314			reg50080_mmio_write);
   315	
   316		MMIO_D(HTOTAL(TRANSCODER_A), D_ALL);
   317		MMIO_D(HBLANK(TRANSCODER_A), D_ALL);
   318		MMIO_D(HSYNC(TRANSCODER_A), D_ALL);
   319		MMIO_D(VTOTAL(TRANSCODER_A), D_ALL);
   320		MMIO_D(VBLANK(TRANSCODER_A), D_ALL);
   321		MMIO_D(VSYNC(TRANSCODER_A), D_ALL);
   322		MMIO_D(BCLRPAT(TRANSCODER_A), D_ALL);
   323		MMIO_D(VSYNCSHIFT(TRANSCODER_A), D_ALL);
   324		MMIO_D(PIPESRC(TRANSCODER_A), D_ALL);
   325	
   326		MMIO_D(HTOTAL(TRANSCODER_B), D_ALL);
   327		MMIO_D(HBLANK(TRANSCODER_B), D_ALL);
   328		MMIO_D(HSYNC(TRANSCODER_B), D_ALL);
   329		MMIO_D(VTOTAL(TRANSCODER_B), D_ALL);
   330		MMIO_D(VBLANK(TRANSCODER_B), D_ALL);
   331		MMIO_D(VSYNC(TRANSCODER_B), D_ALL);
   332		MMIO_D(BCLRPAT(TRANSCODER_B), D_ALL);
   333		MMIO_D(VSYNCSHIFT(TRANSCODER_B), D_ALL);
   334		MMIO_D(PIPESRC(TRANSCODER_B), D_ALL);
   335	
   336		MMIO_D(HTOTAL(TRANSCODER_C), D_ALL);
   337		MMIO_D(HBLANK(TRANSCODER_C), D_ALL);
   338		MMIO_D(HSYNC(TRANSCODER_C), D_ALL);
   339		MMIO_D(VTOTAL(TRANSCODER_C), D_ALL);
   340		MMIO_D(VBLANK(TRANSCODER_C), D_ALL);
   341		MMIO_D(VSYNC(TRANSCODER_C), D_ALL);
   342		MMIO_D(BCLRPAT(TRANSCODER_C), D_ALL);
   343		MMIO_D(VSYNCSHIFT(TRANSCODER_C), D_ALL);
   344		MMIO_D(PIPESRC(TRANSCODER_C), D_ALL);
   345	
   346		MMIO_D(HTOTAL(TRANSCODER_EDP), D_ALL);
   347		MMIO_D(HBLANK(TRANSCODER_EDP), D_ALL);
   348		MMIO_D(HSYNC(TRANSCODER_EDP), D_ALL);
   349		MMIO_D(VTOTAL(TRANSCODER_EDP), D_ALL);
   350		MMIO_D(VBLANK(TRANSCODER_EDP), D_ALL);
   351		MMIO_D(VSYNC(TRANSCODER_EDP), D_ALL);
   352		MMIO_D(BCLRPAT(TRANSCODER_EDP), D_ALL);
   353		MMIO_D(VSYNCSHIFT(TRANSCODER_EDP), D_ALL);
   354	
   355		MMIO_D(PIPE_DATA_M1(TRANSCODER_A), D_ALL);
   356		MMIO_D(PIPE_DATA_N1(TRANSCODER_A), D_ALL);
   357		MMIO_D(PIPE_DATA_M2(TRANSCODER_A), D_ALL);
   358		MMIO_D(PIPE_DATA_N2(TRANSCODER_A), D_ALL);
   359		MMIO_D(PIPE_LINK_M1(TRANSCODER_A), D_ALL);
   360		MMIO_D(PIPE_LINK_N1(TRANSCODER_A), D_ALL);
   361		MMIO_D(PIPE_LINK_M2(TRANSCODER_A), D_ALL);
   362		MMIO_D(PIPE_LINK_N2(TRANSCODER_A), D_ALL);
   363	
   364		MMIO_D(PIPE_DATA_M1(TRANSCODER_B), D_ALL);
   365		MMIO_D(PIPE_DATA_N1(TRANSCODER_B), D_ALL);
   366		MMIO_D(PIPE_DATA_M2(TRANSCODER_B), D_ALL);
   367		MMIO_D(PIPE_DATA_N2(TRANSCODER_B), D_ALL);
   368		MMIO_D(PIPE_LINK_M1(TRANSCODER_B), D_ALL);
   369		MMIO_D(PIPE_LINK_N1(TRANSCODER_B), D_ALL);
   370		MMIO_D(PIPE_LINK_M2(TRANSCODER_B), D_ALL);
   371		MMIO_D(PIPE_LINK_N2(TRANSCODER_B), D_ALL);
   372	
   373		MMIO_D(PIPE_DATA_M1(TRANSCODER_C), D_ALL);
   374		MMIO_D(PIPE_DATA_N1(TRANSCODER_C), D_ALL);
   375		MMIO_D(PIPE_DATA_M2(TRANSCODER_C), D_ALL);
   376		MMIO_D(PIPE_DATA_N2(TRANSCODER_C), D_ALL);
   377		MMIO_D(PIPE_LINK_M1(TRANSCODER_C), D_ALL);
   378		MMIO_D(PIPE_LINK_N1(TRANSCODER_C), D_ALL);
   379		MMIO_D(PIPE_LINK_M2(TRANSCODER_C), D_ALL);
   380		MMIO_D(PIPE_LINK_N2(TRANSCODER_C), D_ALL);
   381	
   382		MMIO_D(PIPE_DATA_M1(TRANSCODER_EDP), D_ALL);
   383		MMIO_D(PIPE_DATA_N1(TRANSCODER_EDP), D_ALL);
   384		MMIO_D(PIPE_DATA_M2(TRANSCODER_EDP), D_ALL);
   385		MMIO_D(PIPE_DATA_N2(TRANSCODER_EDP), D_ALL);
   386		MMIO_D(PIPE_LINK_M1(TRANSCODER_EDP), D_ALL);
   387		MMIO_D(PIPE_LINK_N1(TRANSCODER_EDP), D_ALL);
   388		MMIO_D(PIPE_LINK_M2(TRANSCODER_EDP), D_ALL);
   389		MMIO_D(PIPE_LINK_N2(TRANSCODER_EDP), D_ALL);
   390	
   391		MMIO_D(PF_CTL(PIPE_A), D_ALL);
   392		MMIO_D(PF_WIN_SZ(PIPE_A), D_ALL);
   393		MMIO_D(PF_WIN_POS(PIPE_A), D_ALL);
   394		MMIO_D(PF_VSCALE(PIPE_A), D_ALL);
   395		MMIO_D(PF_HSCALE(PIPE_A), D_ALL);
   396	
   397		MMIO_D(PF_CTL(PIPE_B), D_ALL);
   398		MMIO_D(PF_WIN_SZ(PIPE_B), D_ALL);
   399		MMIO_D(PF_WIN_POS(PIPE_B), D_ALL);
   400		MMIO_D(PF_VSCALE(PIPE_B), D_ALL);
   401		MMIO_D(PF_HSCALE(PIPE_B), D_ALL);
   402	
   403		MMIO_D(PF_CTL(PIPE_C), D_ALL);
   404		MMIO_D(PF_WIN_SZ(PIPE_C), D_ALL);
   405		MMIO_D(PF_WIN_POS(PIPE_C), D_ALL);
   406		MMIO_D(PF_VSCALE(PIPE_C), D_ALL);
   407		MMIO_D(PF_HSCALE(PIPE_C), D_ALL);
   408	
   409		MMIO_D(WM0_PIPE_ILK(PIPE_A), D_ALL);
   410		MMIO_D(WM0_PIPE_ILK(PIPE_B), D_ALL);
   411		MMIO_D(WM0_PIPE_ILK(PIPE_C), D_ALL);
   412		MMIO_D(WM1_LP_ILK, D_ALL);
   413		MMIO_D(WM2_LP_ILK, D_ALL);
   414		MMIO_D(WM3_LP_ILK, D_ALL);
   415		MMIO_D(WM1S_LP_ILK, D_ALL);
   416		MMIO_D(WM2S_LP_IVB, D_ALL);
   417		MMIO_D(WM3S_LP_IVB, D_ALL);
   418	
   419		MMIO_D(BLC_PWM_CPU_CTL2, D_ALL);
   420		MMIO_D(BLC_PWM_CPU_CTL, D_ALL);
   421		MMIO_D(BLC_PWM_PCH_CTL1, D_ALL);
   422		MMIO_D(BLC_PWM_PCH_CTL2, D_ALL);
   423	
   424		MMIO_D(_MMIO(0x48268), D_ALL);
   425	
   426		MMIO_F(PCH_GMBUS0, 4 * 4, 0, 0, 0, D_ALL, gmbus_mmio_read,
   427			gmbus_mmio_write);
   428		MMIO_F(PCH_GPIO_BASE, 6 * 4, F_UNALIGN, 0, 0, D_ALL, NULL, NULL);
   429		MMIO_F(_MMIO(0xe4f00), 0x28, 0, 0, 0, D_ALL, NULL, NULL);
   430	
   431		MMIO_F(_MMIO(_PCH_DPB_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   432			dp_aux_ch_ctl_mmio_write);
   433		MMIO_F(_MMIO(_PCH_DPC_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   434			dp_aux_ch_ctl_mmio_write);
   435		MMIO_F(_MMIO(_PCH_DPD_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   436			dp_aux_ch_ctl_mmio_write);
   437	
   438		MMIO_DH(PCH_ADPA, D_PRE_SKL, NULL, pch_adpa_mmio_write);
   439	
   440		MMIO_DH(_MMIO(_PCH_TRANSACONF), D_ALL, NULL, transconf_mmio_write);
   441		MMIO_DH(_MMIO(_PCH_TRANSBCONF), D_ALL, NULL, transconf_mmio_write);
   442	
   443		MMIO_DH(FDI_RX_IIR(PIPE_A), D_ALL, NULL, fdi_rx_iir_mmio_write);
   444		MMIO_DH(FDI_RX_IIR(PIPE_B), D_ALL, NULL, fdi_rx_iir_mmio_write);
   445		MMIO_DH(FDI_RX_IIR(PIPE_C), D_ALL, NULL, fdi_rx_iir_mmio_write);
   446		MMIO_DH(FDI_RX_IMR(PIPE_A), D_ALL, NULL, update_fdi_rx_iir_status);
   447		MMIO_DH(FDI_RX_IMR(PIPE_B), D_ALL, NULL, update_fdi_rx_iir_status);
   448		MMIO_DH(FDI_RX_IMR(PIPE_C), D_ALL, NULL, update_fdi_rx_iir_status);
   449		MMIO_DH(FDI_RX_CTL(PIPE_A), D_ALL, NULL, update_fdi_rx_iir_status);
   450		MMIO_DH(FDI_RX_CTL(PIPE_B), D_ALL, NULL, update_fdi_rx_iir_status);
   451		MMIO_DH(FDI_RX_CTL(PIPE_C), D_ALL, NULL, update_fdi_rx_iir_status);
   452	
   453		MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_A), D_ALL);
   454		MMIO_D(_MMIO(_PCH_TRANS_HBLANK_A), D_ALL);
   455		MMIO_D(_MMIO(_PCH_TRANS_HSYNC_A), D_ALL);
   456		MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_A), D_ALL);
   457		MMIO_D(_MMIO(_PCH_TRANS_VBLANK_A), D_ALL);
   458		MMIO_D(_MMIO(_PCH_TRANS_VSYNC_A), D_ALL);
   459		MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_A), D_ALL);
   460	
   461		MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_B), D_ALL);
   462		MMIO_D(_MMIO(_PCH_TRANS_HBLANK_B), D_ALL);
   463		MMIO_D(_MMIO(_PCH_TRANS_HSYNC_B), D_ALL);
   464		MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_B), D_ALL);
   465		MMIO_D(_MMIO(_PCH_TRANS_VBLANK_B), D_ALL);
   466		MMIO_D(_MMIO(_PCH_TRANS_VSYNC_B), D_ALL);
   467		MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_B), D_ALL);
   468	
   469		MMIO_D(_MMIO(_PCH_TRANSA_DATA_M1), D_ALL);
   470		MMIO_D(_MMIO(_PCH_TRANSA_DATA_N1), D_ALL);
   471		MMIO_D(_MMIO(_PCH_TRANSA_DATA_M2), D_ALL);
   472		MMIO_D(_MMIO(_PCH_TRANSA_DATA_N2), D_ALL);
   473		MMIO_D(_MMIO(_PCH_TRANSA_LINK_M1), D_ALL);
   474		MMIO_D(_MMIO(_PCH_TRANSA_LINK_N1), D_ALL);
   475		MMIO_D(_MMIO(_PCH_TRANSA_LINK_M2), D_ALL);
   476		MMIO_D(_MMIO(_PCH_TRANSA_LINK_N2), D_ALL);
   477	
   478		MMIO_D(TRANS_DP_CTL(PIPE_A), D_ALL);
   479		MMIO_D(TRANS_DP_CTL(PIPE_B), D_ALL);
   480		MMIO_D(TRANS_DP_CTL(PIPE_C), D_ALL);
   481	
   482		MMIO_D(TVIDEO_DIP_CTL(PIPE_A), D_ALL);
   483		MMIO_D(TVIDEO_DIP_DATA(PIPE_A), D_ALL);
   484		MMIO_D(TVIDEO_DIP_GCP(PIPE_A), D_ALL);
   485	
   486		MMIO_D(TVIDEO_DIP_CTL(PIPE_B), D_ALL);
   487		MMIO_D(TVIDEO_DIP_DATA(PIPE_B), D_ALL);
   488		MMIO_D(TVIDEO_DIP_GCP(PIPE_B), D_ALL);
   489	
   490		MMIO_D(TVIDEO_DIP_CTL(PIPE_C), D_ALL);
   491		MMIO_D(TVIDEO_DIP_DATA(PIPE_C), D_ALL);
   492		MMIO_D(TVIDEO_DIP_GCP(PIPE_C), D_ALL);
   493	
   494		MMIO_D(_MMIO(_FDI_RXA_MISC), D_ALL);
   495		MMIO_D(_MMIO(_FDI_RXB_MISC), D_ALL);
   496		MMIO_D(_MMIO(_FDI_RXA_TUSIZE1), D_ALL);
   497		MMIO_D(_MMIO(_FDI_RXA_TUSIZE2), D_ALL);
   498		MMIO_D(_MMIO(_FDI_RXB_TUSIZE1), D_ALL);
   499		MMIO_D(_MMIO(_FDI_RXB_TUSIZE2), D_ALL);
   500	
   501		MMIO_DH(PCH_PP_CONTROL, D_ALL, NULL, pch_pp_control_mmio_write);
   502		MMIO_D(PCH_PP_DIVISOR, D_ALL);
   503		MMIO_D(PCH_PP_STATUS,  D_ALL);
   504		MMIO_D(PCH_LVDS, D_ALL);
   505		MMIO_D(_MMIO(_PCH_DPLL_A), D_ALL);
   506		MMIO_D(_MMIO(_PCH_DPLL_B), D_ALL);
   507		MMIO_D(_MMIO(_PCH_FPA0), D_ALL);
   508		MMIO_D(_MMIO(_PCH_FPA1), D_ALL);
   509		MMIO_D(_MMIO(_PCH_FPB0), D_ALL);
   510		MMIO_D(_MMIO(_PCH_FPB1), D_ALL);
   511		MMIO_D(PCH_DREF_CONTROL, D_ALL);
   512		MMIO_D(PCH_RAWCLK_FREQ, D_ALL);
   513		MMIO_D(PCH_DPLL_SEL, D_ALL);
   514	
   515		MMIO_D(_MMIO(0x61208), D_ALL);
   516		MMIO_D(_MMIO(0x6120c), D_ALL);
   517		MMIO_D(PCH_PP_ON_DELAYS, D_ALL);
   518		MMIO_D(PCH_PP_OFF_DELAYS, D_ALL);
   519	
   520		MMIO_DH(_MMIO(0xe651c), D_ALL, dpy_reg_mmio_read, NULL);
   521		MMIO_DH(_MMIO(0xe661c), D_ALL, dpy_reg_mmio_read, NULL);
   522		MMIO_DH(_MMIO(0xe671c), D_ALL, dpy_reg_mmio_read, NULL);
   523		MMIO_DH(_MMIO(0xe681c), D_ALL, dpy_reg_mmio_read, NULL);
   524		MMIO_DH(_MMIO(0xe6c04), D_ALL, dpy_reg_mmio_read, NULL);
   525		MMIO_DH(_MMIO(0xe6e1c), D_ALL, dpy_reg_mmio_read, NULL);
   526	
   527		MMIO_RO(PCH_PORT_HOTPLUG, D_ALL, 0,
   528			PORTA_HOTPLUG_STATUS_MASK
   529			| PORTB_HOTPLUG_STATUS_MASK
   530			| PORTC_HOTPLUG_STATUS_MASK
   531			| PORTD_HOTPLUG_STATUS_MASK,
   532			NULL, NULL);
   533	
   534		MMIO_DH(LCPLL_CTL, D_ALL, NULL, lcpll_ctl_mmio_write);
   535		MMIO_D(FUSE_STRAP, D_ALL);
   536		MMIO_D(DIGITAL_PORT_HOTPLUG_CNTRL, D_ALL);
   537	
   538		MMIO_D(DISP_ARB_CTL, D_ALL);
   539		MMIO_D(DISP_ARB_CTL2, D_ALL);
   540	
   541		MMIO_D(ILK_DISPLAY_CHICKEN1, D_ALL);
   542		MMIO_D(ILK_DISPLAY_CHICKEN2, D_ALL);
   543		MMIO_D(ILK_DSPCLK_GATE_D, D_ALL);
   544	
   545		MMIO_D(SOUTH_CHICKEN1, D_ALL);
   546		MMIO_DH(SOUTH_CHICKEN2, D_ALL, NULL, south_chicken2_mmio_write);
   547		MMIO_D(_MMIO(_TRANSA_CHICKEN1), D_ALL);
   548		MMIO_D(_MMIO(_TRANSB_CHICKEN1), D_ALL);
   549		MMIO_D(SOUTH_DSPCLK_GATE_D, D_ALL);
   550		MMIO_D(_MMIO(_TRANSA_CHICKEN2), D_ALL);
   551		MMIO_D(_MMIO(_TRANSB_CHICKEN2), D_ALL);
   552	
   553		MMIO_D(ILK_DPFC_CB_BASE, D_ALL);
   554		MMIO_D(ILK_DPFC_CONTROL, D_ALL);
   555		MMIO_D(ILK_DPFC_RECOMP_CTL, D_ALL);
   556		MMIO_D(ILK_DPFC_STATUS, D_ALL);
   557		MMIO_D(ILK_DPFC_FENCE_YOFF, D_ALL);
   558		MMIO_D(ILK_DPFC_CHICKEN, D_ALL);
   559		MMIO_D(ILK_FBC_RT_BASE, D_ALL);
   560	
   561		MMIO_D(IPS_CTL, D_ALL);
   562	
   563		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_A), D_ALL);
   564		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_A), D_ALL);
   565		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_A), D_ALL);
   566		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_A), D_ALL);
   567		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_A), D_ALL);
   568		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_A), D_ALL);
   569		MMIO_D(PIPE_CSC_MODE(PIPE_A), D_ALL);
   570		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_A), D_ALL);
   571		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_A), D_ALL);
   572		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_A), D_ALL);
   573		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_A), D_ALL);
   574		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_A), D_ALL);
   575		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_A), D_ALL);
   576	
   577		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_B), D_ALL);
   578		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_B), D_ALL);
   579		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_B), D_ALL);
   580		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_B), D_ALL);
   581		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_B), D_ALL);
   582		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_B), D_ALL);
   583		MMIO_D(PIPE_CSC_MODE(PIPE_B), D_ALL);
   584		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_B), D_ALL);
   585		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_B), D_ALL);
   586		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_B), D_ALL);
   587		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_B), D_ALL);
   588		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_B), D_ALL);
   589		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_B), D_ALL);
   590	
   591		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_C), D_ALL);
   592		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_C), D_ALL);
   593		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_C), D_ALL);
   594		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_C), D_ALL);
   595		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_C), D_ALL);
   596		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_C), D_ALL);
   597		MMIO_D(PIPE_CSC_MODE(PIPE_C), D_ALL);
   598		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_C), D_ALL);
   599		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_C), D_ALL);
   600		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_C), D_ALL);
   601		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_C), D_ALL);
   602		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_C), D_ALL);
   603		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_C), D_ALL);
   604	
   605		MMIO_D(PREC_PAL_INDEX(PIPE_A), D_ALL);
   606		MMIO_D(PREC_PAL_DATA(PIPE_A), D_ALL);
   607		MMIO_F(PREC_PAL_GC_MAX(PIPE_A, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   608	
   609		MMIO_D(PREC_PAL_INDEX(PIPE_B), D_ALL);
   610		MMIO_D(PREC_PAL_DATA(PIPE_B), D_ALL);
   611		MMIO_F(PREC_PAL_GC_MAX(PIPE_B, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   612	
   613		MMIO_D(PREC_PAL_INDEX(PIPE_C), D_ALL);
   614		MMIO_D(PREC_PAL_DATA(PIPE_C), D_ALL);
   615		MMIO_F(PREC_PAL_GC_MAX(PIPE_C, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   616	
   617		MMIO_D(_MMIO(0x60110), D_ALL);
   618		MMIO_D(_MMIO(0x61110), D_ALL);
   619		MMIO_F(_MMIO(0x70400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   620		MMIO_F(_MMIO(0x71400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   621		MMIO_F(_MMIO(0x72400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   622		MMIO_F(_MMIO(0x70440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   623		MMIO_F(_MMIO(0x71440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   624		MMIO_F(_MMIO(0x72440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   625		MMIO_F(_MMIO(0x7044c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   626		MMIO_F(_MMIO(0x7144c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   627		MMIO_F(_MMIO(0x7244c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   628	
   629		MMIO_D(WM_LINETIME(PIPE_A), D_ALL);
   630		MMIO_D(WM_LINETIME(PIPE_B), D_ALL);
   631		MMIO_D(WM_LINETIME(PIPE_C), D_ALL);
   632		MMIO_D(SPLL_CTL, D_ALL);
   633		MMIO_D(_MMIO(_WRPLL_CTL1), D_ALL);
   634		MMIO_D(_MMIO(_WRPLL_CTL2), D_ALL);
   635		MMIO_D(PORT_CLK_SEL(PORT_A), D_ALL);
   636		MMIO_D(PORT_CLK_SEL(PORT_B), D_ALL);
   637		MMIO_D(PORT_CLK_SEL(PORT_C), D_ALL);
   638		MMIO_D(PORT_CLK_SEL(PORT_D), D_ALL);
   639		MMIO_D(PORT_CLK_SEL(PORT_E), D_ALL);
   640		MMIO_D(TRANS_CLK_SEL(TRANSCODER_A), D_ALL);
   641		MMIO_D(TRANS_CLK_SEL(TRANSCODER_B), D_ALL);
   642		MMIO_D(TRANS_CLK_SEL(TRANSCODER_C), D_ALL);
   643	
   644		MMIO_D(HSW_NDE_RSTWRN_OPT, D_ALL);
   645		MMIO_D(_MMIO(0x46508), D_ALL);
   646	
   647		MMIO_D(_MMIO(0x49080), D_ALL);
   648		MMIO_D(_MMIO(0x49180), D_ALL);
   649		MMIO_D(_MMIO(0x49280), D_ALL);
   650	
   651		MMIO_F(_MMIO(0x49090), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   652		MMIO_F(_MMIO(0x49190), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   653		MMIO_F(_MMIO(0x49290), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   654	
   655		MMIO_D(GAMMA_MODE(PIPE_A), D_ALL);
   656		MMIO_D(GAMMA_MODE(PIPE_B), D_ALL);
   657		MMIO_D(GAMMA_MODE(PIPE_C), D_ALL);
   658	
   659		MMIO_D(PIPE_MULT(PIPE_A), D_ALL);
   660		MMIO_D(PIPE_MULT(PIPE_B), D_ALL);
   661		MMIO_D(PIPE_MULT(PIPE_C), D_ALL);
   662	
   663		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_A), D_ALL);
   664		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_B), D_ALL);
   665		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_C), D_ALL);
   666	
   667		MMIO_DH(SFUSE_STRAP, D_ALL, NULL, NULL);
   668		MMIO_D(SBI_ADDR, D_ALL);
   669		MMIO_DH(SBI_DATA, D_ALL, sbi_data_mmio_read, NULL);
   670		MMIO_DH(SBI_CTL_STAT, D_ALL, NULL, sbi_ctl_mmio_write);
   671		MMIO_D(PIXCLK_GATE, D_ALL);
   672	
   673		MMIO_F(_MMIO(_DPA_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_ALL, NULL,
   674			dp_aux_ch_ctl_mmio_write);
   675	
   676		MMIO_DH(DDI_BUF_CTL(PORT_A), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   677		MMIO_DH(DDI_BUF_CTL(PORT_B), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   678		MMIO_DH(DDI_BUF_CTL(PORT_C), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   679		MMIO_DH(DDI_BUF_CTL(PORT_D), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   680		MMIO_DH(DDI_BUF_CTL(PORT_E), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   681	
   682		MMIO_DH(DP_TP_CTL(PORT_A), D_ALL, NULL, dp_tp_ctl_mmio_write);
   683		MMIO_DH(DP_TP_CTL(PORT_B), D_ALL, NULL, dp_tp_ctl_mmio_write);
   684		MMIO_DH(DP_TP_CTL(PORT_C), D_ALL, NULL, dp_tp_ctl_mmio_write);
   685		MMIO_DH(DP_TP_CTL(PORT_D), D_ALL, NULL, dp_tp_ctl_mmio_write);
   686		MMIO_DH(DP_TP_CTL(PORT_E), D_ALL, NULL, dp_tp_ctl_mmio_write);
   687	
   688		MMIO_DH(DP_TP_STATUS(PORT_A), D_ALL, NULL, dp_tp_status_mmio_write);
   689		MMIO_DH(DP_TP_STATUS(PORT_B), D_ALL, NULL, dp_tp_status_mmio_write);
   690		MMIO_DH(DP_TP_STATUS(PORT_C), D_ALL, NULL, dp_tp_status_mmio_write);
   691		MMIO_DH(DP_TP_STATUS(PORT_D), D_ALL, NULL, dp_tp_status_mmio_write);
   692		MMIO_DH(DP_TP_STATUS(PORT_E), D_ALL, NULL, NULL);
   693	
   694		MMIO_F(_MMIO(_DDI_BUF_TRANS_A), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   695		MMIO_F(_MMIO(0x64e60), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   696		MMIO_F(_MMIO(0x64eC0), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   697		MMIO_F(_MMIO(0x64f20), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   698		MMIO_F(_MMIO(0x64f80), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   699	
   700		MMIO_D(HSW_AUD_CFG(PIPE_A), D_ALL);
   701		MMIO_D(HSW_AUD_PIN_ELD_CP_VLD, D_ALL);
   702		MMIO_D(HSW_AUD_MISC_CTRL(PIPE_A), D_ALL);
   703	
   704		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_A), D_ALL, NULL, NULL);
   705		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_B), D_ALL, NULL, NULL);
   706		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_C), D_ALL, NULL, NULL);
   707		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_EDP), D_ALL, NULL, NULL);
   708	
   709		MMIO_D(_MMIO(_TRANSA_MSA_MISC), D_ALL);
   710		MMIO_D(_MMIO(_TRANSB_MSA_MISC), D_ALL);
   711		MMIO_D(_MMIO(_TRANSC_MSA_MISC), D_ALL);
   712		MMIO_D(_MMIO(_TRANS_EDP_MSA_MISC), D_ALL);
   713	
   714		MMIO_DH(FORCEWAKE, D_ALL, NULL, NULL);
   715		MMIO_D(FORCEWAKE_ACK, D_ALL);
   716		MMIO_D(GEN6_GT_CORE_STATUS, D_ALL);
   717		MMIO_D(GEN6_GT_THREAD_STATUS_REG, D_ALL);
   718		MMIO_DFH(GTFIFODBG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   719		MMIO_DFH(GTFIFOCTL, D_ALL, F_CMD_ACCESS, NULL, NULL);
   720		MMIO_DH(FORCEWAKE_MT, D_PRE_SKL, NULL, mul_force_wake_write);
   721		MMIO_DH(FORCEWAKE_ACK_HSW, D_BDW, NULL, NULL);
   722		MMIO_D(ECOBUS, D_ALL);
   723		MMIO_DH(GEN6_RC_CONTROL, D_ALL, NULL, NULL);
   724		MMIO_DH(GEN6_RC_STATE, D_ALL, NULL, NULL);
   725		MMIO_D(GEN6_RPNSWREQ, D_ALL);
   726		MMIO_D(GEN6_RC_VIDEO_FREQ, D_ALL);
   727		MMIO_D(GEN6_RP_DOWN_TIMEOUT, D_ALL);
   728		MMIO_D(GEN6_RP_INTERRUPT_LIMITS, D_ALL);
   729		MMIO_D(GEN6_RPSTAT1, D_ALL);
   730		MMIO_D(GEN6_RP_CONTROL, D_ALL);
   731		MMIO_D(GEN6_RP_UP_THRESHOLD, D_ALL);
   732		MMIO_D(GEN6_RP_DOWN_THRESHOLD, D_ALL);
   733		MMIO_D(GEN6_RP_CUR_UP_EI, D_ALL);
   734		MMIO_D(GEN6_RP_CUR_UP, D_ALL);
   735		MMIO_D(GEN6_RP_PREV_UP, D_ALL);
   736		MMIO_D(GEN6_RP_CUR_DOWN_EI, D_ALL);
   737		MMIO_D(GEN6_RP_CUR_DOWN, D_ALL);
   738		MMIO_D(GEN6_RP_PREV_DOWN, D_ALL);
   739		MMIO_D(GEN6_RP_UP_EI, D_ALL);
   740		MMIO_D(GEN6_RP_DOWN_EI, D_ALL);
   741		MMIO_D(GEN6_RP_IDLE_HYSTERSIS, D_ALL);
   742		MMIO_D(GEN6_RC1_WAKE_RATE_LIMIT, D_ALL);
   743		MMIO_D(GEN6_RC6_WAKE_RATE_LIMIT, D_ALL);
   744		MMIO_D(GEN6_RC6pp_WAKE_RATE_LIMIT, D_ALL);
   745		MMIO_D(GEN6_RC_EVALUATION_INTERVAL, D_ALL);
   746		MMIO_D(GEN6_RC_IDLE_HYSTERSIS, D_ALL);
   747		MMIO_D(GEN6_RC_SLEEP, D_ALL);
   748		MMIO_D(GEN6_RC1e_THRESHOLD, D_ALL);
   749		MMIO_D(GEN6_RC6_THRESHOLD, D_ALL);
   750		MMIO_D(GEN6_RC6p_THRESHOLD, D_ALL);
   751		MMIO_D(GEN6_RC6pp_THRESHOLD, D_ALL);
   752		MMIO_D(GEN6_PMINTRMSK, D_ALL);
   753		MMIO_DH(HSW_PWR_WELL_CTL1, D_BDW, NULL, power_well_ctl_mmio_write);
   754		MMIO_DH(HSW_PWR_WELL_CTL2, D_BDW, NULL, power_well_ctl_mmio_write);
   755		MMIO_DH(HSW_PWR_WELL_CTL3, D_BDW, NULL, power_well_ctl_mmio_write);
   756		MMIO_DH(HSW_PWR_WELL_CTL4, D_BDW, NULL, power_well_ctl_mmio_write);
   757		MMIO_DH(HSW_PWR_WELL_CTL5, D_BDW, NULL, power_well_ctl_mmio_write);
   758		MMIO_DH(HSW_PWR_WELL_CTL6, D_BDW, NULL, power_well_ctl_mmio_write);
   759	
   760		MMIO_D(RSTDBYCTL, D_ALL);
   761	
   762		MMIO_DH(GEN6_GDRST, D_ALL, NULL, gdrst_mmio_write);
   763		MMIO_F(FENCE_REG_GEN6_LO(0), 0x80, 0, 0, 0, D_ALL, fence_mmio_read, fence_mmio_write);
   764		MMIO_DH(CPU_VGACNTRL, D_ALL, NULL, vga_control_mmio_write);
   765	
   766		MMIO_D(TILECTL, D_ALL);
   767	
   768		MMIO_D(GEN6_UCGCTL1, D_ALL);
   769		MMIO_D(GEN6_UCGCTL2, D_ALL);
   770	
   771		MMIO_F(_MMIO(0x4f000), 0x90, 0, 0, 0, D_ALL, NULL, NULL);
   772	
   773		MMIO_D(GEN6_PCODE_DATA, D_ALL);
   774		MMIO_D(_MMIO(0x13812c), D_ALL);
   775		MMIO_DH(GEN7_ERR_INT, D_ALL, NULL, NULL);
   776		MMIO_D(HSW_EDRAM_CAP, D_ALL);
   777		MMIO_D(HSW_IDICR, D_ALL);
   778		MMIO_DH(GFX_FLSH_CNTL_GEN6, D_ALL, NULL, NULL);
   779	
   780		MMIO_D(_MMIO(0x3c), D_ALL);
   781		MMIO_D(_MMIO(0x860), D_ALL);
   782		MMIO_D(ECOSKPD, D_ALL);
   783		MMIO_D(_MMIO(0x121d0), D_ALL);
   784		MMIO_D(GEN6_BLITTER_ECOSKPD, D_ALL);
   785		MMIO_D(_MMIO(0x41d0), D_ALL);
   786		MMIO_D(GAC_ECO_BITS, D_ALL);
   787		MMIO_D(_MMIO(0x6200), D_ALL);
   788		MMIO_D(_MMIO(0x6204), D_ALL);
   789		MMIO_D(_MMIO(0x6208), D_ALL);
   790		MMIO_D(_MMIO(0x7118), D_ALL);
   791		MMIO_D(_MMIO(0x7180), D_ALL);
   792		MMIO_D(_MMIO(0x7408), D_ALL);
   793		MMIO_D(_MMIO(0x7c00), D_ALL);
   794		MMIO_DH(GEN6_MBCTL, D_ALL, NULL, mbctl_write);
   795		MMIO_D(_MMIO(0x911c), D_ALL);
   796		MMIO_D(_MMIO(0x9120), D_ALL);
   797		MMIO_DFH(GEN7_UCGCTL4, D_ALL, F_CMD_ACCESS, NULL, NULL);
   798	
   799		MMIO_D(GAB_CTL, D_ALL);
   800		MMIO_D(_MMIO(0x48800), D_ALL);
   801		MMIO_D(_MMIO(0xce044), D_ALL);
   802		MMIO_D(_MMIO(0xe6500), D_ALL);
   803		MMIO_D(_MMIO(0xe6504), D_ALL);
   804		MMIO_D(_MMIO(0xe6600), D_ALL);
   805		MMIO_D(_MMIO(0xe6604), D_ALL);
   806		MMIO_D(_MMIO(0xe6700), D_ALL);
   807		MMIO_D(_MMIO(0xe6704), D_ALL);
   808		MMIO_D(_MMIO(0xe6800), D_ALL);
   809		MMIO_D(_MMIO(0xe6804), D_ALL);
   810		MMIO_D(PCH_GMBUS4, D_ALL);
   811		MMIO_D(PCH_GMBUS5, D_ALL);
   812	
   813		MMIO_D(_MMIO(0x902c), D_ALL);
   814		MMIO_D(_MMIO(0xec008), D_ALL);
   815		MMIO_D(_MMIO(0xec00c), D_ALL);
   816		MMIO_D(_MMIO(0xec008 + 0x18), D_ALL);
   817		MMIO_D(_MMIO(0xec00c + 0x18), D_ALL);
   818		MMIO_D(_MMIO(0xec008 + 0x18 * 2), D_ALL);
   819		MMIO_D(_MMIO(0xec00c + 0x18 * 2), D_ALL);
   820		MMIO_D(_MMIO(0xec008 + 0x18 * 3), D_ALL);
   821		MMIO_D(_MMIO(0xec00c + 0x18 * 3), D_ALL);
   822		MMIO_D(_MMIO(0xec408), D_ALL);
   823		MMIO_D(_MMIO(0xec40c), D_ALL);
   824		MMIO_D(_MMIO(0xec408 + 0x18), D_ALL);
   825		MMIO_D(_MMIO(0xec40c + 0x18), D_ALL);
   826		MMIO_D(_MMIO(0xec408 + 0x18 * 2), D_ALL);
   827		MMIO_D(_MMIO(0xec40c + 0x18 * 2), D_ALL);
   828		MMIO_D(_MMIO(0xec408 + 0x18 * 3), D_ALL);
   829		MMIO_D(_MMIO(0xec40c + 0x18 * 3), D_ALL);
   830		MMIO_D(_MMIO(0xfc810), D_ALL);
   831		MMIO_D(_MMIO(0xfc81c), D_ALL);
   832		MMIO_D(_MMIO(0xfc828), D_ALL);
   833		MMIO_D(_MMIO(0xfc834), D_ALL);
   834		MMIO_D(_MMIO(0xfcc00), D_ALL);
   835		MMIO_D(_MMIO(0xfcc0c), D_ALL);
   836		MMIO_D(_MMIO(0xfcc18), D_ALL);
   837		MMIO_D(_MMIO(0xfcc24), D_ALL);
   838		MMIO_D(_MMIO(0xfd000), D_ALL);
   839		MMIO_D(_MMIO(0xfd00c), D_ALL);
   840		MMIO_D(_MMIO(0xfd018), D_ALL);
   841		MMIO_D(_MMIO(0xfd024), D_ALL);
   842		MMIO_D(_MMIO(0xfd034), D_ALL);
   843	
   844		MMIO_DH(FPGA_DBG, D_ALL, NULL, fpga_dbg_mmio_write);
   845		MMIO_D(_MMIO(0x2054), D_ALL);
   846		MMIO_D(_MMIO(0x12054), D_ALL);
   847		MMIO_D(_MMIO(0x22054), D_ALL);
   848		MMIO_D(_MMIO(0x1a054), D_ALL);
   849	
   850		MMIO_D(_MMIO(0x44070), D_ALL);
   851		MMIO_DFH(_MMIO(0x215c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   852		MMIO_DFH(_MMIO(0x2178), D_ALL, F_CMD_ACCESS, NULL, NULL);
   853		MMIO_DFH(_MMIO(0x217c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   854		MMIO_DFH(_MMIO(0x12178), D_ALL, F_CMD_ACCESS, NULL, NULL);
   855		MMIO_DFH(_MMIO(0x1217c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   856	
   857		MMIO_F(_MMIO(0x2290), 8, F_CMD_ACCESS, 0, 0, D_BDW_PLUS, NULL, NULL);
   858		MMIO_D(_MMIO(0x2b00), D_BDW_PLUS);
   859		MMIO_D(_MMIO(0x2360), D_BDW_PLUS);
   860		MMIO_F(_MMIO(0x5200), 32, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   861		MMIO_F(_MMIO(0x5240), 32, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   862		MMIO_F(_MMIO(0x5280), 16, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   863	
   864		MMIO_DFH(_MMIO(0x1c17c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   865		MMIO_DFH(_MMIO(0x1c178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   866		MMIO_DFH(BCS_SWCTRL, D_ALL, F_CMD_ACCESS, NULL, NULL);
   867	
   868		MMIO_F(HS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   869		MMIO_F(DS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   870		MMIO_F(IA_VERTICES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   871		MMIO_F(IA_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   872		MMIO_F(VS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   873		MMIO_F(GS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   874		MMIO_F(GS_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   875		MMIO_F(CL_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   876		MMIO_F(CL_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   877		MMIO_F(PS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   878		MMIO_F(PS_DEPTH_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   879		MMIO_DH(_MMIO(0x4260), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   880		MMIO_DH(_MMIO(0x4264), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   881		MMIO_DH(_MMIO(0x4268), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   882		MMIO_DH(_MMIO(0x426c), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   883		MMIO_DH(_MMIO(0x4270), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   884		MMIO_DFH(_MMIO(0x4094), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   885	
   886		MMIO_DFH(ARB_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   887		MMIO_RING_GM(RING_BBADDR, D_ALL, NULL, NULL);
   888		MMIO_DFH(_MMIO(0x2220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   889		MMIO_DFH(_MMIO(0x12220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   890		MMIO_DFH(_MMIO(0x22220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   891		MMIO_RING_DFH(RING_SYNC_1, D_ALL, F_CMD_ACCESS, NULL, NULL);
   892		MMIO_RING_DFH(RING_SYNC_0, D_ALL, F_CMD_ACCESS, NULL, NULL);
   893		MMIO_DFH(_MMIO(0x22178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   894		MMIO_DFH(_MMIO(0x1a178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   895		MMIO_DFH(_MMIO(0x1a17c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   896		MMIO_DFH(_MMIO(0x2217c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   897	
   898		MMIO_DH(EDP_PSR_IMR, D_BDW_PLUS, NULL, edp_psr_imr_iir_write);
   899		MMIO_DH(EDP_PSR_IIR, D_BDW_PLUS, NULL, edp_psr_imr_iir_write);
   900		MMIO_DH(GUC_STATUS, D_ALL, guc_status_read, NULL);
   901	
   902		return 0;
   903	}
   904	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 66042 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Zhi Wang <zhi.wang.linux@gmail.com>,
	jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com,
	rodrigo.vivi@intel.com, zhenyuw@linux.intel.com,
	zhi.a.wang@intel.com, jgg@nvidia.com,
	intel-gfx@lists.freedesktop.org,
	intel-gvt-dev@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Cc: kbuild-all@lists.01.org
Subject: Re: [PATCH 1/3] i915/gvt: seperate tracked MMIO table from handlers.c
Date: Fri, 12 Nov 2021 07:32:37 +0800	[thread overview]
Message-ID: <202111120709.0HZyzp3c-lkp@intel.com> (raw)
In-Reply-To: <20211108212718.10576-1-zhi.a.wang@intel.com>

[-- Attachment #1: Type: text/plain, Size: 60730 bytes --]

Hi Zhi,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v5.15 next-20211111]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Zhi-Wang/i915-gvt-seperate-tracked-MMIO-table-from-handlers-c/20211109-052907
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/8d4393b277b5196206271d5191d25fe61b1b34f1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Zhi-Wang/i915-gvt-seperate-tracked-MMIO-table-from-handlers-c/20211109-052907
        git checkout 8d4393b277b5196206271d5191d25fe61b1b34f1
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from <command-line>:
   drivers/gpu/drm/i915/gvt/mmio_table.h:85:52: error: 'struct intel_gvt' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
      85 | static int intel_gvt_init_generic_mmio_info(struct intel_gvt *gvt)
         |                                                    ^~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h: In function 'intel_gvt_init_generic_mmio_info':
>> drivers/gpu/drm/i915/gvt/mmio_table.h:87:41: error: dereferencing pointer to incomplete type 'struct intel_gvt'
      87 |  struct drm_i915_private *dev_priv = gvt->gt->i915;
         |                                         ^~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:36:8: error: implicit declaration of function 'new_mmio_info' [-Werror=implicit-function-declaration]
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |        ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:2: note: in expansion of macro 'MMIO_F'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:36:27: error: implicit declaration of function 'i915_mmio_reg_offset' [-Werror=implicit-function-declaration]
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                           ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:2: note: in expansion of macro 'MMIO_F'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:16: error: implicit declaration of function 'RING_IMR' [-Werror=implicit-function-declaration]
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                ^~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:62:16: error: 'RENDER_RING_BASE' undeclared (first use in this function)
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:16: note: each undeclared identifier is reported only once for each function it appears in
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:26: error: 'D_ALL' undeclared (first use in this function)
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                          ^~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:17: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                 ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:36: error: 'NULL' undeclared (first use in this function)
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                                    ^~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:20: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                    ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:1:1: note: 'NULL' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
     +++ |+#include <stddef.h>
       1 | /*
>> drivers/gpu/drm/i915/gvt/mmio_table.h:92:3: error: 'intel_vgpu_reg_imr_handler' undeclared (first use in this function)
      92 |   intel_vgpu_reg_imr_handler);
         |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:63:16: error: 'BLT_RING_BASE' undeclared (first use in this function)
      63 |  MMIO_F(prefix(BLT_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:64:16: error: 'GEN6_BSD_RING_BASE' undeclared (first use in this function)
      64 |  MMIO_F(prefix(GEN6_BSD_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:65:16: error: 'VEBOX_RING_BASE' undeclared (first use in this function)
      65 |  MMIO_F(prefix(VEBOX_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:66:6: error: implicit declaration of function 'HAS_ENGINE' [-Werror=implicit-function-declaration]
      66 |  if (HAS_ENGINE(gvt->gt, VCS1)) \
         |      ^~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:66:26: error: 'VCS1' undeclared (first use in this function)
      66 |  if (HAS_ENGINE(gvt->gt, VCS1)) \
         |                          ^~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:67:17: error: 'GEN8_BSD2_RING_BASE' undeclared (first use in this function)
      67 |   MMIO_F(prefix(GEN8_BSD2_RING_BASE), s, f, am, rm, d, r, w); \
         |                 ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:94:11: error: 'SDEIMR' undeclared (first use in this function)
      94 |  MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:94:2: note: in expansion of macro 'MMIO_DFH'
      94 |  MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:95:11: error: 'SDEIER' undeclared (first use in this function)
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:95:2: note: in expansion of macro 'MMIO_DFH'
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:95:35: error: 'intel_vgpu_reg_ier_handler' undeclared (first use in this function)
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:95:2: note: in expansion of macro 'MMIO_DFH'
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:96:11: error: 'SDEIIR' undeclared (first use in this function)
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:96:2: note: in expansion of macro 'MMIO_DFH'
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:96:35: error: 'intel_vgpu_reg_iir_handler' undeclared (first use in this function)
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:96:2: note: in expansion of macro 'MMIO_DFH'
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:97:9: error: 'SDEISR' undeclared (first use in this function)
      97 |  MMIO_D(SDEISR, D_ALL);
         |         ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:97:2: note: in expansion of macro 'MMIO_D'
      97 |  MMIO_D(SDEISR, D_ALL);
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:99:16: error: implicit declaration of function 'RING_HWSTAM' [-Werror=implicit-function-declaration]
      99 |  MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
         |                ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:99:2: note: in expansion of macro 'MMIO_RING_DFH'
      99 |  MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:10: error: 'GEN8_GAMW_ECO_DEV_RW_IA' undeclared (first use in this function)
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |          ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:35: error: 'D_BDW_PLUS' undeclared (first use in this function)
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |                                   ^~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:17: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                 ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:103:3: error: 'gamw_echo_dev_rw_ia_write' undeclared (first use in this function)
     103 |   gamw_echo_dev_rw_ia_write);
         |   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:14: error: 'BSD_HWS_PGA_GEN7' undeclared (first use in this function)
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:56:17: error: 'F_GMADR' undeclared (first use in this function)
      56 |  MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
         |                 ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:3: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |   ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:56:27: error: 'F_CMD_ACCESS' undeclared (first use in this function)
      56 |  MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
         |                           ^~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:3: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |   ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:106:14: error: 'BLT_HWS_PGA_GEN7' undeclared (first use in this function)
     106 |  MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:106:2: note: in expansion of macro 'MMIO_GM_RDR'
     106 |  MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:107:14: error: 'VEBOX_HWS_PGA_GEN7' undeclared (first use in this function)
     107 |  MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:107:2: note: in expansion of macro 'MMIO_GM_RDR'
     107 |  MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:109:24: error: implicit declaration of function '_MMIO' [-Werror=implicit-function-declaration]
     109 | #define RING_REG(base) _MMIO((base) + 0x28)
         |                        ^~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:9: note: in expansion of macro 'RING_REG'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \


vim +87 drivers/gpu/drm/i915/gvt/mmio_table.h

    27	
    28	#ifdef GENERATE_MMIO_TABLE_IN_I915
    29	#define MMIO_F(reg, s, f, am, rm, d, r, w) do { \
    30		ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg)); \
    31		if (ret) \
    32			return ret; \
    33	} while (0)
    34	#else
    35	#define MMIO_F(reg, s, f, am, rm, d, r, w) do { \
  > 36		ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
    37			f, s, am, rm, d, r, w); \
    38		if (ret) \
    39			return ret; \
    40	} while (0)
    41	#endif
    42	
    43	#define MMIO_D(reg, d) \
    44		MMIO_F(reg, 4, 0, 0, 0, d, NULL, NULL)
    45	
    46	#define MMIO_DH(reg, d, r, w) \
    47		MMIO_F(reg, 4, 0, 0, 0, d, r, w)
    48	
    49	#define MMIO_DFH(reg, d, f, r, w) \
    50		MMIO_F(reg, 4, f, 0, 0, d, r, w)
    51	
    52	#define MMIO_GM(reg, d, r, w) \
    53		MMIO_F(reg, 4, F_GMADR, 0xFFFFF000, 0, d, r, w)
    54	
    55	#define MMIO_GM_RDR(reg, d, r, w) \
  > 56		MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
    57	
    58	#define MMIO_RO(reg, d, f, rm, r, w) \
  > 59		MMIO_F(reg, 4, F_RO | f, 0, rm, d, r, w)
    60	
    61	#define MMIO_RING_F(prefix, s, f, am, rm, d, r, w) do { \
  > 62		MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
  > 63		MMIO_F(prefix(BLT_RING_BASE), s, f, am, rm, d, r, w); \
  > 64		MMIO_F(prefix(GEN6_BSD_RING_BASE), s, f, am, rm, d, r, w); \
  > 65		MMIO_F(prefix(VEBOX_RING_BASE), s, f, am, rm, d, r, w); \
  > 66		if (HAS_ENGINE(gvt->gt, VCS1)) \
  > 67			MMIO_F(prefix(GEN8_BSD2_RING_BASE), s, f, am, rm, d, r, w); \
    68	} while (0)
    69	
    70	#define MMIO_RING_D(prefix, d) \
    71		MMIO_RING_F(prefix, 4, 0, 0, 0, d, NULL, NULL)
    72	
    73	#define MMIO_RING_DFH(prefix, d, f, r, w) \
    74		MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
    75	
    76	#define MMIO_RING_GM(prefix, d, r, w) \
    77		MMIO_RING_F(prefix, 4, F_GMADR, 0xFFFF0000, 0, d, r, w)
    78	
    79	#define MMIO_RING_GM_RDR(prefix, d, r, w) \
    80		MMIO_RING_F(prefix, 4, F_GMADR | F_CMD_ACCESS, 0xFFFF0000, 0, d, r, w)
    81	
    82	#define MMIO_RING_RO(prefix, d, f, rm, r, w) \
    83		MMIO_RING_F(prefix, 4, F_RO | f, 0, rm, d, r, w)
    84	
    85	static int intel_gvt_init_generic_mmio_info(struct intel_gvt *gvt)
    86	{
  > 87		struct drm_i915_private *dev_priv = gvt->gt->i915;
    88	
    89		int ret;
    90	
  > 91		MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
  > 92			intel_vgpu_reg_imr_handler);
    93	
  > 94		MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
  > 95		MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
  > 96		MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
  > 97		MMIO_D(SDEISR, D_ALL);
    98	
  > 99		MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
   100	
   101	
 > 102		MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
 > 103			gamw_echo_dev_rw_ia_write);
   104	
 > 105		MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
 > 106		MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
 > 107		MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
   108	
 > 109	#define RING_REG(base) _MMIO((base) + 0x28)
   110		MMIO_RING_DFH(RING_REG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   111	#undef RING_REG
   112	
   113	#define RING_REG(base) _MMIO((base) + 0x134)
   114		MMIO_RING_DFH(RING_REG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   115	#undef RING_REG
   116	
   117	#define RING_REG(base) _MMIO((base) + 0x6c)
 > 118		MMIO_RING_DFH(RING_REG, D_ALL, 0, mmio_read_from_hw, NULL);
   119	#undef RING_REG
 > 120		MMIO_DH(GEN7_SC_INSTDONE, D_BDW_PLUS, mmio_read_from_hw, NULL);
   121	
   122		MMIO_GM_RDR(_MMIO(0x2148), D_ALL, NULL, NULL);
 > 123		MMIO_GM_RDR(CCID(RENDER_RING_BASE), D_ALL, NULL, NULL);
   124		MMIO_GM_RDR(_MMIO(0x12198), D_ALL, NULL, NULL);
 > 125		MMIO_D(GEN7_CXT_SIZE, D_ALL);
   126	
 > 127		MMIO_RING_DFH(RING_TAIL, D_ALL, 0, NULL, NULL);
 > 128		MMIO_RING_DFH(RING_HEAD, D_ALL, 0, NULL, NULL);
 > 129		MMIO_RING_DFH(RING_CTL, D_ALL, 0, NULL, NULL);
 > 130		MMIO_RING_DFH(RING_ACTHD, D_ALL, 0, mmio_read_from_hw, NULL);
 > 131		MMIO_RING_GM(RING_START, D_ALL, NULL, NULL);
   132	
   133		/* RING MODE */
   134	#define RING_REG(base) _MMIO((base) + 0x29c)
   135		MMIO_RING_DFH(RING_REG, D_ALL,
 > 136			F_MODE_MASK | F_CMD_ACCESS | F_CMD_WRITE_PATCH, NULL,
 > 137			ring_mode_mmio_write);
   138	#undef RING_REG
   139	
 > 140		MMIO_RING_DFH(RING_MI_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   141			NULL, NULL);
 > 142		MMIO_RING_DFH(RING_INSTPM, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   143				NULL, NULL);
 > 144		MMIO_RING_DFH(RING_TIMESTAMP, D_ALL, F_CMD_ACCESS,
   145				mmio_read_from_hw, NULL);
 > 146		MMIO_RING_DFH(RING_TIMESTAMP_UDW, D_ALL, F_CMD_ACCESS,
   147				mmio_read_from_hw, NULL);
   148	
 > 149		MMIO_DFH(GEN7_GT_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 150		MMIO_DFH(CACHE_MODE_0_GEN7, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   151			NULL, NULL);
 > 152		MMIO_DFH(CACHE_MODE_1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 153		MMIO_DFH(CACHE_MODE_0, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   154		MMIO_DFH(_MMIO(0x2124), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   155	
   156		MMIO_DFH(_MMIO(0x20dc), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 157		MMIO_DFH(_3D_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   158		MMIO_DFH(_MMIO(0x2088), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 159		MMIO_DFH(FF_SLICE_CS_CHICKEN2, D_ALL,
   160			 F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   161		MMIO_DFH(_MMIO(0x2470), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 162		MMIO_DFH(GAM_ECOCHK, D_ALL, F_CMD_ACCESS, NULL, NULL);
 > 163		MMIO_DFH(GEN7_COMMON_SLICE_CHICKEN1, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   164			NULL, NULL);
 > 165		MMIO_DFH(COMMON_SLICE_CHICKEN2, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   166			 NULL, NULL);
   167		MMIO_DFH(_MMIO(0x9030), D_ALL, F_CMD_ACCESS, NULL, NULL);
   168		MMIO_DFH(_MMIO(0x20a0), D_ALL, F_CMD_ACCESS, NULL, NULL);
   169		MMIO_DFH(_MMIO(0x2420), D_ALL, F_CMD_ACCESS, NULL, NULL);
   170		MMIO_DFH(_MMIO(0x2430), D_ALL, F_CMD_ACCESS, NULL, NULL);
   171		MMIO_DFH(_MMIO(0x2434), D_ALL, F_CMD_ACCESS, NULL, NULL);
   172		MMIO_DFH(_MMIO(0x2438), D_ALL, F_CMD_ACCESS, NULL, NULL);
   173		MMIO_DFH(_MMIO(0x243c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   174		MMIO_DFH(_MMIO(0x7018), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 175		MMIO_DFH(HALF_SLICE_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 176		MMIO_DFH(GEN7_HALF_SLICE_CHICKEN1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   177	
   178		/* display */
   179		MMIO_F(_MMIO(0x60220), 0x20, 0, 0, 0, D_ALL, NULL, NULL);
   180		MMIO_D(_MMIO(0x602a0), D_ALL);
   181	
   182		MMIO_D(_MMIO(0x65050), D_ALL);
   183		MMIO_D(_MMIO(0x650b4), D_ALL);
   184	
   185		MMIO_D(_MMIO(0xc4040), D_ALL);
 > 186		MMIO_D(DERRMR, D_ALL);
   187	
 > 188		MMIO_D(PIPEDSL(PIPE_A), D_ALL);
 > 189		MMIO_D(PIPEDSL(PIPE_B), D_ALL);
 > 190		MMIO_D(PIPEDSL(PIPE_C), D_ALL);
 > 191		MMIO_D(PIPEDSL(_PIPE_EDP), D_ALL);
   192	
 > 193		MMIO_DH(PIPECONF(PIPE_A), D_ALL, NULL, pipeconf_mmio_write);
   194		MMIO_DH(PIPECONF(PIPE_B), D_ALL, NULL, pipeconf_mmio_write);
   195		MMIO_DH(PIPECONF(PIPE_C), D_ALL, NULL, pipeconf_mmio_write);
   196		MMIO_DH(PIPECONF(_PIPE_EDP), D_ALL, NULL, pipeconf_mmio_write);
   197	
 > 198		MMIO_D(PIPESTAT(PIPE_A), D_ALL);
   199		MMIO_D(PIPESTAT(PIPE_B), D_ALL);
   200		MMIO_D(PIPESTAT(PIPE_C), D_ALL);
   201		MMIO_D(PIPESTAT(_PIPE_EDP), D_ALL);
   202	
 > 203		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_A), D_ALL);
   204		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_B), D_ALL);
   205		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_C), D_ALL);
   206		MMIO_D(PIPE_FLIPCOUNT_G4X(_PIPE_EDP), D_ALL);
   207	
 > 208		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_A), D_ALL);
   209		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_B), D_ALL);
   210		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_C), D_ALL);
   211		MMIO_D(PIPE_FRMCOUNT_G4X(_PIPE_EDP), D_ALL);
   212	
 > 213		MMIO_D(CURCNTR(PIPE_A), D_ALL);
   214		MMIO_D(CURCNTR(PIPE_B), D_ALL);
   215		MMIO_D(CURCNTR(PIPE_C), D_ALL);
   216	
 > 217		MMIO_D(CURPOS(PIPE_A), D_ALL);
   218		MMIO_D(CURPOS(PIPE_B), D_ALL);
   219		MMIO_D(CURPOS(PIPE_C), D_ALL);
   220	
 > 221		MMIO_D(CURBASE(PIPE_A), D_ALL);
   222		MMIO_D(CURBASE(PIPE_B), D_ALL);
   223		MMIO_D(CURBASE(PIPE_C), D_ALL);
   224	
 > 225		MMIO_D(CUR_FBC_CTL(PIPE_A), D_ALL);
   226		MMIO_D(CUR_FBC_CTL(PIPE_B), D_ALL);
   227		MMIO_D(CUR_FBC_CTL(PIPE_C), D_ALL);
   228	
   229		MMIO_D(_MMIO(0x700ac), D_ALL);
   230		MMIO_D(_MMIO(0x710ac), D_ALL);
   231		MMIO_D(_MMIO(0x720ac), D_ALL);
   232	
   233		MMIO_D(_MMIO(0x70090), D_ALL);
   234		MMIO_D(_MMIO(0x70094), D_ALL);
   235		MMIO_D(_MMIO(0x70098), D_ALL);
   236		MMIO_D(_MMIO(0x7009c), D_ALL);
   237	
 > 238		MMIO_D(DSPCNTR(PIPE_A), D_ALL);
 > 239		MMIO_D(DSPADDR(PIPE_A), D_ALL);
 > 240		MMIO_D(DSPSTRIDE(PIPE_A), D_ALL);
 > 241		MMIO_D(DSPPOS(PIPE_A), D_ALL);
 > 242		MMIO_D(DSPSIZE(PIPE_A), D_ALL);
 > 243		MMIO_DH(DSPSURF(PIPE_A), D_ALL, NULL, pri_surf_mmio_write);
 > 244		MMIO_D(DSPOFFSET(PIPE_A), D_ALL);
 > 245		MMIO_D(DSPSURFLIVE(PIPE_A), D_ALL);
 > 246		MMIO_DH(REG_50080(PIPE_A, PLANE_PRIMARY), D_ALL, NULL,
 > 247			reg50080_mmio_write);
   248	
   249		MMIO_D(DSPCNTR(PIPE_B), D_ALL);
   250		MMIO_D(DSPADDR(PIPE_B), D_ALL);
   251		MMIO_D(DSPSTRIDE(PIPE_B), D_ALL);
   252		MMIO_D(DSPPOS(PIPE_B), D_ALL);
   253		MMIO_D(DSPSIZE(PIPE_B), D_ALL);
   254		MMIO_DH(DSPSURF(PIPE_B), D_ALL, NULL, pri_surf_mmio_write);
   255		MMIO_D(DSPOFFSET(PIPE_B), D_ALL);
   256		MMIO_D(DSPSURFLIVE(PIPE_B), D_ALL);
   257		MMIO_DH(REG_50080(PIPE_B, PLANE_PRIMARY), D_ALL, NULL,
   258			reg50080_mmio_write);
   259	
   260		MMIO_D(DSPCNTR(PIPE_C), D_ALL);
   261		MMIO_D(DSPADDR(PIPE_C), D_ALL);
   262		MMIO_D(DSPSTRIDE(PIPE_C), D_ALL);
   263		MMIO_D(DSPPOS(PIPE_C), D_ALL);
   264		MMIO_D(DSPSIZE(PIPE_C), D_ALL);
   265		MMIO_DH(DSPSURF(PIPE_C), D_ALL, NULL, pri_surf_mmio_write);
   266		MMIO_D(DSPOFFSET(PIPE_C), D_ALL);
   267		MMIO_D(DSPSURFLIVE(PIPE_C), D_ALL);
   268		MMIO_DH(REG_50080(PIPE_C, PLANE_PRIMARY), D_ALL, NULL,
   269			reg50080_mmio_write);
   270	
 > 271		MMIO_D(SPRCTL(PIPE_A), D_ALL);
 > 272		MMIO_D(SPRLINOFF(PIPE_A), D_ALL);
 > 273		MMIO_D(SPRSTRIDE(PIPE_A), D_ALL);
 > 274		MMIO_D(SPRPOS(PIPE_A), D_ALL);
 > 275		MMIO_D(SPRSIZE(PIPE_A), D_ALL);
 > 276		MMIO_D(SPRKEYVAL(PIPE_A), D_ALL);
 > 277		MMIO_D(SPRKEYMSK(PIPE_A), D_ALL);
 > 278		MMIO_DH(SPRSURF(PIPE_A), D_ALL, NULL, spr_surf_mmio_write);
 > 279		MMIO_D(SPRKEYMAX(PIPE_A), D_ALL);
 > 280		MMIO_D(SPROFFSET(PIPE_A), D_ALL);
 > 281		MMIO_D(SPRSCALE(PIPE_A), D_ALL);
 > 282		MMIO_D(SPRSURFLIVE(PIPE_A), D_ALL);
 > 283		MMIO_DH(REG_50080(PIPE_A, PLANE_SPRITE0), D_ALL, NULL,
   284			reg50080_mmio_write);
   285	
   286		MMIO_D(SPRCTL(PIPE_B), D_ALL);
   287		MMIO_D(SPRLINOFF(PIPE_B), D_ALL);
   288		MMIO_D(SPRSTRIDE(PIPE_B), D_ALL);
   289		MMIO_D(SPRPOS(PIPE_B), D_ALL);
   290		MMIO_D(SPRSIZE(PIPE_B), D_ALL);
   291		MMIO_D(SPRKEYVAL(PIPE_B), D_ALL);
   292		MMIO_D(SPRKEYMSK(PIPE_B), D_ALL);
   293		MMIO_DH(SPRSURF(PIPE_B), D_ALL, NULL, spr_surf_mmio_write);
   294		MMIO_D(SPRKEYMAX(PIPE_B), D_ALL);
   295		MMIO_D(SPROFFSET(PIPE_B), D_ALL);
   296		MMIO_D(SPRSCALE(PIPE_B), D_ALL);
   297		MMIO_D(SPRSURFLIVE(PIPE_B), D_ALL);
   298		MMIO_DH(REG_50080(PIPE_B, PLANE_SPRITE0), D_ALL, NULL,
   299			reg50080_mmio_write);
   300	
   301		MMIO_D(SPRCTL(PIPE_C), D_ALL);
   302		MMIO_D(SPRLINOFF(PIPE_C), D_ALL);
   303		MMIO_D(SPRSTRIDE(PIPE_C), D_ALL);
   304		MMIO_D(SPRPOS(PIPE_C), D_ALL);
   305		MMIO_D(SPRSIZE(PIPE_C), D_ALL);
   306		MMIO_D(SPRKEYVAL(PIPE_C), D_ALL);
   307		MMIO_D(SPRKEYMSK(PIPE_C), D_ALL);
   308		MMIO_DH(SPRSURF(PIPE_C), D_ALL, NULL, spr_surf_mmio_write);
   309		MMIO_D(SPRKEYMAX(PIPE_C), D_ALL);
   310		MMIO_D(SPROFFSET(PIPE_C), D_ALL);
   311		MMIO_D(SPRSCALE(PIPE_C), D_ALL);
   312		MMIO_D(SPRSURFLIVE(PIPE_C), D_ALL);
   313		MMIO_DH(REG_50080(PIPE_C, PLANE_SPRITE0), D_ALL, NULL,
   314			reg50080_mmio_write);
   315	
   316		MMIO_D(HTOTAL(TRANSCODER_A), D_ALL);
   317		MMIO_D(HBLANK(TRANSCODER_A), D_ALL);
   318		MMIO_D(HSYNC(TRANSCODER_A), D_ALL);
   319		MMIO_D(VTOTAL(TRANSCODER_A), D_ALL);
   320		MMIO_D(VBLANK(TRANSCODER_A), D_ALL);
   321		MMIO_D(VSYNC(TRANSCODER_A), D_ALL);
   322		MMIO_D(BCLRPAT(TRANSCODER_A), D_ALL);
   323		MMIO_D(VSYNCSHIFT(TRANSCODER_A), D_ALL);
   324		MMIO_D(PIPESRC(TRANSCODER_A), D_ALL);
   325	
   326		MMIO_D(HTOTAL(TRANSCODER_B), D_ALL);
   327		MMIO_D(HBLANK(TRANSCODER_B), D_ALL);
   328		MMIO_D(HSYNC(TRANSCODER_B), D_ALL);
   329		MMIO_D(VTOTAL(TRANSCODER_B), D_ALL);
   330		MMIO_D(VBLANK(TRANSCODER_B), D_ALL);
   331		MMIO_D(VSYNC(TRANSCODER_B), D_ALL);
   332		MMIO_D(BCLRPAT(TRANSCODER_B), D_ALL);
   333		MMIO_D(VSYNCSHIFT(TRANSCODER_B), D_ALL);
   334		MMIO_D(PIPESRC(TRANSCODER_B), D_ALL);
   335	
   336		MMIO_D(HTOTAL(TRANSCODER_C), D_ALL);
   337		MMIO_D(HBLANK(TRANSCODER_C), D_ALL);
   338		MMIO_D(HSYNC(TRANSCODER_C), D_ALL);
   339		MMIO_D(VTOTAL(TRANSCODER_C), D_ALL);
   340		MMIO_D(VBLANK(TRANSCODER_C), D_ALL);
   341		MMIO_D(VSYNC(TRANSCODER_C), D_ALL);
   342		MMIO_D(BCLRPAT(TRANSCODER_C), D_ALL);
   343		MMIO_D(VSYNCSHIFT(TRANSCODER_C), D_ALL);
   344		MMIO_D(PIPESRC(TRANSCODER_C), D_ALL);
   345	
   346		MMIO_D(HTOTAL(TRANSCODER_EDP), D_ALL);
   347		MMIO_D(HBLANK(TRANSCODER_EDP), D_ALL);
   348		MMIO_D(HSYNC(TRANSCODER_EDP), D_ALL);
   349		MMIO_D(VTOTAL(TRANSCODER_EDP), D_ALL);
   350		MMIO_D(VBLANK(TRANSCODER_EDP), D_ALL);
   351		MMIO_D(VSYNC(TRANSCODER_EDP), D_ALL);
   352		MMIO_D(BCLRPAT(TRANSCODER_EDP), D_ALL);
   353		MMIO_D(VSYNCSHIFT(TRANSCODER_EDP), D_ALL);
   354	
   355		MMIO_D(PIPE_DATA_M1(TRANSCODER_A), D_ALL);
   356		MMIO_D(PIPE_DATA_N1(TRANSCODER_A), D_ALL);
   357		MMIO_D(PIPE_DATA_M2(TRANSCODER_A), D_ALL);
   358		MMIO_D(PIPE_DATA_N2(TRANSCODER_A), D_ALL);
   359		MMIO_D(PIPE_LINK_M1(TRANSCODER_A), D_ALL);
   360		MMIO_D(PIPE_LINK_N1(TRANSCODER_A), D_ALL);
   361		MMIO_D(PIPE_LINK_M2(TRANSCODER_A), D_ALL);
   362		MMIO_D(PIPE_LINK_N2(TRANSCODER_A), D_ALL);
   363	
   364		MMIO_D(PIPE_DATA_M1(TRANSCODER_B), D_ALL);
   365		MMIO_D(PIPE_DATA_N1(TRANSCODER_B), D_ALL);
   366		MMIO_D(PIPE_DATA_M2(TRANSCODER_B), D_ALL);
   367		MMIO_D(PIPE_DATA_N2(TRANSCODER_B), D_ALL);
   368		MMIO_D(PIPE_LINK_M1(TRANSCODER_B), D_ALL);
   369		MMIO_D(PIPE_LINK_N1(TRANSCODER_B), D_ALL);
   370		MMIO_D(PIPE_LINK_M2(TRANSCODER_B), D_ALL);
   371		MMIO_D(PIPE_LINK_N2(TRANSCODER_B), D_ALL);
   372	
   373		MMIO_D(PIPE_DATA_M1(TRANSCODER_C), D_ALL);
   374		MMIO_D(PIPE_DATA_N1(TRANSCODER_C), D_ALL);
   375		MMIO_D(PIPE_DATA_M2(TRANSCODER_C), D_ALL);
   376		MMIO_D(PIPE_DATA_N2(TRANSCODER_C), D_ALL);
   377		MMIO_D(PIPE_LINK_M1(TRANSCODER_C), D_ALL);
   378		MMIO_D(PIPE_LINK_N1(TRANSCODER_C), D_ALL);
   379		MMIO_D(PIPE_LINK_M2(TRANSCODER_C), D_ALL);
   380		MMIO_D(PIPE_LINK_N2(TRANSCODER_C), D_ALL);
   381	
   382		MMIO_D(PIPE_DATA_M1(TRANSCODER_EDP), D_ALL);
   383		MMIO_D(PIPE_DATA_N1(TRANSCODER_EDP), D_ALL);
   384		MMIO_D(PIPE_DATA_M2(TRANSCODER_EDP), D_ALL);
   385		MMIO_D(PIPE_DATA_N2(TRANSCODER_EDP), D_ALL);
   386		MMIO_D(PIPE_LINK_M1(TRANSCODER_EDP), D_ALL);
   387		MMIO_D(PIPE_LINK_N1(TRANSCODER_EDP), D_ALL);
   388		MMIO_D(PIPE_LINK_M2(TRANSCODER_EDP), D_ALL);
   389		MMIO_D(PIPE_LINK_N2(TRANSCODER_EDP), D_ALL);
   390	
   391		MMIO_D(PF_CTL(PIPE_A), D_ALL);
   392		MMIO_D(PF_WIN_SZ(PIPE_A), D_ALL);
   393		MMIO_D(PF_WIN_POS(PIPE_A), D_ALL);
   394		MMIO_D(PF_VSCALE(PIPE_A), D_ALL);
   395		MMIO_D(PF_HSCALE(PIPE_A), D_ALL);
   396	
   397		MMIO_D(PF_CTL(PIPE_B), D_ALL);
   398		MMIO_D(PF_WIN_SZ(PIPE_B), D_ALL);
   399		MMIO_D(PF_WIN_POS(PIPE_B), D_ALL);
   400		MMIO_D(PF_VSCALE(PIPE_B), D_ALL);
   401		MMIO_D(PF_HSCALE(PIPE_B), D_ALL);
   402	
   403		MMIO_D(PF_CTL(PIPE_C), D_ALL);
   404		MMIO_D(PF_WIN_SZ(PIPE_C), D_ALL);
   405		MMIO_D(PF_WIN_POS(PIPE_C), D_ALL);
   406		MMIO_D(PF_VSCALE(PIPE_C), D_ALL);
   407		MMIO_D(PF_HSCALE(PIPE_C), D_ALL);
   408	
   409		MMIO_D(WM0_PIPE_ILK(PIPE_A), D_ALL);
   410		MMIO_D(WM0_PIPE_ILK(PIPE_B), D_ALL);
   411		MMIO_D(WM0_PIPE_ILK(PIPE_C), D_ALL);
   412		MMIO_D(WM1_LP_ILK, D_ALL);
   413		MMIO_D(WM2_LP_ILK, D_ALL);
   414		MMIO_D(WM3_LP_ILK, D_ALL);
   415		MMIO_D(WM1S_LP_ILK, D_ALL);
   416		MMIO_D(WM2S_LP_IVB, D_ALL);
   417		MMIO_D(WM3S_LP_IVB, D_ALL);
   418	
   419		MMIO_D(BLC_PWM_CPU_CTL2, D_ALL);
   420		MMIO_D(BLC_PWM_CPU_CTL, D_ALL);
   421		MMIO_D(BLC_PWM_PCH_CTL1, D_ALL);
   422		MMIO_D(BLC_PWM_PCH_CTL2, D_ALL);
   423	
   424		MMIO_D(_MMIO(0x48268), D_ALL);
   425	
   426		MMIO_F(PCH_GMBUS0, 4 * 4, 0, 0, 0, D_ALL, gmbus_mmio_read,
   427			gmbus_mmio_write);
   428		MMIO_F(PCH_GPIO_BASE, 6 * 4, F_UNALIGN, 0, 0, D_ALL, NULL, NULL);
   429		MMIO_F(_MMIO(0xe4f00), 0x28, 0, 0, 0, D_ALL, NULL, NULL);
   430	
   431		MMIO_F(_MMIO(_PCH_DPB_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   432			dp_aux_ch_ctl_mmio_write);
   433		MMIO_F(_MMIO(_PCH_DPC_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   434			dp_aux_ch_ctl_mmio_write);
   435		MMIO_F(_MMIO(_PCH_DPD_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   436			dp_aux_ch_ctl_mmio_write);
   437	
   438		MMIO_DH(PCH_ADPA, D_PRE_SKL, NULL, pch_adpa_mmio_write);
   439	
   440		MMIO_DH(_MMIO(_PCH_TRANSACONF), D_ALL, NULL, transconf_mmio_write);
   441		MMIO_DH(_MMIO(_PCH_TRANSBCONF), D_ALL, NULL, transconf_mmio_write);
   442	
   443		MMIO_DH(FDI_RX_IIR(PIPE_A), D_ALL, NULL, fdi_rx_iir_mmio_write);
   444		MMIO_DH(FDI_RX_IIR(PIPE_B), D_ALL, NULL, fdi_rx_iir_mmio_write);
   445		MMIO_DH(FDI_RX_IIR(PIPE_C), D_ALL, NULL, fdi_rx_iir_mmio_write);
   446		MMIO_DH(FDI_RX_IMR(PIPE_A), D_ALL, NULL, update_fdi_rx_iir_status);
   447		MMIO_DH(FDI_RX_IMR(PIPE_B), D_ALL, NULL, update_fdi_rx_iir_status);
   448		MMIO_DH(FDI_RX_IMR(PIPE_C), D_ALL, NULL, update_fdi_rx_iir_status);
   449		MMIO_DH(FDI_RX_CTL(PIPE_A), D_ALL, NULL, update_fdi_rx_iir_status);
   450		MMIO_DH(FDI_RX_CTL(PIPE_B), D_ALL, NULL, update_fdi_rx_iir_status);
   451		MMIO_DH(FDI_RX_CTL(PIPE_C), D_ALL, NULL, update_fdi_rx_iir_status);
   452	
   453		MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_A), D_ALL);
   454		MMIO_D(_MMIO(_PCH_TRANS_HBLANK_A), D_ALL);
   455		MMIO_D(_MMIO(_PCH_TRANS_HSYNC_A), D_ALL);
   456		MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_A), D_ALL);
   457		MMIO_D(_MMIO(_PCH_TRANS_VBLANK_A), D_ALL);
   458		MMIO_D(_MMIO(_PCH_TRANS_VSYNC_A), D_ALL);
   459		MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_A), D_ALL);
   460	
   461		MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_B), D_ALL);
   462		MMIO_D(_MMIO(_PCH_TRANS_HBLANK_B), D_ALL);
   463		MMIO_D(_MMIO(_PCH_TRANS_HSYNC_B), D_ALL);
   464		MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_B), D_ALL);
   465		MMIO_D(_MMIO(_PCH_TRANS_VBLANK_B), D_ALL);
   466		MMIO_D(_MMIO(_PCH_TRANS_VSYNC_B), D_ALL);
   467		MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_B), D_ALL);
   468	
   469		MMIO_D(_MMIO(_PCH_TRANSA_DATA_M1), D_ALL);
   470		MMIO_D(_MMIO(_PCH_TRANSA_DATA_N1), D_ALL);
   471		MMIO_D(_MMIO(_PCH_TRANSA_DATA_M2), D_ALL);
   472		MMIO_D(_MMIO(_PCH_TRANSA_DATA_N2), D_ALL);
   473		MMIO_D(_MMIO(_PCH_TRANSA_LINK_M1), D_ALL);
   474		MMIO_D(_MMIO(_PCH_TRANSA_LINK_N1), D_ALL);
   475		MMIO_D(_MMIO(_PCH_TRANSA_LINK_M2), D_ALL);
   476		MMIO_D(_MMIO(_PCH_TRANSA_LINK_N2), D_ALL);
   477	
   478		MMIO_D(TRANS_DP_CTL(PIPE_A), D_ALL);
   479		MMIO_D(TRANS_DP_CTL(PIPE_B), D_ALL);
   480		MMIO_D(TRANS_DP_CTL(PIPE_C), D_ALL);
   481	
   482		MMIO_D(TVIDEO_DIP_CTL(PIPE_A), D_ALL);
   483		MMIO_D(TVIDEO_DIP_DATA(PIPE_A), D_ALL);
   484		MMIO_D(TVIDEO_DIP_GCP(PIPE_A), D_ALL);
   485	
   486		MMIO_D(TVIDEO_DIP_CTL(PIPE_B), D_ALL);
   487		MMIO_D(TVIDEO_DIP_DATA(PIPE_B), D_ALL);
   488		MMIO_D(TVIDEO_DIP_GCP(PIPE_B), D_ALL);
   489	
   490		MMIO_D(TVIDEO_DIP_CTL(PIPE_C), D_ALL);
   491		MMIO_D(TVIDEO_DIP_DATA(PIPE_C), D_ALL);
   492		MMIO_D(TVIDEO_DIP_GCP(PIPE_C), D_ALL);
   493	
   494		MMIO_D(_MMIO(_FDI_RXA_MISC), D_ALL);
   495		MMIO_D(_MMIO(_FDI_RXB_MISC), D_ALL);
   496		MMIO_D(_MMIO(_FDI_RXA_TUSIZE1), D_ALL);
   497		MMIO_D(_MMIO(_FDI_RXA_TUSIZE2), D_ALL);
   498		MMIO_D(_MMIO(_FDI_RXB_TUSIZE1), D_ALL);
   499		MMIO_D(_MMIO(_FDI_RXB_TUSIZE2), D_ALL);
   500	
   501		MMIO_DH(PCH_PP_CONTROL, D_ALL, NULL, pch_pp_control_mmio_write);
   502		MMIO_D(PCH_PP_DIVISOR, D_ALL);
   503		MMIO_D(PCH_PP_STATUS,  D_ALL);
   504		MMIO_D(PCH_LVDS, D_ALL);
   505		MMIO_D(_MMIO(_PCH_DPLL_A), D_ALL);
   506		MMIO_D(_MMIO(_PCH_DPLL_B), D_ALL);
   507		MMIO_D(_MMIO(_PCH_FPA0), D_ALL);
   508		MMIO_D(_MMIO(_PCH_FPA1), D_ALL);
   509		MMIO_D(_MMIO(_PCH_FPB0), D_ALL);
   510		MMIO_D(_MMIO(_PCH_FPB1), D_ALL);
   511		MMIO_D(PCH_DREF_CONTROL, D_ALL);
   512		MMIO_D(PCH_RAWCLK_FREQ, D_ALL);
   513		MMIO_D(PCH_DPLL_SEL, D_ALL);
   514	
   515		MMIO_D(_MMIO(0x61208), D_ALL);
   516		MMIO_D(_MMIO(0x6120c), D_ALL);
   517		MMIO_D(PCH_PP_ON_DELAYS, D_ALL);
   518		MMIO_D(PCH_PP_OFF_DELAYS, D_ALL);
   519	
   520		MMIO_DH(_MMIO(0xe651c), D_ALL, dpy_reg_mmio_read, NULL);
   521		MMIO_DH(_MMIO(0xe661c), D_ALL, dpy_reg_mmio_read, NULL);
   522		MMIO_DH(_MMIO(0xe671c), D_ALL, dpy_reg_mmio_read, NULL);
   523		MMIO_DH(_MMIO(0xe681c), D_ALL, dpy_reg_mmio_read, NULL);
   524		MMIO_DH(_MMIO(0xe6c04), D_ALL, dpy_reg_mmio_read, NULL);
   525		MMIO_DH(_MMIO(0xe6e1c), D_ALL, dpy_reg_mmio_read, NULL);
   526	
   527		MMIO_RO(PCH_PORT_HOTPLUG, D_ALL, 0,
   528			PORTA_HOTPLUG_STATUS_MASK
   529			| PORTB_HOTPLUG_STATUS_MASK
   530			| PORTC_HOTPLUG_STATUS_MASK
   531			| PORTD_HOTPLUG_STATUS_MASK,
   532			NULL, NULL);
   533	
   534		MMIO_DH(LCPLL_CTL, D_ALL, NULL, lcpll_ctl_mmio_write);
   535		MMIO_D(FUSE_STRAP, D_ALL);
   536		MMIO_D(DIGITAL_PORT_HOTPLUG_CNTRL, D_ALL);
   537	
   538		MMIO_D(DISP_ARB_CTL, D_ALL);
   539		MMIO_D(DISP_ARB_CTL2, D_ALL);
   540	
   541		MMIO_D(ILK_DISPLAY_CHICKEN1, D_ALL);
   542		MMIO_D(ILK_DISPLAY_CHICKEN2, D_ALL);
   543		MMIO_D(ILK_DSPCLK_GATE_D, D_ALL);
   544	
   545		MMIO_D(SOUTH_CHICKEN1, D_ALL);
   546		MMIO_DH(SOUTH_CHICKEN2, D_ALL, NULL, south_chicken2_mmio_write);
   547		MMIO_D(_MMIO(_TRANSA_CHICKEN1), D_ALL);
   548		MMIO_D(_MMIO(_TRANSB_CHICKEN1), D_ALL);
   549		MMIO_D(SOUTH_DSPCLK_GATE_D, D_ALL);
   550		MMIO_D(_MMIO(_TRANSA_CHICKEN2), D_ALL);
   551		MMIO_D(_MMIO(_TRANSB_CHICKEN2), D_ALL);
   552	
   553		MMIO_D(ILK_DPFC_CB_BASE, D_ALL);
   554		MMIO_D(ILK_DPFC_CONTROL, D_ALL);
   555		MMIO_D(ILK_DPFC_RECOMP_CTL, D_ALL);
   556		MMIO_D(ILK_DPFC_STATUS, D_ALL);
   557		MMIO_D(ILK_DPFC_FENCE_YOFF, D_ALL);
   558		MMIO_D(ILK_DPFC_CHICKEN, D_ALL);
   559		MMIO_D(ILK_FBC_RT_BASE, D_ALL);
   560	
   561		MMIO_D(IPS_CTL, D_ALL);
   562	
   563		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_A), D_ALL);
   564		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_A), D_ALL);
   565		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_A), D_ALL);
   566		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_A), D_ALL);
   567		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_A), D_ALL);
   568		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_A), D_ALL);
   569		MMIO_D(PIPE_CSC_MODE(PIPE_A), D_ALL);
   570		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_A), D_ALL);
   571		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_A), D_ALL);
   572		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_A), D_ALL);
   573		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_A), D_ALL);
   574		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_A), D_ALL);
   575		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_A), D_ALL);
   576	
   577		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_B), D_ALL);
   578		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_B), D_ALL);
   579		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_B), D_ALL);
   580		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_B), D_ALL);
   581		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_B), D_ALL);
   582		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_B), D_ALL);
   583		MMIO_D(PIPE_CSC_MODE(PIPE_B), D_ALL);
   584		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_B), D_ALL);
   585		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_B), D_ALL);
   586		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_B), D_ALL);
   587		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_B), D_ALL);
   588		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_B), D_ALL);
   589		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_B), D_ALL);
   590	
   591		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_C), D_ALL);
   592		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_C), D_ALL);
   593		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_C), D_ALL);
   594		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_C), D_ALL);
   595		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_C), D_ALL);
   596		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_C), D_ALL);
   597		MMIO_D(PIPE_CSC_MODE(PIPE_C), D_ALL);
   598		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_C), D_ALL);
   599		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_C), D_ALL);
   600		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_C), D_ALL);
   601		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_C), D_ALL);
   602		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_C), D_ALL);
   603		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_C), D_ALL);
   604	
   605		MMIO_D(PREC_PAL_INDEX(PIPE_A), D_ALL);
   606		MMIO_D(PREC_PAL_DATA(PIPE_A), D_ALL);
   607		MMIO_F(PREC_PAL_GC_MAX(PIPE_A, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   608	
   609		MMIO_D(PREC_PAL_INDEX(PIPE_B), D_ALL);
   610		MMIO_D(PREC_PAL_DATA(PIPE_B), D_ALL);
   611		MMIO_F(PREC_PAL_GC_MAX(PIPE_B, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   612	
   613		MMIO_D(PREC_PAL_INDEX(PIPE_C), D_ALL);
   614		MMIO_D(PREC_PAL_DATA(PIPE_C), D_ALL);
   615		MMIO_F(PREC_PAL_GC_MAX(PIPE_C, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   616	
   617		MMIO_D(_MMIO(0x60110), D_ALL);
   618		MMIO_D(_MMIO(0x61110), D_ALL);
   619		MMIO_F(_MMIO(0x70400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   620		MMIO_F(_MMIO(0x71400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   621		MMIO_F(_MMIO(0x72400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   622		MMIO_F(_MMIO(0x70440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   623		MMIO_F(_MMIO(0x71440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   624		MMIO_F(_MMIO(0x72440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   625		MMIO_F(_MMIO(0x7044c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   626		MMIO_F(_MMIO(0x7144c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   627		MMIO_F(_MMIO(0x7244c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   628	
   629		MMIO_D(WM_LINETIME(PIPE_A), D_ALL);
   630		MMIO_D(WM_LINETIME(PIPE_B), D_ALL);
   631		MMIO_D(WM_LINETIME(PIPE_C), D_ALL);
   632		MMIO_D(SPLL_CTL, D_ALL);
   633		MMIO_D(_MMIO(_WRPLL_CTL1), D_ALL);
   634		MMIO_D(_MMIO(_WRPLL_CTL2), D_ALL);
   635		MMIO_D(PORT_CLK_SEL(PORT_A), D_ALL);
   636		MMIO_D(PORT_CLK_SEL(PORT_B), D_ALL);
   637		MMIO_D(PORT_CLK_SEL(PORT_C), D_ALL);
   638		MMIO_D(PORT_CLK_SEL(PORT_D), D_ALL);
   639		MMIO_D(PORT_CLK_SEL(PORT_E), D_ALL);
   640		MMIO_D(TRANS_CLK_SEL(TRANSCODER_A), D_ALL);
   641		MMIO_D(TRANS_CLK_SEL(TRANSCODER_B), D_ALL);
   642		MMIO_D(TRANS_CLK_SEL(TRANSCODER_C), D_ALL);
   643	
   644		MMIO_D(HSW_NDE_RSTWRN_OPT, D_ALL);
   645		MMIO_D(_MMIO(0x46508), D_ALL);
   646	
   647		MMIO_D(_MMIO(0x49080), D_ALL);
   648		MMIO_D(_MMIO(0x49180), D_ALL);
   649		MMIO_D(_MMIO(0x49280), D_ALL);
   650	
   651		MMIO_F(_MMIO(0x49090), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   652		MMIO_F(_MMIO(0x49190), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   653		MMIO_F(_MMIO(0x49290), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   654	
   655		MMIO_D(GAMMA_MODE(PIPE_A), D_ALL);
   656		MMIO_D(GAMMA_MODE(PIPE_B), D_ALL);
   657		MMIO_D(GAMMA_MODE(PIPE_C), D_ALL);
   658	
   659		MMIO_D(PIPE_MULT(PIPE_A), D_ALL);
   660		MMIO_D(PIPE_MULT(PIPE_B), D_ALL);
   661		MMIO_D(PIPE_MULT(PIPE_C), D_ALL);
   662	
   663		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_A), D_ALL);
   664		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_B), D_ALL);
   665		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_C), D_ALL);
   666	
   667		MMIO_DH(SFUSE_STRAP, D_ALL, NULL, NULL);
   668		MMIO_D(SBI_ADDR, D_ALL);
   669		MMIO_DH(SBI_DATA, D_ALL, sbi_data_mmio_read, NULL);
   670		MMIO_DH(SBI_CTL_STAT, D_ALL, NULL, sbi_ctl_mmio_write);
   671		MMIO_D(PIXCLK_GATE, D_ALL);
   672	
   673		MMIO_F(_MMIO(_DPA_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_ALL, NULL,
   674			dp_aux_ch_ctl_mmio_write);
   675	
   676		MMIO_DH(DDI_BUF_CTL(PORT_A), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   677		MMIO_DH(DDI_BUF_CTL(PORT_B), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   678		MMIO_DH(DDI_BUF_CTL(PORT_C), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   679		MMIO_DH(DDI_BUF_CTL(PORT_D), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   680		MMIO_DH(DDI_BUF_CTL(PORT_E), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   681	
   682		MMIO_DH(DP_TP_CTL(PORT_A), D_ALL, NULL, dp_tp_ctl_mmio_write);
   683		MMIO_DH(DP_TP_CTL(PORT_B), D_ALL, NULL, dp_tp_ctl_mmio_write);
   684		MMIO_DH(DP_TP_CTL(PORT_C), D_ALL, NULL, dp_tp_ctl_mmio_write);
   685		MMIO_DH(DP_TP_CTL(PORT_D), D_ALL, NULL, dp_tp_ctl_mmio_write);
   686		MMIO_DH(DP_TP_CTL(PORT_E), D_ALL, NULL, dp_tp_ctl_mmio_write);
   687	
   688		MMIO_DH(DP_TP_STATUS(PORT_A), D_ALL, NULL, dp_tp_status_mmio_write);
   689		MMIO_DH(DP_TP_STATUS(PORT_B), D_ALL, NULL, dp_tp_status_mmio_write);
   690		MMIO_DH(DP_TP_STATUS(PORT_C), D_ALL, NULL, dp_tp_status_mmio_write);
   691		MMIO_DH(DP_TP_STATUS(PORT_D), D_ALL, NULL, dp_tp_status_mmio_write);
   692		MMIO_DH(DP_TP_STATUS(PORT_E), D_ALL, NULL, NULL);
   693	
   694		MMIO_F(_MMIO(_DDI_BUF_TRANS_A), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   695		MMIO_F(_MMIO(0x64e60), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   696		MMIO_F(_MMIO(0x64eC0), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   697		MMIO_F(_MMIO(0x64f20), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   698		MMIO_F(_MMIO(0x64f80), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   699	
   700		MMIO_D(HSW_AUD_CFG(PIPE_A), D_ALL);
   701		MMIO_D(HSW_AUD_PIN_ELD_CP_VLD, D_ALL);
   702		MMIO_D(HSW_AUD_MISC_CTRL(PIPE_A), D_ALL);
   703	
   704		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_A), D_ALL, NULL, NULL);
   705		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_B), D_ALL, NULL, NULL);
   706		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_C), D_ALL, NULL, NULL);
   707		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_EDP), D_ALL, NULL, NULL);
   708	
   709		MMIO_D(_MMIO(_TRANSA_MSA_MISC), D_ALL);
   710		MMIO_D(_MMIO(_TRANSB_MSA_MISC), D_ALL);
   711		MMIO_D(_MMIO(_TRANSC_MSA_MISC), D_ALL);
   712		MMIO_D(_MMIO(_TRANS_EDP_MSA_MISC), D_ALL);
   713	
   714		MMIO_DH(FORCEWAKE, D_ALL, NULL, NULL);
   715		MMIO_D(FORCEWAKE_ACK, D_ALL);
   716		MMIO_D(GEN6_GT_CORE_STATUS, D_ALL);
   717		MMIO_D(GEN6_GT_THREAD_STATUS_REG, D_ALL);
   718		MMIO_DFH(GTFIFODBG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   719		MMIO_DFH(GTFIFOCTL, D_ALL, F_CMD_ACCESS, NULL, NULL);
   720		MMIO_DH(FORCEWAKE_MT, D_PRE_SKL, NULL, mul_force_wake_write);
   721		MMIO_DH(FORCEWAKE_ACK_HSW, D_BDW, NULL, NULL);
   722		MMIO_D(ECOBUS, D_ALL);
   723		MMIO_DH(GEN6_RC_CONTROL, D_ALL, NULL, NULL);
   724		MMIO_DH(GEN6_RC_STATE, D_ALL, NULL, NULL);
   725		MMIO_D(GEN6_RPNSWREQ, D_ALL);
   726		MMIO_D(GEN6_RC_VIDEO_FREQ, D_ALL);
   727		MMIO_D(GEN6_RP_DOWN_TIMEOUT, D_ALL);
   728		MMIO_D(GEN6_RP_INTERRUPT_LIMITS, D_ALL);
   729		MMIO_D(GEN6_RPSTAT1, D_ALL);
   730		MMIO_D(GEN6_RP_CONTROL, D_ALL);
   731		MMIO_D(GEN6_RP_UP_THRESHOLD, D_ALL);
   732		MMIO_D(GEN6_RP_DOWN_THRESHOLD, D_ALL);
   733		MMIO_D(GEN6_RP_CUR_UP_EI, D_ALL);
   734		MMIO_D(GEN6_RP_CUR_UP, D_ALL);
   735		MMIO_D(GEN6_RP_PREV_UP, D_ALL);
   736		MMIO_D(GEN6_RP_CUR_DOWN_EI, D_ALL);
   737		MMIO_D(GEN6_RP_CUR_DOWN, D_ALL);
   738		MMIO_D(GEN6_RP_PREV_DOWN, D_ALL);
   739		MMIO_D(GEN6_RP_UP_EI, D_ALL);
   740		MMIO_D(GEN6_RP_DOWN_EI, D_ALL);
   741		MMIO_D(GEN6_RP_IDLE_HYSTERSIS, D_ALL);
   742		MMIO_D(GEN6_RC1_WAKE_RATE_LIMIT, D_ALL);
   743		MMIO_D(GEN6_RC6_WAKE_RATE_LIMIT, D_ALL);
   744		MMIO_D(GEN6_RC6pp_WAKE_RATE_LIMIT, D_ALL);
   745		MMIO_D(GEN6_RC_EVALUATION_INTERVAL, D_ALL);
   746		MMIO_D(GEN6_RC_IDLE_HYSTERSIS, D_ALL);
   747		MMIO_D(GEN6_RC_SLEEP, D_ALL);
   748		MMIO_D(GEN6_RC1e_THRESHOLD, D_ALL);
   749		MMIO_D(GEN6_RC6_THRESHOLD, D_ALL);
   750		MMIO_D(GEN6_RC6p_THRESHOLD, D_ALL);
   751		MMIO_D(GEN6_RC6pp_THRESHOLD, D_ALL);
   752		MMIO_D(GEN6_PMINTRMSK, D_ALL);
   753		MMIO_DH(HSW_PWR_WELL_CTL1, D_BDW, NULL, power_well_ctl_mmio_write);
   754		MMIO_DH(HSW_PWR_WELL_CTL2, D_BDW, NULL, power_well_ctl_mmio_write);
   755		MMIO_DH(HSW_PWR_WELL_CTL3, D_BDW, NULL, power_well_ctl_mmio_write);
   756		MMIO_DH(HSW_PWR_WELL_CTL4, D_BDW, NULL, power_well_ctl_mmio_write);
   757		MMIO_DH(HSW_PWR_WELL_CTL5, D_BDW, NULL, power_well_ctl_mmio_write);
   758		MMIO_DH(HSW_PWR_WELL_CTL6, D_BDW, NULL, power_well_ctl_mmio_write);
   759	
   760		MMIO_D(RSTDBYCTL, D_ALL);
   761	
   762		MMIO_DH(GEN6_GDRST, D_ALL, NULL, gdrst_mmio_write);
   763		MMIO_F(FENCE_REG_GEN6_LO(0), 0x80, 0, 0, 0, D_ALL, fence_mmio_read, fence_mmio_write);
   764		MMIO_DH(CPU_VGACNTRL, D_ALL, NULL, vga_control_mmio_write);
   765	
   766		MMIO_D(TILECTL, D_ALL);
   767	
   768		MMIO_D(GEN6_UCGCTL1, D_ALL);
   769		MMIO_D(GEN6_UCGCTL2, D_ALL);
   770	
   771		MMIO_F(_MMIO(0x4f000), 0x90, 0, 0, 0, D_ALL, NULL, NULL);
   772	
   773		MMIO_D(GEN6_PCODE_DATA, D_ALL);
   774		MMIO_D(_MMIO(0x13812c), D_ALL);
   775		MMIO_DH(GEN7_ERR_INT, D_ALL, NULL, NULL);
   776		MMIO_D(HSW_EDRAM_CAP, D_ALL);
   777		MMIO_D(HSW_IDICR, D_ALL);
   778		MMIO_DH(GFX_FLSH_CNTL_GEN6, D_ALL, NULL, NULL);
   779	
   780		MMIO_D(_MMIO(0x3c), D_ALL);
   781		MMIO_D(_MMIO(0x860), D_ALL);
   782		MMIO_D(ECOSKPD, D_ALL);
   783		MMIO_D(_MMIO(0x121d0), D_ALL);
   784		MMIO_D(GEN6_BLITTER_ECOSKPD, D_ALL);
   785		MMIO_D(_MMIO(0x41d0), D_ALL);
   786		MMIO_D(GAC_ECO_BITS, D_ALL);
   787		MMIO_D(_MMIO(0x6200), D_ALL);
   788		MMIO_D(_MMIO(0x6204), D_ALL);
   789		MMIO_D(_MMIO(0x6208), D_ALL);
   790		MMIO_D(_MMIO(0x7118), D_ALL);
   791		MMIO_D(_MMIO(0x7180), D_ALL);
   792		MMIO_D(_MMIO(0x7408), D_ALL);
   793		MMIO_D(_MMIO(0x7c00), D_ALL);
   794		MMIO_DH(GEN6_MBCTL, D_ALL, NULL, mbctl_write);
   795		MMIO_D(_MMIO(0x911c), D_ALL);
   796		MMIO_D(_MMIO(0x9120), D_ALL);
   797		MMIO_DFH(GEN7_UCGCTL4, D_ALL, F_CMD_ACCESS, NULL, NULL);
   798	
   799		MMIO_D(GAB_CTL, D_ALL);
   800		MMIO_D(_MMIO(0x48800), D_ALL);
   801		MMIO_D(_MMIO(0xce044), D_ALL);
   802		MMIO_D(_MMIO(0xe6500), D_ALL);
   803		MMIO_D(_MMIO(0xe6504), D_ALL);
   804		MMIO_D(_MMIO(0xe6600), D_ALL);
   805		MMIO_D(_MMIO(0xe6604), D_ALL);
   806		MMIO_D(_MMIO(0xe6700), D_ALL);
   807		MMIO_D(_MMIO(0xe6704), D_ALL);
   808		MMIO_D(_MMIO(0xe6800), D_ALL);
   809		MMIO_D(_MMIO(0xe6804), D_ALL);
   810		MMIO_D(PCH_GMBUS4, D_ALL);
   811		MMIO_D(PCH_GMBUS5, D_ALL);
   812	
   813		MMIO_D(_MMIO(0x902c), D_ALL);
   814		MMIO_D(_MMIO(0xec008), D_ALL);
   815		MMIO_D(_MMIO(0xec00c), D_ALL);
   816		MMIO_D(_MMIO(0xec008 + 0x18), D_ALL);
   817		MMIO_D(_MMIO(0xec00c + 0x18), D_ALL);
   818		MMIO_D(_MMIO(0xec008 + 0x18 * 2), D_ALL);
   819		MMIO_D(_MMIO(0xec00c + 0x18 * 2), D_ALL);
   820		MMIO_D(_MMIO(0xec008 + 0x18 * 3), D_ALL);
   821		MMIO_D(_MMIO(0xec00c + 0x18 * 3), D_ALL);
   822		MMIO_D(_MMIO(0xec408), D_ALL);
   823		MMIO_D(_MMIO(0xec40c), D_ALL);
   824		MMIO_D(_MMIO(0xec408 + 0x18), D_ALL);
   825		MMIO_D(_MMIO(0xec40c + 0x18), D_ALL);
   826		MMIO_D(_MMIO(0xec408 + 0x18 * 2), D_ALL);
   827		MMIO_D(_MMIO(0xec40c + 0x18 * 2), D_ALL);
   828		MMIO_D(_MMIO(0xec408 + 0x18 * 3), D_ALL);
   829		MMIO_D(_MMIO(0xec40c + 0x18 * 3), D_ALL);
   830		MMIO_D(_MMIO(0xfc810), D_ALL);
   831		MMIO_D(_MMIO(0xfc81c), D_ALL);
   832		MMIO_D(_MMIO(0xfc828), D_ALL);
   833		MMIO_D(_MMIO(0xfc834), D_ALL);
   834		MMIO_D(_MMIO(0xfcc00), D_ALL);
   835		MMIO_D(_MMIO(0xfcc0c), D_ALL);
   836		MMIO_D(_MMIO(0xfcc18), D_ALL);
   837		MMIO_D(_MMIO(0xfcc24), D_ALL);
   838		MMIO_D(_MMIO(0xfd000), D_ALL);
   839		MMIO_D(_MMIO(0xfd00c), D_ALL);
   840		MMIO_D(_MMIO(0xfd018), D_ALL);
   841		MMIO_D(_MMIO(0xfd024), D_ALL);
   842		MMIO_D(_MMIO(0xfd034), D_ALL);
   843	
   844		MMIO_DH(FPGA_DBG, D_ALL, NULL, fpga_dbg_mmio_write);
   845		MMIO_D(_MMIO(0x2054), D_ALL);
   846		MMIO_D(_MMIO(0x12054), D_ALL);
   847		MMIO_D(_MMIO(0x22054), D_ALL);
   848		MMIO_D(_MMIO(0x1a054), D_ALL);
   849	
   850		MMIO_D(_MMIO(0x44070), D_ALL);
   851		MMIO_DFH(_MMIO(0x215c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   852		MMIO_DFH(_MMIO(0x2178), D_ALL, F_CMD_ACCESS, NULL, NULL);
   853		MMIO_DFH(_MMIO(0x217c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   854		MMIO_DFH(_MMIO(0x12178), D_ALL, F_CMD_ACCESS, NULL, NULL);
   855		MMIO_DFH(_MMIO(0x1217c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   856	
   857		MMIO_F(_MMIO(0x2290), 8, F_CMD_ACCESS, 0, 0, D_BDW_PLUS, NULL, NULL);
   858		MMIO_D(_MMIO(0x2b00), D_BDW_PLUS);
   859		MMIO_D(_MMIO(0x2360), D_BDW_PLUS);
   860		MMIO_F(_MMIO(0x5200), 32, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   861		MMIO_F(_MMIO(0x5240), 32, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   862		MMIO_F(_MMIO(0x5280), 16, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   863	
   864		MMIO_DFH(_MMIO(0x1c17c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   865		MMIO_DFH(_MMIO(0x1c178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   866		MMIO_DFH(BCS_SWCTRL, D_ALL, F_CMD_ACCESS, NULL, NULL);
   867	
   868		MMIO_F(HS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   869		MMIO_F(DS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   870		MMIO_F(IA_VERTICES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   871		MMIO_F(IA_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   872		MMIO_F(VS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   873		MMIO_F(GS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   874		MMIO_F(GS_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   875		MMIO_F(CL_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   876		MMIO_F(CL_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   877		MMIO_F(PS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   878		MMIO_F(PS_DEPTH_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   879		MMIO_DH(_MMIO(0x4260), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   880		MMIO_DH(_MMIO(0x4264), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   881		MMIO_DH(_MMIO(0x4268), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   882		MMIO_DH(_MMIO(0x426c), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   883		MMIO_DH(_MMIO(0x4270), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   884		MMIO_DFH(_MMIO(0x4094), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   885	
   886		MMIO_DFH(ARB_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   887		MMIO_RING_GM(RING_BBADDR, D_ALL, NULL, NULL);
   888		MMIO_DFH(_MMIO(0x2220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   889		MMIO_DFH(_MMIO(0x12220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   890		MMIO_DFH(_MMIO(0x22220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   891		MMIO_RING_DFH(RING_SYNC_1, D_ALL, F_CMD_ACCESS, NULL, NULL);
   892		MMIO_RING_DFH(RING_SYNC_0, D_ALL, F_CMD_ACCESS, NULL, NULL);
   893		MMIO_DFH(_MMIO(0x22178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   894		MMIO_DFH(_MMIO(0x1a178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   895		MMIO_DFH(_MMIO(0x1a17c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   896		MMIO_DFH(_MMIO(0x2217c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   897	
   898		MMIO_DH(EDP_PSR_IMR, D_BDW_PLUS, NULL, edp_psr_imr_iir_write);
   899		MMIO_DH(EDP_PSR_IIR, D_BDW_PLUS, NULL, edp_psr_imr_iir_write);
   900		MMIO_DH(GUC_STATUS, D_ALL, guc_status_read, NULL);
   901	
   902		return 0;
   903	}
   904	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 66042 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 1/3] i915/gvt: seperate tracked MMIO table from handlers.c
Date: Fri, 12 Nov 2021 07:32:37 +0800	[thread overview]
Message-ID: <202111120709.0HZyzp3c-lkp@intel.com> (raw)
In-Reply-To: <20211108212718.10576-1-zhi.a.wang@intel.com>

[-- Attachment #1: Type: text/plain, Size: 61965 bytes --]

Hi Zhi,

I love your patch! Yet something to improve:

[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v5.15 next-20211111]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Zhi-Wang/i915-gvt-seperate-tracked-MMIO-table-from-handlers-c/20211109-052907
base:   git://anongit.freedesktop.org/drm-intel for-linux-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
        # https://github.com/0day-ci/linux/commit/8d4393b277b5196206271d5191d25fe61b1b34f1
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Zhi-Wang/i915-gvt-seperate-tracked-MMIO-table-from-handlers-c/20211109-052907
        git checkout 8d4393b277b5196206271d5191d25fe61b1b34f1
        # save the attached .config to linux build tree
        mkdir build_dir
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   In file included from <command-line>:
   drivers/gpu/drm/i915/gvt/mmio_table.h:85:52: error: 'struct intel_gvt' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
      85 | static int intel_gvt_init_generic_mmio_info(struct intel_gvt *gvt)
         |                                                    ^~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h: In function 'intel_gvt_init_generic_mmio_info':
>> drivers/gpu/drm/i915/gvt/mmio_table.h:87:41: error: dereferencing pointer to incomplete type 'struct intel_gvt'
      87 |  struct drm_i915_private *dev_priv = gvt->gt->i915;
         |                                         ^~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:36:8: error: implicit declaration of function 'new_mmio_info' [-Werror=implicit-function-declaration]
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |        ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:2: note: in expansion of macro 'MMIO_F'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:36:27: error: implicit declaration of function 'i915_mmio_reg_offset' [-Werror=implicit-function-declaration]
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                           ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:2: note: in expansion of macro 'MMIO_F'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:16: error: implicit declaration of function 'RING_IMR' [-Werror=implicit-function-declaration]
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                ^~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:62:16: error: 'RENDER_RING_BASE' undeclared (first use in this function)
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:16: note: each undeclared identifier is reported only once for each function it appears in
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:26: error: 'D_ALL' undeclared (first use in this function)
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                          ^~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:17: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                 ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:91:36: error: 'NULL' undeclared (first use in this function)
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |                                    ^~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:20: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                    ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:1:1: note: 'NULL' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
     +++ |+#include <stddef.h>
       1 | /*
>> drivers/gpu/drm/i915/gvt/mmio_table.h:92:3: error: 'intel_vgpu_reg_imr_handler' undeclared (first use in this function)
      92 |   intel_vgpu_reg_imr_handler);
         |   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:63:16: error: 'BLT_RING_BASE' undeclared (first use in this function)
      63 |  MMIO_F(prefix(BLT_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:64:16: error: 'GEN6_BSD_RING_BASE' undeclared (first use in this function)
      64 |  MMIO_F(prefix(GEN6_BSD_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:65:16: error: 'VEBOX_RING_BASE' undeclared (first use in this function)
      65 |  MMIO_F(prefix(VEBOX_RING_BASE), s, f, am, rm, d, r, w); \
         |                ^~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:66:6: error: implicit declaration of function 'HAS_ENGINE' [-Werror=implicit-function-declaration]
      66 |  if (HAS_ENGINE(gvt->gt, VCS1)) \
         |      ^~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:66:26: error: 'VCS1' undeclared (first use in this function)
      66 |  if (HAS_ENGINE(gvt->gt, VCS1)) \
         |                          ^~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:67:17: error: 'GEN8_BSD2_RING_BASE' undeclared (first use in this function)
      67 |   MMIO_F(prefix(GEN8_BSD2_RING_BASE), s, f, am, rm, d, r, w); \
         |                 ^~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:91:2: note: in expansion of macro 'MMIO_RING_DFH'
      91 |  MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
         |  ^~~~~~~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:94:11: error: 'SDEIMR' undeclared (first use in this function)
      94 |  MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:94:2: note: in expansion of macro 'MMIO_DFH'
      94 |  MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:95:11: error: 'SDEIER' undeclared (first use in this function)
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:95:2: note: in expansion of macro 'MMIO_DFH'
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:95:35: error: 'intel_vgpu_reg_ier_handler' undeclared (first use in this function)
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:95:2: note: in expansion of macro 'MMIO_DFH'
      95 |  MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:96:11: error: 'SDEIIR' undeclared (first use in this function)
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |           ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:96:2: note: in expansion of macro 'MMIO_DFH'
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:96:35: error: 'intel_vgpu_reg_iir_handler' undeclared (first use in this function)
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:96:2: note: in expansion of macro 'MMIO_DFH'
      96 |  MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
         |  ^~~~~~~~
>> drivers/gpu/drm/i915/gvt/mmio_table.h:97:9: error: 'SDEISR' undeclared (first use in this function)
      97 |  MMIO_D(SDEISR, D_ALL);
         |         ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:97:2: note: in expansion of macro 'MMIO_D'
      97 |  MMIO_D(SDEISR, D_ALL);
         |  ^~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:99:16: error: implicit declaration of function 'RING_HWSTAM' [-Werror=implicit-function-declaration]
      99 |  MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
         |                ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:74:2: note: in expansion of macro 'MMIO_RING_F'
      74 |  MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:99:2: note: in expansion of macro 'MMIO_RING_DFH'
      99 |  MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
         |  ^~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:10: error: 'GEN8_GAMW_ECO_DEV_RW_IA' undeclared (first use in this function)
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |          ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:35: error: 'D_BDW_PLUS' undeclared (first use in this function)
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |                                   ^~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:17: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                 ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:103:3: error: 'gamw_echo_dev_rw_ia_write' undeclared (first use in this function)
     103 |   gamw_echo_dev_rw_ia_write);
         |   ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:23: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |                       ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:102:2: note: in expansion of macro 'MMIO_DH'
     102 |  MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
         |  ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:14: error: 'BSD_HWS_PGA_GEN7' undeclared (first use in this function)
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:56:17: error: 'F_GMADR' undeclared (first use in this function)
      56 |  MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
         |                 ^~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:3: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |   ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:56:27: error: 'F_CMD_ACCESS' undeclared (first use in this function)
      56 |  MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
         |                           ^~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:37:3: note: in definition of macro 'MMIO_F'
      37 |   f, s, am, rm, d, r, w); \
         |   ^
   drivers/gpu/drm/i915/gvt/mmio_table.h:105:2: note: in expansion of macro 'MMIO_GM_RDR'
     105 |  MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:106:14: error: 'BLT_HWS_PGA_GEN7' undeclared (first use in this function)
     106 |  MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:106:2: note: in expansion of macro 'MMIO_GM_RDR'
     106 |  MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:107:14: error: 'VEBOX_HWS_PGA_GEN7' undeclared (first use in this function)
     107 |  MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |              ^~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:107:2: note: in expansion of macro 'MMIO_GM_RDR'
     107 |  MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
         |  ^~~~~~~~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:109:24: error: implicit declaration of function '_MMIO' [-Werror=implicit-function-declaration]
     109 | #define RING_REG(base) _MMIO((base) + 0x28)
         |                        ^~~~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:36:48: note: in definition of macro 'MMIO_F'
      36 |  ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
         |                                                ^~~
   drivers/gpu/drm/i915/gvt/mmio_table.h:62:9: note: in expansion of macro 'RING_REG'
      62 |  MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \


vim +87 drivers/gpu/drm/i915/gvt/mmio_table.h

    27	
    28	#ifdef GENERATE_MMIO_TABLE_IN_I915
    29	#define MMIO_F(reg, s, f, am, rm, d, r, w) do { \
    30		ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg)); \
    31		if (ret) \
    32			return ret; \
    33	} while (0)
    34	#else
    35	#define MMIO_F(reg, s, f, am, rm, d, r, w) do { \
  > 36		ret = new_mmio_info(gvt, i915_mmio_reg_offset(reg), \
    37			f, s, am, rm, d, r, w); \
    38		if (ret) \
    39			return ret; \
    40	} while (0)
    41	#endif
    42	
    43	#define MMIO_D(reg, d) \
    44		MMIO_F(reg, 4, 0, 0, 0, d, NULL, NULL)
    45	
    46	#define MMIO_DH(reg, d, r, w) \
    47		MMIO_F(reg, 4, 0, 0, 0, d, r, w)
    48	
    49	#define MMIO_DFH(reg, d, f, r, w) \
    50		MMIO_F(reg, 4, f, 0, 0, d, r, w)
    51	
    52	#define MMIO_GM(reg, d, r, w) \
    53		MMIO_F(reg, 4, F_GMADR, 0xFFFFF000, 0, d, r, w)
    54	
    55	#define MMIO_GM_RDR(reg, d, r, w) \
  > 56		MMIO_F(reg, 4, F_GMADR | F_CMD_ACCESS, 0xFFFFF000, 0, d, r, w)
    57	
    58	#define MMIO_RO(reg, d, f, rm, r, w) \
  > 59		MMIO_F(reg, 4, F_RO | f, 0, rm, d, r, w)
    60	
    61	#define MMIO_RING_F(prefix, s, f, am, rm, d, r, w) do { \
  > 62		MMIO_F(prefix(RENDER_RING_BASE), s, f, am, rm, d, r, w); \
  > 63		MMIO_F(prefix(BLT_RING_BASE), s, f, am, rm, d, r, w); \
  > 64		MMIO_F(prefix(GEN6_BSD_RING_BASE), s, f, am, rm, d, r, w); \
  > 65		MMIO_F(prefix(VEBOX_RING_BASE), s, f, am, rm, d, r, w); \
  > 66		if (HAS_ENGINE(gvt->gt, VCS1)) \
  > 67			MMIO_F(prefix(GEN8_BSD2_RING_BASE), s, f, am, rm, d, r, w); \
    68	} while (0)
    69	
    70	#define MMIO_RING_D(prefix, d) \
    71		MMIO_RING_F(prefix, 4, 0, 0, 0, d, NULL, NULL)
    72	
    73	#define MMIO_RING_DFH(prefix, d, f, r, w) \
    74		MMIO_RING_F(prefix, 4, f, 0, 0, d, r, w)
    75	
    76	#define MMIO_RING_GM(prefix, d, r, w) \
    77		MMIO_RING_F(prefix, 4, F_GMADR, 0xFFFF0000, 0, d, r, w)
    78	
    79	#define MMIO_RING_GM_RDR(prefix, d, r, w) \
    80		MMIO_RING_F(prefix, 4, F_GMADR | F_CMD_ACCESS, 0xFFFF0000, 0, d, r, w)
    81	
    82	#define MMIO_RING_RO(prefix, d, f, rm, r, w) \
    83		MMIO_RING_F(prefix, 4, F_RO | f, 0, rm, d, r, w)
    84	
    85	static int intel_gvt_init_generic_mmio_info(struct intel_gvt *gvt)
    86	{
  > 87		struct drm_i915_private *dev_priv = gvt->gt->i915;
    88	
    89		int ret;
    90	
  > 91		MMIO_RING_DFH(RING_IMR, D_ALL, 0, NULL,
  > 92			intel_vgpu_reg_imr_handler);
    93	
  > 94		MMIO_DFH(SDEIMR, D_ALL, 0, NULL, intel_vgpu_reg_imr_handler);
  > 95		MMIO_DFH(SDEIER, D_ALL, 0, NULL, intel_vgpu_reg_ier_handler);
  > 96		MMIO_DFH(SDEIIR, D_ALL, 0, NULL, intel_vgpu_reg_iir_handler);
  > 97		MMIO_D(SDEISR, D_ALL);
    98	
  > 99		MMIO_RING_DFH(RING_HWSTAM, D_ALL, 0, NULL, NULL);
   100	
   101	
 > 102		MMIO_DH(GEN8_GAMW_ECO_DEV_RW_IA, D_BDW_PLUS, NULL,
 > 103			gamw_echo_dev_rw_ia_write);
   104	
 > 105		MMIO_GM_RDR(BSD_HWS_PGA_GEN7, D_ALL, NULL, NULL);
 > 106		MMIO_GM_RDR(BLT_HWS_PGA_GEN7, D_ALL, NULL, NULL);
 > 107		MMIO_GM_RDR(VEBOX_HWS_PGA_GEN7, D_ALL, NULL, NULL);
   108	
 > 109	#define RING_REG(base) _MMIO((base) + 0x28)
   110		MMIO_RING_DFH(RING_REG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   111	#undef RING_REG
   112	
   113	#define RING_REG(base) _MMIO((base) + 0x134)
   114		MMIO_RING_DFH(RING_REG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   115	#undef RING_REG
   116	
   117	#define RING_REG(base) _MMIO((base) + 0x6c)
 > 118		MMIO_RING_DFH(RING_REG, D_ALL, 0, mmio_read_from_hw, NULL);
   119	#undef RING_REG
 > 120		MMIO_DH(GEN7_SC_INSTDONE, D_BDW_PLUS, mmio_read_from_hw, NULL);
   121	
   122		MMIO_GM_RDR(_MMIO(0x2148), D_ALL, NULL, NULL);
 > 123		MMIO_GM_RDR(CCID(RENDER_RING_BASE), D_ALL, NULL, NULL);
   124		MMIO_GM_RDR(_MMIO(0x12198), D_ALL, NULL, NULL);
 > 125		MMIO_D(GEN7_CXT_SIZE, D_ALL);
   126	
 > 127		MMIO_RING_DFH(RING_TAIL, D_ALL, 0, NULL, NULL);
 > 128		MMIO_RING_DFH(RING_HEAD, D_ALL, 0, NULL, NULL);
 > 129		MMIO_RING_DFH(RING_CTL, D_ALL, 0, NULL, NULL);
 > 130		MMIO_RING_DFH(RING_ACTHD, D_ALL, 0, mmio_read_from_hw, NULL);
 > 131		MMIO_RING_GM(RING_START, D_ALL, NULL, NULL);
   132	
   133		/* RING MODE */
   134	#define RING_REG(base) _MMIO((base) + 0x29c)
   135		MMIO_RING_DFH(RING_REG, D_ALL,
 > 136			F_MODE_MASK | F_CMD_ACCESS | F_CMD_WRITE_PATCH, NULL,
 > 137			ring_mode_mmio_write);
   138	#undef RING_REG
   139	
 > 140		MMIO_RING_DFH(RING_MI_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   141			NULL, NULL);
 > 142		MMIO_RING_DFH(RING_INSTPM, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   143				NULL, NULL);
 > 144		MMIO_RING_DFH(RING_TIMESTAMP, D_ALL, F_CMD_ACCESS,
   145				mmio_read_from_hw, NULL);
 > 146		MMIO_RING_DFH(RING_TIMESTAMP_UDW, D_ALL, F_CMD_ACCESS,
   147				mmio_read_from_hw, NULL);
   148	
 > 149		MMIO_DFH(GEN7_GT_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 150		MMIO_DFH(CACHE_MODE_0_GEN7, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   151			NULL, NULL);
 > 152		MMIO_DFH(CACHE_MODE_1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 153		MMIO_DFH(CACHE_MODE_0, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   154		MMIO_DFH(_MMIO(0x2124), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   155	
   156		MMIO_DFH(_MMIO(0x20dc), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 157		MMIO_DFH(_3D_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   158		MMIO_DFH(_MMIO(0x2088), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 159		MMIO_DFH(FF_SLICE_CS_CHICKEN2, D_ALL,
   160			 F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   161		MMIO_DFH(_MMIO(0x2470), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 162		MMIO_DFH(GAM_ECOCHK, D_ALL, F_CMD_ACCESS, NULL, NULL);
 > 163		MMIO_DFH(GEN7_COMMON_SLICE_CHICKEN1, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   164			NULL, NULL);
 > 165		MMIO_DFH(COMMON_SLICE_CHICKEN2, D_ALL, F_MODE_MASK | F_CMD_ACCESS,
   166			 NULL, NULL);
   167		MMIO_DFH(_MMIO(0x9030), D_ALL, F_CMD_ACCESS, NULL, NULL);
   168		MMIO_DFH(_MMIO(0x20a0), D_ALL, F_CMD_ACCESS, NULL, NULL);
   169		MMIO_DFH(_MMIO(0x2420), D_ALL, F_CMD_ACCESS, NULL, NULL);
   170		MMIO_DFH(_MMIO(0x2430), D_ALL, F_CMD_ACCESS, NULL, NULL);
   171		MMIO_DFH(_MMIO(0x2434), D_ALL, F_CMD_ACCESS, NULL, NULL);
   172		MMIO_DFH(_MMIO(0x2438), D_ALL, F_CMD_ACCESS, NULL, NULL);
   173		MMIO_DFH(_MMIO(0x243c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   174		MMIO_DFH(_MMIO(0x7018), D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 175		MMIO_DFH(HALF_SLICE_CHICKEN3, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
 > 176		MMIO_DFH(GEN7_HALF_SLICE_CHICKEN1, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   177	
   178		/* display */
   179		MMIO_F(_MMIO(0x60220), 0x20, 0, 0, 0, D_ALL, NULL, NULL);
   180		MMIO_D(_MMIO(0x602a0), D_ALL);
   181	
   182		MMIO_D(_MMIO(0x65050), D_ALL);
   183		MMIO_D(_MMIO(0x650b4), D_ALL);
   184	
   185		MMIO_D(_MMIO(0xc4040), D_ALL);
 > 186		MMIO_D(DERRMR, D_ALL);
   187	
 > 188		MMIO_D(PIPEDSL(PIPE_A), D_ALL);
 > 189		MMIO_D(PIPEDSL(PIPE_B), D_ALL);
 > 190		MMIO_D(PIPEDSL(PIPE_C), D_ALL);
 > 191		MMIO_D(PIPEDSL(_PIPE_EDP), D_ALL);
   192	
 > 193		MMIO_DH(PIPECONF(PIPE_A), D_ALL, NULL, pipeconf_mmio_write);
   194		MMIO_DH(PIPECONF(PIPE_B), D_ALL, NULL, pipeconf_mmio_write);
   195		MMIO_DH(PIPECONF(PIPE_C), D_ALL, NULL, pipeconf_mmio_write);
   196		MMIO_DH(PIPECONF(_PIPE_EDP), D_ALL, NULL, pipeconf_mmio_write);
   197	
 > 198		MMIO_D(PIPESTAT(PIPE_A), D_ALL);
   199		MMIO_D(PIPESTAT(PIPE_B), D_ALL);
   200		MMIO_D(PIPESTAT(PIPE_C), D_ALL);
   201		MMIO_D(PIPESTAT(_PIPE_EDP), D_ALL);
   202	
 > 203		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_A), D_ALL);
   204		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_B), D_ALL);
   205		MMIO_D(PIPE_FLIPCOUNT_G4X(PIPE_C), D_ALL);
   206		MMIO_D(PIPE_FLIPCOUNT_G4X(_PIPE_EDP), D_ALL);
   207	
 > 208		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_A), D_ALL);
   209		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_B), D_ALL);
   210		MMIO_D(PIPE_FRMCOUNT_G4X(PIPE_C), D_ALL);
   211		MMIO_D(PIPE_FRMCOUNT_G4X(_PIPE_EDP), D_ALL);
   212	
 > 213		MMIO_D(CURCNTR(PIPE_A), D_ALL);
   214		MMIO_D(CURCNTR(PIPE_B), D_ALL);
   215		MMIO_D(CURCNTR(PIPE_C), D_ALL);
   216	
 > 217		MMIO_D(CURPOS(PIPE_A), D_ALL);
   218		MMIO_D(CURPOS(PIPE_B), D_ALL);
   219		MMIO_D(CURPOS(PIPE_C), D_ALL);
   220	
 > 221		MMIO_D(CURBASE(PIPE_A), D_ALL);
   222		MMIO_D(CURBASE(PIPE_B), D_ALL);
   223		MMIO_D(CURBASE(PIPE_C), D_ALL);
   224	
 > 225		MMIO_D(CUR_FBC_CTL(PIPE_A), D_ALL);
   226		MMIO_D(CUR_FBC_CTL(PIPE_B), D_ALL);
   227		MMIO_D(CUR_FBC_CTL(PIPE_C), D_ALL);
   228	
   229		MMIO_D(_MMIO(0x700ac), D_ALL);
   230		MMIO_D(_MMIO(0x710ac), D_ALL);
   231		MMIO_D(_MMIO(0x720ac), D_ALL);
   232	
   233		MMIO_D(_MMIO(0x70090), D_ALL);
   234		MMIO_D(_MMIO(0x70094), D_ALL);
   235		MMIO_D(_MMIO(0x70098), D_ALL);
   236		MMIO_D(_MMIO(0x7009c), D_ALL);
   237	
 > 238		MMIO_D(DSPCNTR(PIPE_A), D_ALL);
 > 239		MMIO_D(DSPADDR(PIPE_A), D_ALL);
 > 240		MMIO_D(DSPSTRIDE(PIPE_A), D_ALL);
 > 241		MMIO_D(DSPPOS(PIPE_A), D_ALL);
 > 242		MMIO_D(DSPSIZE(PIPE_A), D_ALL);
 > 243		MMIO_DH(DSPSURF(PIPE_A), D_ALL, NULL, pri_surf_mmio_write);
 > 244		MMIO_D(DSPOFFSET(PIPE_A), D_ALL);
 > 245		MMIO_D(DSPSURFLIVE(PIPE_A), D_ALL);
 > 246		MMIO_DH(REG_50080(PIPE_A, PLANE_PRIMARY), D_ALL, NULL,
 > 247			reg50080_mmio_write);
   248	
   249		MMIO_D(DSPCNTR(PIPE_B), D_ALL);
   250		MMIO_D(DSPADDR(PIPE_B), D_ALL);
   251		MMIO_D(DSPSTRIDE(PIPE_B), D_ALL);
   252		MMIO_D(DSPPOS(PIPE_B), D_ALL);
   253		MMIO_D(DSPSIZE(PIPE_B), D_ALL);
   254		MMIO_DH(DSPSURF(PIPE_B), D_ALL, NULL, pri_surf_mmio_write);
   255		MMIO_D(DSPOFFSET(PIPE_B), D_ALL);
   256		MMIO_D(DSPSURFLIVE(PIPE_B), D_ALL);
   257		MMIO_DH(REG_50080(PIPE_B, PLANE_PRIMARY), D_ALL, NULL,
   258			reg50080_mmio_write);
   259	
   260		MMIO_D(DSPCNTR(PIPE_C), D_ALL);
   261		MMIO_D(DSPADDR(PIPE_C), D_ALL);
   262		MMIO_D(DSPSTRIDE(PIPE_C), D_ALL);
   263		MMIO_D(DSPPOS(PIPE_C), D_ALL);
   264		MMIO_D(DSPSIZE(PIPE_C), D_ALL);
   265		MMIO_DH(DSPSURF(PIPE_C), D_ALL, NULL, pri_surf_mmio_write);
   266		MMIO_D(DSPOFFSET(PIPE_C), D_ALL);
   267		MMIO_D(DSPSURFLIVE(PIPE_C), D_ALL);
   268		MMIO_DH(REG_50080(PIPE_C, PLANE_PRIMARY), D_ALL, NULL,
   269			reg50080_mmio_write);
   270	
 > 271		MMIO_D(SPRCTL(PIPE_A), D_ALL);
 > 272		MMIO_D(SPRLINOFF(PIPE_A), D_ALL);
 > 273		MMIO_D(SPRSTRIDE(PIPE_A), D_ALL);
 > 274		MMIO_D(SPRPOS(PIPE_A), D_ALL);
 > 275		MMIO_D(SPRSIZE(PIPE_A), D_ALL);
 > 276		MMIO_D(SPRKEYVAL(PIPE_A), D_ALL);
 > 277		MMIO_D(SPRKEYMSK(PIPE_A), D_ALL);
 > 278		MMIO_DH(SPRSURF(PIPE_A), D_ALL, NULL, spr_surf_mmio_write);
 > 279		MMIO_D(SPRKEYMAX(PIPE_A), D_ALL);
 > 280		MMIO_D(SPROFFSET(PIPE_A), D_ALL);
 > 281		MMIO_D(SPRSCALE(PIPE_A), D_ALL);
 > 282		MMIO_D(SPRSURFLIVE(PIPE_A), D_ALL);
 > 283		MMIO_DH(REG_50080(PIPE_A, PLANE_SPRITE0), D_ALL, NULL,
   284			reg50080_mmio_write);
   285	
   286		MMIO_D(SPRCTL(PIPE_B), D_ALL);
   287		MMIO_D(SPRLINOFF(PIPE_B), D_ALL);
   288		MMIO_D(SPRSTRIDE(PIPE_B), D_ALL);
   289		MMIO_D(SPRPOS(PIPE_B), D_ALL);
   290		MMIO_D(SPRSIZE(PIPE_B), D_ALL);
   291		MMIO_D(SPRKEYVAL(PIPE_B), D_ALL);
   292		MMIO_D(SPRKEYMSK(PIPE_B), D_ALL);
   293		MMIO_DH(SPRSURF(PIPE_B), D_ALL, NULL, spr_surf_mmio_write);
   294		MMIO_D(SPRKEYMAX(PIPE_B), D_ALL);
   295		MMIO_D(SPROFFSET(PIPE_B), D_ALL);
   296		MMIO_D(SPRSCALE(PIPE_B), D_ALL);
   297		MMIO_D(SPRSURFLIVE(PIPE_B), D_ALL);
   298		MMIO_DH(REG_50080(PIPE_B, PLANE_SPRITE0), D_ALL, NULL,
   299			reg50080_mmio_write);
   300	
   301		MMIO_D(SPRCTL(PIPE_C), D_ALL);
   302		MMIO_D(SPRLINOFF(PIPE_C), D_ALL);
   303		MMIO_D(SPRSTRIDE(PIPE_C), D_ALL);
   304		MMIO_D(SPRPOS(PIPE_C), D_ALL);
   305		MMIO_D(SPRSIZE(PIPE_C), D_ALL);
   306		MMIO_D(SPRKEYVAL(PIPE_C), D_ALL);
   307		MMIO_D(SPRKEYMSK(PIPE_C), D_ALL);
   308		MMIO_DH(SPRSURF(PIPE_C), D_ALL, NULL, spr_surf_mmio_write);
   309		MMIO_D(SPRKEYMAX(PIPE_C), D_ALL);
   310		MMIO_D(SPROFFSET(PIPE_C), D_ALL);
   311		MMIO_D(SPRSCALE(PIPE_C), D_ALL);
   312		MMIO_D(SPRSURFLIVE(PIPE_C), D_ALL);
   313		MMIO_DH(REG_50080(PIPE_C, PLANE_SPRITE0), D_ALL, NULL,
   314			reg50080_mmio_write);
   315	
   316		MMIO_D(HTOTAL(TRANSCODER_A), D_ALL);
   317		MMIO_D(HBLANK(TRANSCODER_A), D_ALL);
   318		MMIO_D(HSYNC(TRANSCODER_A), D_ALL);
   319		MMIO_D(VTOTAL(TRANSCODER_A), D_ALL);
   320		MMIO_D(VBLANK(TRANSCODER_A), D_ALL);
   321		MMIO_D(VSYNC(TRANSCODER_A), D_ALL);
   322		MMIO_D(BCLRPAT(TRANSCODER_A), D_ALL);
   323		MMIO_D(VSYNCSHIFT(TRANSCODER_A), D_ALL);
   324		MMIO_D(PIPESRC(TRANSCODER_A), D_ALL);
   325	
   326		MMIO_D(HTOTAL(TRANSCODER_B), D_ALL);
   327		MMIO_D(HBLANK(TRANSCODER_B), D_ALL);
   328		MMIO_D(HSYNC(TRANSCODER_B), D_ALL);
   329		MMIO_D(VTOTAL(TRANSCODER_B), D_ALL);
   330		MMIO_D(VBLANK(TRANSCODER_B), D_ALL);
   331		MMIO_D(VSYNC(TRANSCODER_B), D_ALL);
   332		MMIO_D(BCLRPAT(TRANSCODER_B), D_ALL);
   333		MMIO_D(VSYNCSHIFT(TRANSCODER_B), D_ALL);
   334		MMIO_D(PIPESRC(TRANSCODER_B), D_ALL);
   335	
   336		MMIO_D(HTOTAL(TRANSCODER_C), D_ALL);
   337		MMIO_D(HBLANK(TRANSCODER_C), D_ALL);
   338		MMIO_D(HSYNC(TRANSCODER_C), D_ALL);
   339		MMIO_D(VTOTAL(TRANSCODER_C), D_ALL);
   340		MMIO_D(VBLANK(TRANSCODER_C), D_ALL);
   341		MMIO_D(VSYNC(TRANSCODER_C), D_ALL);
   342		MMIO_D(BCLRPAT(TRANSCODER_C), D_ALL);
   343		MMIO_D(VSYNCSHIFT(TRANSCODER_C), D_ALL);
   344		MMIO_D(PIPESRC(TRANSCODER_C), D_ALL);
   345	
   346		MMIO_D(HTOTAL(TRANSCODER_EDP), D_ALL);
   347		MMIO_D(HBLANK(TRANSCODER_EDP), D_ALL);
   348		MMIO_D(HSYNC(TRANSCODER_EDP), D_ALL);
   349		MMIO_D(VTOTAL(TRANSCODER_EDP), D_ALL);
   350		MMIO_D(VBLANK(TRANSCODER_EDP), D_ALL);
   351		MMIO_D(VSYNC(TRANSCODER_EDP), D_ALL);
   352		MMIO_D(BCLRPAT(TRANSCODER_EDP), D_ALL);
   353		MMIO_D(VSYNCSHIFT(TRANSCODER_EDP), D_ALL);
   354	
   355		MMIO_D(PIPE_DATA_M1(TRANSCODER_A), D_ALL);
   356		MMIO_D(PIPE_DATA_N1(TRANSCODER_A), D_ALL);
   357		MMIO_D(PIPE_DATA_M2(TRANSCODER_A), D_ALL);
   358		MMIO_D(PIPE_DATA_N2(TRANSCODER_A), D_ALL);
   359		MMIO_D(PIPE_LINK_M1(TRANSCODER_A), D_ALL);
   360		MMIO_D(PIPE_LINK_N1(TRANSCODER_A), D_ALL);
   361		MMIO_D(PIPE_LINK_M2(TRANSCODER_A), D_ALL);
   362		MMIO_D(PIPE_LINK_N2(TRANSCODER_A), D_ALL);
   363	
   364		MMIO_D(PIPE_DATA_M1(TRANSCODER_B), D_ALL);
   365		MMIO_D(PIPE_DATA_N1(TRANSCODER_B), D_ALL);
   366		MMIO_D(PIPE_DATA_M2(TRANSCODER_B), D_ALL);
   367		MMIO_D(PIPE_DATA_N2(TRANSCODER_B), D_ALL);
   368		MMIO_D(PIPE_LINK_M1(TRANSCODER_B), D_ALL);
   369		MMIO_D(PIPE_LINK_N1(TRANSCODER_B), D_ALL);
   370		MMIO_D(PIPE_LINK_M2(TRANSCODER_B), D_ALL);
   371		MMIO_D(PIPE_LINK_N2(TRANSCODER_B), D_ALL);
   372	
   373		MMIO_D(PIPE_DATA_M1(TRANSCODER_C), D_ALL);
   374		MMIO_D(PIPE_DATA_N1(TRANSCODER_C), D_ALL);
   375		MMIO_D(PIPE_DATA_M2(TRANSCODER_C), D_ALL);
   376		MMIO_D(PIPE_DATA_N2(TRANSCODER_C), D_ALL);
   377		MMIO_D(PIPE_LINK_M1(TRANSCODER_C), D_ALL);
   378		MMIO_D(PIPE_LINK_N1(TRANSCODER_C), D_ALL);
   379		MMIO_D(PIPE_LINK_M2(TRANSCODER_C), D_ALL);
   380		MMIO_D(PIPE_LINK_N2(TRANSCODER_C), D_ALL);
   381	
   382		MMIO_D(PIPE_DATA_M1(TRANSCODER_EDP), D_ALL);
   383		MMIO_D(PIPE_DATA_N1(TRANSCODER_EDP), D_ALL);
   384		MMIO_D(PIPE_DATA_M2(TRANSCODER_EDP), D_ALL);
   385		MMIO_D(PIPE_DATA_N2(TRANSCODER_EDP), D_ALL);
   386		MMIO_D(PIPE_LINK_M1(TRANSCODER_EDP), D_ALL);
   387		MMIO_D(PIPE_LINK_N1(TRANSCODER_EDP), D_ALL);
   388		MMIO_D(PIPE_LINK_M2(TRANSCODER_EDP), D_ALL);
   389		MMIO_D(PIPE_LINK_N2(TRANSCODER_EDP), D_ALL);
   390	
   391		MMIO_D(PF_CTL(PIPE_A), D_ALL);
   392		MMIO_D(PF_WIN_SZ(PIPE_A), D_ALL);
   393		MMIO_D(PF_WIN_POS(PIPE_A), D_ALL);
   394		MMIO_D(PF_VSCALE(PIPE_A), D_ALL);
   395		MMIO_D(PF_HSCALE(PIPE_A), D_ALL);
   396	
   397		MMIO_D(PF_CTL(PIPE_B), D_ALL);
   398		MMIO_D(PF_WIN_SZ(PIPE_B), D_ALL);
   399		MMIO_D(PF_WIN_POS(PIPE_B), D_ALL);
   400		MMIO_D(PF_VSCALE(PIPE_B), D_ALL);
   401		MMIO_D(PF_HSCALE(PIPE_B), D_ALL);
   402	
   403		MMIO_D(PF_CTL(PIPE_C), D_ALL);
   404		MMIO_D(PF_WIN_SZ(PIPE_C), D_ALL);
   405		MMIO_D(PF_WIN_POS(PIPE_C), D_ALL);
   406		MMIO_D(PF_VSCALE(PIPE_C), D_ALL);
   407		MMIO_D(PF_HSCALE(PIPE_C), D_ALL);
   408	
   409		MMIO_D(WM0_PIPE_ILK(PIPE_A), D_ALL);
   410		MMIO_D(WM0_PIPE_ILK(PIPE_B), D_ALL);
   411		MMIO_D(WM0_PIPE_ILK(PIPE_C), D_ALL);
   412		MMIO_D(WM1_LP_ILK, D_ALL);
   413		MMIO_D(WM2_LP_ILK, D_ALL);
   414		MMIO_D(WM3_LP_ILK, D_ALL);
   415		MMIO_D(WM1S_LP_ILK, D_ALL);
   416		MMIO_D(WM2S_LP_IVB, D_ALL);
   417		MMIO_D(WM3S_LP_IVB, D_ALL);
   418	
   419		MMIO_D(BLC_PWM_CPU_CTL2, D_ALL);
   420		MMIO_D(BLC_PWM_CPU_CTL, D_ALL);
   421		MMIO_D(BLC_PWM_PCH_CTL1, D_ALL);
   422		MMIO_D(BLC_PWM_PCH_CTL2, D_ALL);
   423	
   424		MMIO_D(_MMIO(0x48268), D_ALL);
   425	
   426		MMIO_F(PCH_GMBUS0, 4 * 4, 0, 0, 0, D_ALL, gmbus_mmio_read,
   427			gmbus_mmio_write);
   428		MMIO_F(PCH_GPIO_BASE, 6 * 4, F_UNALIGN, 0, 0, D_ALL, NULL, NULL);
   429		MMIO_F(_MMIO(0xe4f00), 0x28, 0, 0, 0, D_ALL, NULL, NULL);
   430	
   431		MMIO_F(_MMIO(_PCH_DPB_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   432			dp_aux_ch_ctl_mmio_write);
   433		MMIO_F(_MMIO(_PCH_DPC_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   434			dp_aux_ch_ctl_mmio_write);
   435		MMIO_F(_MMIO(_PCH_DPD_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_PRE_SKL, NULL,
   436			dp_aux_ch_ctl_mmio_write);
   437	
   438		MMIO_DH(PCH_ADPA, D_PRE_SKL, NULL, pch_adpa_mmio_write);
   439	
   440		MMIO_DH(_MMIO(_PCH_TRANSACONF), D_ALL, NULL, transconf_mmio_write);
   441		MMIO_DH(_MMIO(_PCH_TRANSBCONF), D_ALL, NULL, transconf_mmio_write);
   442	
   443		MMIO_DH(FDI_RX_IIR(PIPE_A), D_ALL, NULL, fdi_rx_iir_mmio_write);
   444		MMIO_DH(FDI_RX_IIR(PIPE_B), D_ALL, NULL, fdi_rx_iir_mmio_write);
   445		MMIO_DH(FDI_RX_IIR(PIPE_C), D_ALL, NULL, fdi_rx_iir_mmio_write);
   446		MMIO_DH(FDI_RX_IMR(PIPE_A), D_ALL, NULL, update_fdi_rx_iir_status);
   447		MMIO_DH(FDI_RX_IMR(PIPE_B), D_ALL, NULL, update_fdi_rx_iir_status);
   448		MMIO_DH(FDI_RX_IMR(PIPE_C), D_ALL, NULL, update_fdi_rx_iir_status);
   449		MMIO_DH(FDI_RX_CTL(PIPE_A), D_ALL, NULL, update_fdi_rx_iir_status);
   450		MMIO_DH(FDI_RX_CTL(PIPE_B), D_ALL, NULL, update_fdi_rx_iir_status);
   451		MMIO_DH(FDI_RX_CTL(PIPE_C), D_ALL, NULL, update_fdi_rx_iir_status);
   452	
   453		MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_A), D_ALL);
   454		MMIO_D(_MMIO(_PCH_TRANS_HBLANK_A), D_ALL);
   455		MMIO_D(_MMIO(_PCH_TRANS_HSYNC_A), D_ALL);
   456		MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_A), D_ALL);
   457		MMIO_D(_MMIO(_PCH_TRANS_VBLANK_A), D_ALL);
   458		MMIO_D(_MMIO(_PCH_TRANS_VSYNC_A), D_ALL);
   459		MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_A), D_ALL);
   460	
   461		MMIO_D(_MMIO(_PCH_TRANS_HTOTAL_B), D_ALL);
   462		MMIO_D(_MMIO(_PCH_TRANS_HBLANK_B), D_ALL);
   463		MMIO_D(_MMIO(_PCH_TRANS_HSYNC_B), D_ALL);
   464		MMIO_D(_MMIO(_PCH_TRANS_VTOTAL_B), D_ALL);
   465		MMIO_D(_MMIO(_PCH_TRANS_VBLANK_B), D_ALL);
   466		MMIO_D(_MMIO(_PCH_TRANS_VSYNC_B), D_ALL);
   467		MMIO_D(_MMIO(_PCH_TRANS_VSYNCSHIFT_B), D_ALL);
   468	
   469		MMIO_D(_MMIO(_PCH_TRANSA_DATA_M1), D_ALL);
   470		MMIO_D(_MMIO(_PCH_TRANSA_DATA_N1), D_ALL);
   471		MMIO_D(_MMIO(_PCH_TRANSA_DATA_M2), D_ALL);
   472		MMIO_D(_MMIO(_PCH_TRANSA_DATA_N2), D_ALL);
   473		MMIO_D(_MMIO(_PCH_TRANSA_LINK_M1), D_ALL);
   474		MMIO_D(_MMIO(_PCH_TRANSA_LINK_N1), D_ALL);
   475		MMIO_D(_MMIO(_PCH_TRANSA_LINK_M2), D_ALL);
   476		MMIO_D(_MMIO(_PCH_TRANSA_LINK_N2), D_ALL);
   477	
   478		MMIO_D(TRANS_DP_CTL(PIPE_A), D_ALL);
   479		MMIO_D(TRANS_DP_CTL(PIPE_B), D_ALL);
   480		MMIO_D(TRANS_DP_CTL(PIPE_C), D_ALL);
   481	
   482		MMIO_D(TVIDEO_DIP_CTL(PIPE_A), D_ALL);
   483		MMIO_D(TVIDEO_DIP_DATA(PIPE_A), D_ALL);
   484		MMIO_D(TVIDEO_DIP_GCP(PIPE_A), D_ALL);
   485	
   486		MMIO_D(TVIDEO_DIP_CTL(PIPE_B), D_ALL);
   487		MMIO_D(TVIDEO_DIP_DATA(PIPE_B), D_ALL);
   488		MMIO_D(TVIDEO_DIP_GCP(PIPE_B), D_ALL);
   489	
   490		MMIO_D(TVIDEO_DIP_CTL(PIPE_C), D_ALL);
   491		MMIO_D(TVIDEO_DIP_DATA(PIPE_C), D_ALL);
   492		MMIO_D(TVIDEO_DIP_GCP(PIPE_C), D_ALL);
   493	
   494		MMIO_D(_MMIO(_FDI_RXA_MISC), D_ALL);
   495		MMIO_D(_MMIO(_FDI_RXB_MISC), D_ALL);
   496		MMIO_D(_MMIO(_FDI_RXA_TUSIZE1), D_ALL);
   497		MMIO_D(_MMIO(_FDI_RXA_TUSIZE2), D_ALL);
   498		MMIO_D(_MMIO(_FDI_RXB_TUSIZE1), D_ALL);
   499		MMIO_D(_MMIO(_FDI_RXB_TUSIZE2), D_ALL);
   500	
   501		MMIO_DH(PCH_PP_CONTROL, D_ALL, NULL, pch_pp_control_mmio_write);
   502		MMIO_D(PCH_PP_DIVISOR, D_ALL);
   503		MMIO_D(PCH_PP_STATUS,  D_ALL);
   504		MMIO_D(PCH_LVDS, D_ALL);
   505		MMIO_D(_MMIO(_PCH_DPLL_A), D_ALL);
   506		MMIO_D(_MMIO(_PCH_DPLL_B), D_ALL);
   507		MMIO_D(_MMIO(_PCH_FPA0), D_ALL);
   508		MMIO_D(_MMIO(_PCH_FPA1), D_ALL);
   509		MMIO_D(_MMIO(_PCH_FPB0), D_ALL);
   510		MMIO_D(_MMIO(_PCH_FPB1), D_ALL);
   511		MMIO_D(PCH_DREF_CONTROL, D_ALL);
   512		MMIO_D(PCH_RAWCLK_FREQ, D_ALL);
   513		MMIO_D(PCH_DPLL_SEL, D_ALL);
   514	
   515		MMIO_D(_MMIO(0x61208), D_ALL);
   516		MMIO_D(_MMIO(0x6120c), D_ALL);
   517		MMIO_D(PCH_PP_ON_DELAYS, D_ALL);
   518		MMIO_D(PCH_PP_OFF_DELAYS, D_ALL);
   519	
   520		MMIO_DH(_MMIO(0xe651c), D_ALL, dpy_reg_mmio_read, NULL);
   521		MMIO_DH(_MMIO(0xe661c), D_ALL, dpy_reg_mmio_read, NULL);
   522		MMIO_DH(_MMIO(0xe671c), D_ALL, dpy_reg_mmio_read, NULL);
   523		MMIO_DH(_MMIO(0xe681c), D_ALL, dpy_reg_mmio_read, NULL);
   524		MMIO_DH(_MMIO(0xe6c04), D_ALL, dpy_reg_mmio_read, NULL);
   525		MMIO_DH(_MMIO(0xe6e1c), D_ALL, dpy_reg_mmio_read, NULL);
   526	
   527		MMIO_RO(PCH_PORT_HOTPLUG, D_ALL, 0,
   528			PORTA_HOTPLUG_STATUS_MASK
   529			| PORTB_HOTPLUG_STATUS_MASK
   530			| PORTC_HOTPLUG_STATUS_MASK
   531			| PORTD_HOTPLUG_STATUS_MASK,
   532			NULL, NULL);
   533	
   534		MMIO_DH(LCPLL_CTL, D_ALL, NULL, lcpll_ctl_mmio_write);
   535		MMIO_D(FUSE_STRAP, D_ALL);
   536		MMIO_D(DIGITAL_PORT_HOTPLUG_CNTRL, D_ALL);
   537	
   538		MMIO_D(DISP_ARB_CTL, D_ALL);
   539		MMIO_D(DISP_ARB_CTL2, D_ALL);
   540	
   541		MMIO_D(ILK_DISPLAY_CHICKEN1, D_ALL);
   542		MMIO_D(ILK_DISPLAY_CHICKEN2, D_ALL);
   543		MMIO_D(ILK_DSPCLK_GATE_D, D_ALL);
   544	
   545		MMIO_D(SOUTH_CHICKEN1, D_ALL);
   546		MMIO_DH(SOUTH_CHICKEN2, D_ALL, NULL, south_chicken2_mmio_write);
   547		MMIO_D(_MMIO(_TRANSA_CHICKEN1), D_ALL);
   548		MMIO_D(_MMIO(_TRANSB_CHICKEN1), D_ALL);
   549		MMIO_D(SOUTH_DSPCLK_GATE_D, D_ALL);
   550		MMIO_D(_MMIO(_TRANSA_CHICKEN2), D_ALL);
   551		MMIO_D(_MMIO(_TRANSB_CHICKEN2), D_ALL);
   552	
   553		MMIO_D(ILK_DPFC_CB_BASE, D_ALL);
   554		MMIO_D(ILK_DPFC_CONTROL, D_ALL);
   555		MMIO_D(ILK_DPFC_RECOMP_CTL, D_ALL);
   556		MMIO_D(ILK_DPFC_STATUS, D_ALL);
   557		MMIO_D(ILK_DPFC_FENCE_YOFF, D_ALL);
   558		MMIO_D(ILK_DPFC_CHICKEN, D_ALL);
   559		MMIO_D(ILK_FBC_RT_BASE, D_ALL);
   560	
   561		MMIO_D(IPS_CTL, D_ALL);
   562	
   563		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_A), D_ALL);
   564		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_A), D_ALL);
   565		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_A), D_ALL);
   566		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_A), D_ALL);
   567		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_A), D_ALL);
   568		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_A), D_ALL);
   569		MMIO_D(PIPE_CSC_MODE(PIPE_A), D_ALL);
   570		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_A), D_ALL);
   571		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_A), D_ALL);
   572		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_A), D_ALL);
   573		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_A), D_ALL);
   574		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_A), D_ALL);
   575		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_A), D_ALL);
   576	
   577		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_B), D_ALL);
   578		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_B), D_ALL);
   579		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_B), D_ALL);
   580		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_B), D_ALL);
   581		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_B), D_ALL);
   582		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_B), D_ALL);
   583		MMIO_D(PIPE_CSC_MODE(PIPE_B), D_ALL);
   584		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_B), D_ALL);
   585		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_B), D_ALL);
   586		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_B), D_ALL);
   587		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_B), D_ALL);
   588		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_B), D_ALL);
   589		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_B), D_ALL);
   590	
   591		MMIO_D(PIPE_CSC_COEFF_RY_GY(PIPE_C), D_ALL);
   592		MMIO_D(PIPE_CSC_COEFF_BY(PIPE_C), D_ALL);
   593		MMIO_D(PIPE_CSC_COEFF_RU_GU(PIPE_C), D_ALL);
   594		MMIO_D(PIPE_CSC_COEFF_BU(PIPE_C), D_ALL);
   595		MMIO_D(PIPE_CSC_COEFF_RV_GV(PIPE_C), D_ALL);
   596		MMIO_D(PIPE_CSC_COEFF_BV(PIPE_C), D_ALL);
   597		MMIO_D(PIPE_CSC_MODE(PIPE_C), D_ALL);
   598		MMIO_D(PIPE_CSC_PREOFF_HI(PIPE_C), D_ALL);
   599		MMIO_D(PIPE_CSC_PREOFF_ME(PIPE_C), D_ALL);
   600		MMIO_D(PIPE_CSC_PREOFF_LO(PIPE_C), D_ALL);
   601		MMIO_D(PIPE_CSC_POSTOFF_HI(PIPE_C), D_ALL);
   602		MMIO_D(PIPE_CSC_POSTOFF_ME(PIPE_C), D_ALL);
   603		MMIO_D(PIPE_CSC_POSTOFF_LO(PIPE_C), D_ALL);
   604	
   605		MMIO_D(PREC_PAL_INDEX(PIPE_A), D_ALL);
   606		MMIO_D(PREC_PAL_DATA(PIPE_A), D_ALL);
   607		MMIO_F(PREC_PAL_GC_MAX(PIPE_A, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   608	
   609		MMIO_D(PREC_PAL_INDEX(PIPE_B), D_ALL);
   610		MMIO_D(PREC_PAL_DATA(PIPE_B), D_ALL);
   611		MMIO_F(PREC_PAL_GC_MAX(PIPE_B, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   612	
   613		MMIO_D(PREC_PAL_INDEX(PIPE_C), D_ALL);
   614		MMIO_D(PREC_PAL_DATA(PIPE_C), D_ALL);
   615		MMIO_F(PREC_PAL_GC_MAX(PIPE_C, 0), 4 * 3, 0, 0, 0, D_ALL, NULL, NULL);
   616	
   617		MMIO_D(_MMIO(0x60110), D_ALL);
   618		MMIO_D(_MMIO(0x61110), D_ALL);
   619		MMIO_F(_MMIO(0x70400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   620		MMIO_F(_MMIO(0x71400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   621		MMIO_F(_MMIO(0x72400), 0x40, 0, 0, 0, D_ALL, NULL, NULL);
   622		MMIO_F(_MMIO(0x70440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   623		MMIO_F(_MMIO(0x71440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   624		MMIO_F(_MMIO(0x72440), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   625		MMIO_F(_MMIO(0x7044c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   626		MMIO_F(_MMIO(0x7144c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   627		MMIO_F(_MMIO(0x7244c), 0xc, 0, 0, 0, D_PRE_SKL, NULL, NULL);
   628	
   629		MMIO_D(WM_LINETIME(PIPE_A), D_ALL);
   630		MMIO_D(WM_LINETIME(PIPE_B), D_ALL);
   631		MMIO_D(WM_LINETIME(PIPE_C), D_ALL);
   632		MMIO_D(SPLL_CTL, D_ALL);
   633		MMIO_D(_MMIO(_WRPLL_CTL1), D_ALL);
   634		MMIO_D(_MMIO(_WRPLL_CTL2), D_ALL);
   635		MMIO_D(PORT_CLK_SEL(PORT_A), D_ALL);
   636		MMIO_D(PORT_CLK_SEL(PORT_B), D_ALL);
   637		MMIO_D(PORT_CLK_SEL(PORT_C), D_ALL);
   638		MMIO_D(PORT_CLK_SEL(PORT_D), D_ALL);
   639		MMIO_D(PORT_CLK_SEL(PORT_E), D_ALL);
   640		MMIO_D(TRANS_CLK_SEL(TRANSCODER_A), D_ALL);
   641		MMIO_D(TRANS_CLK_SEL(TRANSCODER_B), D_ALL);
   642		MMIO_D(TRANS_CLK_SEL(TRANSCODER_C), D_ALL);
   643	
   644		MMIO_D(HSW_NDE_RSTWRN_OPT, D_ALL);
   645		MMIO_D(_MMIO(0x46508), D_ALL);
   646	
   647		MMIO_D(_MMIO(0x49080), D_ALL);
   648		MMIO_D(_MMIO(0x49180), D_ALL);
   649		MMIO_D(_MMIO(0x49280), D_ALL);
   650	
   651		MMIO_F(_MMIO(0x49090), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   652		MMIO_F(_MMIO(0x49190), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   653		MMIO_F(_MMIO(0x49290), 0x14, 0, 0, 0, D_ALL, NULL, NULL);
   654	
   655		MMIO_D(GAMMA_MODE(PIPE_A), D_ALL);
   656		MMIO_D(GAMMA_MODE(PIPE_B), D_ALL);
   657		MMIO_D(GAMMA_MODE(PIPE_C), D_ALL);
   658	
   659		MMIO_D(PIPE_MULT(PIPE_A), D_ALL);
   660		MMIO_D(PIPE_MULT(PIPE_B), D_ALL);
   661		MMIO_D(PIPE_MULT(PIPE_C), D_ALL);
   662	
   663		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_A), D_ALL);
   664		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_B), D_ALL);
   665		MMIO_D(HSW_TVIDEO_DIP_CTL(TRANSCODER_C), D_ALL);
   666	
   667		MMIO_DH(SFUSE_STRAP, D_ALL, NULL, NULL);
   668		MMIO_D(SBI_ADDR, D_ALL);
   669		MMIO_DH(SBI_DATA, D_ALL, sbi_data_mmio_read, NULL);
   670		MMIO_DH(SBI_CTL_STAT, D_ALL, NULL, sbi_ctl_mmio_write);
   671		MMIO_D(PIXCLK_GATE, D_ALL);
   672	
   673		MMIO_F(_MMIO(_DPA_AUX_CH_CTL), 6 * 4, 0, 0, 0, D_ALL, NULL,
   674			dp_aux_ch_ctl_mmio_write);
   675	
   676		MMIO_DH(DDI_BUF_CTL(PORT_A), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   677		MMIO_DH(DDI_BUF_CTL(PORT_B), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   678		MMIO_DH(DDI_BUF_CTL(PORT_C), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   679		MMIO_DH(DDI_BUF_CTL(PORT_D), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   680		MMIO_DH(DDI_BUF_CTL(PORT_E), D_ALL, NULL, ddi_buf_ctl_mmio_write);
   681	
   682		MMIO_DH(DP_TP_CTL(PORT_A), D_ALL, NULL, dp_tp_ctl_mmio_write);
   683		MMIO_DH(DP_TP_CTL(PORT_B), D_ALL, NULL, dp_tp_ctl_mmio_write);
   684		MMIO_DH(DP_TP_CTL(PORT_C), D_ALL, NULL, dp_tp_ctl_mmio_write);
   685		MMIO_DH(DP_TP_CTL(PORT_D), D_ALL, NULL, dp_tp_ctl_mmio_write);
   686		MMIO_DH(DP_TP_CTL(PORT_E), D_ALL, NULL, dp_tp_ctl_mmio_write);
   687	
   688		MMIO_DH(DP_TP_STATUS(PORT_A), D_ALL, NULL, dp_tp_status_mmio_write);
   689		MMIO_DH(DP_TP_STATUS(PORT_B), D_ALL, NULL, dp_tp_status_mmio_write);
   690		MMIO_DH(DP_TP_STATUS(PORT_C), D_ALL, NULL, dp_tp_status_mmio_write);
   691		MMIO_DH(DP_TP_STATUS(PORT_D), D_ALL, NULL, dp_tp_status_mmio_write);
   692		MMIO_DH(DP_TP_STATUS(PORT_E), D_ALL, NULL, NULL);
   693	
   694		MMIO_F(_MMIO(_DDI_BUF_TRANS_A), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   695		MMIO_F(_MMIO(0x64e60), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   696		MMIO_F(_MMIO(0x64eC0), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   697		MMIO_F(_MMIO(0x64f20), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   698		MMIO_F(_MMIO(0x64f80), 0x50, 0, 0, 0, D_ALL, NULL, NULL);
   699	
   700		MMIO_D(HSW_AUD_CFG(PIPE_A), D_ALL);
   701		MMIO_D(HSW_AUD_PIN_ELD_CP_VLD, D_ALL);
   702		MMIO_D(HSW_AUD_MISC_CTRL(PIPE_A), D_ALL);
   703	
   704		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_A), D_ALL, NULL, NULL);
   705		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_B), D_ALL, NULL, NULL);
   706		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_C), D_ALL, NULL, NULL);
   707		MMIO_DH(_MMIO(_TRANS_DDI_FUNC_CTL_EDP), D_ALL, NULL, NULL);
   708	
   709		MMIO_D(_MMIO(_TRANSA_MSA_MISC), D_ALL);
   710		MMIO_D(_MMIO(_TRANSB_MSA_MISC), D_ALL);
   711		MMIO_D(_MMIO(_TRANSC_MSA_MISC), D_ALL);
   712		MMIO_D(_MMIO(_TRANS_EDP_MSA_MISC), D_ALL);
   713	
   714		MMIO_DH(FORCEWAKE, D_ALL, NULL, NULL);
   715		MMIO_D(FORCEWAKE_ACK, D_ALL);
   716		MMIO_D(GEN6_GT_CORE_STATUS, D_ALL);
   717		MMIO_D(GEN6_GT_THREAD_STATUS_REG, D_ALL);
   718		MMIO_DFH(GTFIFODBG, D_ALL, F_CMD_ACCESS, NULL, NULL);
   719		MMIO_DFH(GTFIFOCTL, D_ALL, F_CMD_ACCESS, NULL, NULL);
   720		MMIO_DH(FORCEWAKE_MT, D_PRE_SKL, NULL, mul_force_wake_write);
   721		MMIO_DH(FORCEWAKE_ACK_HSW, D_BDW, NULL, NULL);
   722		MMIO_D(ECOBUS, D_ALL);
   723		MMIO_DH(GEN6_RC_CONTROL, D_ALL, NULL, NULL);
   724		MMIO_DH(GEN6_RC_STATE, D_ALL, NULL, NULL);
   725		MMIO_D(GEN6_RPNSWREQ, D_ALL);
   726		MMIO_D(GEN6_RC_VIDEO_FREQ, D_ALL);
   727		MMIO_D(GEN6_RP_DOWN_TIMEOUT, D_ALL);
   728		MMIO_D(GEN6_RP_INTERRUPT_LIMITS, D_ALL);
   729		MMIO_D(GEN6_RPSTAT1, D_ALL);
   730		MMIO_D(GEN6_RP_CONTROL, D_ALL);
   731		MMIO_D(GEN6_RP_UP_THRESHOLD, D_ALL);
   732		MMIO_D(GEN6_RP_DOWN_THRESHOLD, D_ALL);
   733		MMIO_D(GEN6_RP_CUR_UP_EI, D_ALL);
   734		MMIO_D(GEN6_RP_CUR_UP, D_ALL);
   735		MMIO_D(GEN6_RP_PREV_UP, D_ALL);
   736		MMIO_D(GEN6_RP_CUR_DOWN_EI, D_ALL);
   737		MMIO_D(GEN6_RP_CUR_DOWN, D_ALL);
   738		MMIO_D(GEN6_RP_PREV_DOWN, D_ALL);
   739		MMIO_D(GEN6_RP_UP_EI, D_ALL);
   740		MMIO_D(GEN6_RP_DOWN_EI, D_ALL);
   741		MMIO_D(GEN6_RP_IDLE_HYSTERSIS, D_ALL);
   742		MMIO_D(GEN6_RC1_WAKE_RATE_LIMIT, D_ALL);
   743		MMIO_D(GEN6_RC6_WAKE_RATE_LIMIT, D_ALL);
   744		MMIO_D(GEN6_RC6pp_WAKE_RATE_LIMIT, D_ALL);
   745		MMIO_D(GEN6_RC_EVALUATION_INTERVAL, D_ALL);
   746		MMIO_D(GEN6_RC_IDLE_HYSTERSIS, D_ALL);
   747		MMIO_D(GEN6_RC_SLEEP, D_ALL);
   748		MMIO_D(GEN6_RC1e_THRESHOLD, D_ALL);
   749		MMIO_D(GEN6_RC6_THRESHOLD, D_ALL);
   750		MMIO_D(GEN6_RC6p_THRESHOLD, D_ALL);
   751		MMIO_D(GEN6_RC6pp_THRESHOLD, D_ALL);
   752		MMIO_D(GEN6_PMINTRMSK, D_ALL);
   753		MMIO_DH(HSW_PWR_WELL_CTL1, D_BDW, NULL, power_well_ctl_mmio_write);
   754		MMIO_DH(HSW_PWR_WELL_CTL2, D_BDW, NULL, power_well_ctl_mmio_write);
   755		MMIO_DH(HSW_PWR_WELL_CTL3, D_BDW, NULL, power_well_ctl_mmio_write);
   756		MMIO_DH(HSW_PWR_WELL_CTL4, D_BDW, NULL, power_well_ctl_mmio_write);
   757		MMIO_DH(HSW_PWR_WELL_CTL5, D_BDW, NULL, power_well_ctl_mmio_write);
   758		MMIO_DH(HSW_PWR_WELL_CTL6, D_BDW, NULL, power_well_ctl_mmio_write);
   759	
   760		MMIO_D(RSTDBYCTL, D_ALL);
   761	
   762		MMIO_DH(GEN6_GDRST, D_ALL, NULL, gdrst_mmio_write);
   763		MMIO_F(FENCE_REG_GEN6_LO(0), 0x80, 0, 0, 0, D_ALL, fence_mmio_read, fence_mmio_write);
   764		MMIO_DH(CPU_VGACNTRL, D_ALL, NULL, vga_control_mmio_write);
   765	
   766		MMIO_D(TILECTL, D_ALL);
   767	
   768		MMIO_D(GEN6_UCGCTL1, D_ALL);
   769		MMIO_D(GEN6_UCGCTL2, D_ALL);
   770	
   771		MMIO_F(_MMIO(0x4f000), 0x90, 0, 0, 0, D_ALL, NULL, NULL);
   772	
   773		MMIO_D(GEN6_PCODE_DATA, D_ALL);
   774		MMIO_D(_MMIO(0x13812c), D_ALL);
   775		MMIO_DH(GEN7_ERR_INT, D_ALL, NULL, NULL);
   776		MMIO_D(HSW_EDRAM_CAP, D_ALL);
   777		MMIO_D(HSW_IDICR, D_ALL);
   778		MMIO_DH(GFX_FLSH_CNTL_GEN6, D_ALL, NULL, NULL);
   779	
   780		MMIO_D(_MMIO(0x3c), D_ALL);
   781		MMIO_D(_MMIO(0x860), D_ALL);
   782		MMIO_D(ECOSKPD, D_ALL);
   783		MMIO_D(_MMIO(0x121d0), D_ALL);
   784		MMIO_D(GEN6_BLITTER_ECOSKPD, D_ALL);
   785		MMIO_D(_MMIO(0x41d0), D_ALL);
   786		MMIO_D(GAC_ECO_BITS, D_ALL);
   787		MMIO_D(_MMIO(0x6200), D_ALL);
   788		MMIO_D(_MMIO(0x6204), D_ALL);
   789		MMIO_D(_MMIO(0x6208), D_ALL);
   790		MMIO_D(_MMIO(0x7118), D_ALL);
   791		MMIO_D(_MMIO(0x7180), D_ALL);
   792		MMIO_D(_MMIO(0x7408), D_ALL);
   793		MMIO_D(_MMIO(0x7c00), D_ALL);
   794		MMIO_DH(GEN6_MBCTL, D_ALL, NULL, mbctl_write);
   795		MMIO_D(_MMIO(0x911c), D_ALL);
   796		MMIO_D(_MMIO(0x9120), D_ALL);
   797		MMIO_DFH(GEN7_UCGCTL4, D_ALL, F_CMD_ACCESS, NULL, NULL);
   798	
   799		MMIO_D(GAB_CTL, D_ALL);
   800		MMIO_D(_MMIO(0x48800), D_ALL);
   801		MMIO_D(_MMIO(0xce044), D_ALL);
   802		MMIO_D(_MMIO(0xe6500), D_ALL);
   803		MMIO_D(_MMIO(0xe6504), D_ALL);
   804		MMIO_D(_MMIO(0xe6600), D_ALL);
   805		MMIO_D(_MMIO(0xe6604), D_ALL);
   806		MMIO_D(_MMIO(0xe6700), D_ALL);
   807		MMIO_D(_MMIO(0xe6704), D_ALL);
   808		MMIO_D(_MMIO(0xe6800), D_ALL);
   809		MMIO_D(_MMIO(0xe6804), D_ALL);
   810		MMIO_D(PCH_GMBUS4, D_ALL);
   811		MMIO_D(PCH_GMBUS5, D_ALL);
   812	
   813		MMIO_D(_MMIO(0x902c), D_ALL);
   814		MMIO_D(_MMIO(0xec008), D_ALL);
   815		MMIO_D(_MMIO(0xec00c), D_ALL);
   816		MMIO_D(_MMIO(0xec008 + 0x18), D_ALL);
   817		MMIO_D(_MMIO(0xec00c + 0x18), D_ALL);
   818		MMIO_D(_MMIO(0xec008 + 0x18 * 2), D_ALL);
   819		MMIO_D(_MMIO(0xec00c + 0x18 * 2), D_ALL);
   820		MMIO_D(_MMIO(0xec008 + 0x18 * 3), D_ALL);
   821		MMIO_D(_MMIO(0xec00c + 0x18 * 3), D_ALL);
   822		MMIO_D(_MMIO(0xec408), D_ALL);
   823		MMIO_D(_MMIO(0xec40c), D_ALL);
   824		MMIO_D(_MMIO(0xec408 + 0x18), D_ALL);
   825		MMIO_D(_MMIO(0xec40c + 0x18), D_ALL);
   826		MMIO_D(_MMIO(0xec408 + 0x18 * 2), D_ALL);
   827		MMIO_D(_MMIO(0xec40c + 0x18 * 2), D_ALL);
   828		MMIO_D(_MMIO(0xec408 + 0x18 * 3), D_ALL);
   829		MMIO_D(_MMIO(0xec40c + 0x18 * 3), D_ALL);
   830		MMIO_D(_MMIO(0xfc810), D_ALL);
   831		MMIO_D(_MMIO(0xfc81c), D_ALL);
   832		MMIO_D(_MMIO(0xfc828), D_ALL);
   833		MMIO_D(_MMIO(0xfc834), D_ALL);
   834		MMIO_D(_MMIO(0xfcc00), D_ALL);
   835		MMIO_D(_MMIO(0xfcc0c), D_ALL);
   836		MMIO_D(_MMIO(0xfcc18), D_ALL);
   837		MMIO_D(_MMIO(0xfcc24), D_ALL);
   838		MMIO_D(_MMIO(0xfd000), D_ALL);
   839		MMIO_D(_MMIO(0xfd00c), D_ALL);
   840		MMIO_D(_MMIO(0xfd018), D_ALL);
   841		MMIO_D(_MMIO(0xfd024), D_ALL);
   842		MMIO_D(_MMIO(0xfd034), D_ALL);
   843	
   844		MMIO_DH(FPGA_DBG, D_ALL, NULL, fpga_dbg_mmio_write);
   845		MMIO_D(_MMIO(0x2054), D_ALL);
   846		MMIO_D(_MMIO(0x12054), D_ALL);
   847		MMIO_D(_MMIO(0x22054), D_ALL);
   848		MMIO_D(_MMIO(0x1a054), D_ALL);
   849	
   850		MMIO_D(_MMIO(0x44070), D_ALL);
   851		MMIO_DFH(_MMIO(0x215c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   852		MMIO_DFH(_MMIO(0x2178), D_ALL, F_CMD_ACCESS, NULL, NULL);
   853		MMIO_DFH(_MMIO(0x217c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   854		MMIO_DFH(_MMIO(0x12178), D_ALL, F_CMD_ACCESS, NULL, NULL);
   855		MMIO_DFH(_MMIO(0x1217c), D_ALL, F_CMD_ACCESS, NULL, NULL);
   856	
   857		MMIO_F(_MMIO(0x2290), 8, F_CMD_ACCESS, 0, 0, D_BDW_PLUS, NULL, NULL);
   858		MMIO_D(_MMIO(0x2b00), D_BDW_PLUS);
   859		MMIO_D(_MMIO(0x2360), D_BDW_PLUS);
   860		MMIO_F(_MMIO(0x5200), 32, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   861		MMIO_F(_MMIO(0x5240), 32, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   862		MMIO_F(_MMIO(0x5280), 16, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   863	
   864		MMIO_DFH(_MMIO(0x1c17c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   865		MMIO_DFH(_MMIO(0x1c178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   866		MMIO_DFH(BCS_SWCTRL, D_ALL, F_CMD_ACCESS, NULL, NULL);
   867	
   868		MMIO_F(HS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   869		MMIO_F(DS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   870		MMIO_F(IA_VERTICES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   871		MMIO_F(IA_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   872		MMIO_F(VS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   873		MMIO_F(GS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   874		MMIO_F(GS_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   875		MMIO_F(CL_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   876		MMIO_F(CL_PRIMITIVES_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   877		MMIO_F(PS_INVOCATION_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   878		MMIO_F(PS_DEPTH_COUNT, 8, F_CMD_ACCESS, 0, 0, D_ALL, NULL, NULL);
   879		MMIO_DH(_MMIO(0x4260), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   880		MMIO_DH(_MMIO(0x4264), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   881		MMIO_DH(_MMIO(0x4268), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   882		MMIO_DH(_MMIO(0x426c), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   883		MMIO_DH(_MMIO(0x4270), D_BDW_PLUS, NULL, gvt_reg_tlb_control_handler);
   884		MMIO_DFH(_MMIO(0x4094), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   885	
   886		MMIO_DFH(ARB_MODE, D_ALL, F_MODE_MASK | F_CMD_ACCESS, NULL, NULL);
   887		MMIO_RING_GM(RING_BBADDR, D_ALL, NULL, NULL);
   888		MMIO_DFH(_MMIO(0x2220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   889		MMIO_DFH(_MMIO(0x12220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   890		MMIO_DFH(_MMIO(0x22220), D_ALL, F_CMD_ACCESS, NULL, NULL);
   891		MMIO_RING_DFH(RING_SYNC_1, D_ALL, F_CMD_ACCESS, NULL, NULL);
   892		MMIO_RING_DFH(RING_SYNC_0, D_ALL, F_CMD_ACCESS, NULL, NULL);
   893		MMIO_DFH(_MMIO(0x22178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   894		MMIO_DFH(_MMIO(0x1a178), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   895		MMIO_DFH(_MMIO(0x1a17c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   896		MMIO_DFH(_MMIO(0x2217c), D_BDW_PLUS, F_CMD_ACCESS, NULL, NULL);
   897	
   898		MMIO_DH(EDP_PSR_IMR, D_BDW_PLUS, NULL, edp_psr_imr_iir_write);
   899		MMIO_DH(EDP_PSR_IIR, D_BDW_PLUS, NULL, edp_psr_imr_iir_write);
   900		MMIO_DH(GUC_STATUS, D_ALL, guc_status_read, NULL);
   901	
   902		return 0;
   903	}
   904	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 66042 bytes --]

  parent reply	other threads:[~2021-11-11 23:33 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-08 21:27 [Intel-gfx] [PATCH 1/3] i915/gvt: seperate tracked MMIO table from handlers.c Zhi Wang
2021-11-08 21:27 ` Zhi Wang
2021-11-08 21:27 ` [Intel-gfx] [PATCH 2/3] i915/gvt: save the initial HW state snapshot in i915 Zhi Wang
2021-11-08 21:27   ` Zhi Wang
2021-11-08 21:27 ` [Intel-gfx] [PATCH 3/3] i915/gvt: Use the initial HW state snapshot saved " Zhi Wang
2021-11-08 21:27   ` Zhi Wang
2021-11-09  7:00 ` [Intel-gfx] [PATCH 1/3] i915/gvt: seperate tracked MMIO table from handlers.c Jani Nikula
2021-11-09  7:00   ` Jani Nikula
2021-11-09  7:51   ` [Intel-gfx] " Christoph Hellwig
2021-11-09  7:51     ` Christoph Hellwig
2021-11-09  8:41   ` [Intel-gfx] " Wang, Zhi A
2021-11-09  8:41     ` Wang, Zhi A
2021-11-09 10:20     ` [Intel-gfx] " Jani Nikula
2021-11-09 10:20       ` Jani Nikula
2021-11-09 10:36       ` [Intel-gfx] " hch
2021-11-09 10:36         ` hch
2021-11-09 10:51         ` [Intel-gfx] " Wang, Zhi A
2021-11-09 10:51           ` Wang, Zhi A
2021-11-09 10:51           ` Wang, Zhi A
2021-11-09 10:58           ` [Intel-gfx] " hch
2021-11-09 10:58             ` hch
2021-11-09 11:02             ` [Intel-gfx] " Wang, Zhi A
2021-11-09 11:02               ` Wang, Zhi A
2021-11-09 11:02               ` Wang, Zhi A
2021-11-09 10:53       ` [Intel-gfx] " Wang, Zhi A
2021-11-09 10:53         ` Wang, Zhi A
2021-11-09  9:44   ` [Intel-gfx] " Christoph Hellwig
2021-11-09  9:44     ` Christoph Hellwig
2021-11-09 14:33 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [1/3] " Patchwork
2021-11-11 23:32 ` kernel test robot [this message]
2021-11-11 23:32   ` [PATCH 1/3] " kernel test robot
2021-11-11 23:32   ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202111120709.0HZyzp3c-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=jgg@nvidia.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=zhenyuw@linux.intel.com \
    --cc=zhi.a.wang@intel.com \
    --cc=zhi.wang.linux@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.