Message ID | 20240412175818.29217-4-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: BXT/GLK per-lane vswing and PHY reg cleanup | expand |
Hi Ville, kernel test robot noticed the following build errors: [auto build test ERROR on drm-intel/for-linux-next] [also build test ERROR on drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.9-rc4 next-20240415] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Ville-Syrjala/drm-i915-dpio-Clean-up-bxt-glk-PHY-registers/20240415-095059 base: git://anongit.freedesktop.org/drm-intel for-linux-next patch link: https://lore.kernel.org/r/20240412175818.29217-4-ville.syrjala%40linux.intel.com patch subject: [PATCH 3/8] drm/i915/dpio: Extract bxt_dpio_phy_regs.h config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20240416/202404160914.qsredYDl-lkp@intel.com/config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240416/202404160914.qsredYDl-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202404160914.qsredYDl-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1130:9: error: call to undeclared function 'BXT_PORT_PLL_ENABLE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1130 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_A)); | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1130:2: error: member reference base type 'int' is not a structure or union 1130 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_A)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1130:2: error: member reference base type 'int' is not a structure or union 1130 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_A)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1130:9: error: controlling expression type 'int' not compatible with any generic association type 1130 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_A)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:28: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:56: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1131:9: error: call to undeclared function 'BXT_PORT_PLL_ENABLE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1131 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B)); | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1131:2: error: member reference base type 'int' is not a structure or union 1131 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1131:2: error: member reference base type 'int' is not a structure or union 1131 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1131:9: error: controlling expression type 'int' not compatible with any generic association type 1131 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:28: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:56: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1132:9: error: call to undeclared function 'BXT_PORT_PLL_ENABLE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1132 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_C)); | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1132:2: error: member reference base type 'int' is not a structure or union 1132 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_C)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1132:2: error: member reference base type 'int' is not a structure or union 1132 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_C)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1132:9: error: controlling expression type 'int' not compatible with any generic association type 1132 | MMIO_D(BXT_PORT_PLL_ENABLE(PORT_C)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:28: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:56: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ >> drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1133:9: error: call to undeclared function 'BXT_PORT_CL1CM_DW0'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1133 | MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY0)); | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1133:2: error: member reference base type 'int' is not a structure or union 1133 | MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY0)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1133:2: error: member reference base type 'int' is not a structure or union 1133 | MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY0)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1133:9: error: controlling expression type 'int' not compatible with any generic association type 1133 | MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY0)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:28: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:56: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ >> drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1134:9: error: call to undeclared function 'BXT_PORT_CL1CM_DW9'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1134 | MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY0)); | ^ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1134:2: error: member reference base type 'int' is not a structure or union 1134 | MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY0)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:1134:2: error: member reference base type 'int' is not a structure or union 1134 | MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY0)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:35:21: note: expanded from macro 'MMIO_D' 35 | #define MMIO_D(reg) MMIO_F(reg, 4) | ^~~~~~~~~~~~~~ drivers/gpu/drm/i915/intel_gvt_mmio_table.c:30:35: note: expanded from macro 'MMIO_F' 30 | ret = iter->handle_mmio_cb(iter, i915_mmio_reg_offset(reg), s); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. -- >> drivers/gpu/drm/i915/gvt/display.c:214:22: error: call to undeclared function 'BXT_PORT_PLL_ENABLE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 214 | vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(port)) &= | ^ >> drivers/gpu/drm/i915/gvt/display.c:214:4: error: member reference base type 'int' is not a structure or union 214 | vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(port)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ >> drivers/gpu/drm/i915/gvt/display.c:214:4: error: member reference base type 'int' is not a structure or union 214 | vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(port)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ >> drivers/gpu/drm/i915/gvt/display.c:214:22: error: controlling expression type 'int' not compatible with any generic association type 214 | vgpu_vreg_t(vgpu, BXT_PORT_PLL_ENABLE(port)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:51: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ >> drivers/gpu/drm/i915/gvt/display.c:215:7: error: use of undeclared identifier 'PORT_PLL_POWER_STATE' 215 | ~(PORT_PLL_POWER_STATE | PORT_PLL_POWER_ENABLE | | ^ >> drivers/gpu/drm/i915/gvt/display.c:215:30: error: use of undeclared identifier 'PORT_PLL_POWER_ENABLE' 215 | ~(PORT_PLL_POWER_STATE | PORT_PLL_POWER_ENABLE | | ^ >> drivers/gpu/drm/i915/gvt/display.c:216:7: error: use of undeclared identifier 'PORT_PLL_REF_SEL' 216 | PORT_PLL_REF_SEL | PORT_PLL_LOCK | | ^ >> drivers/gpu/drm/i915/gvt/display.c:216:26: error: use of undeclared identifier 'PORT_PLL_LOCK' 216 | PORT_PLL_REF_SEL | PORT_PLL_LOCK | | ^ >> drivers/gpu/drm/i915/gvt/display.c:217:7: error: use of undeclared identifier 'PORT_PLL_ENABLE' 217 | PORT_PLL_ENABLE); | ^ >> drivers/gpu/drm/i915/gvt/display.c:235:21: error: call to undeclared function 'BXT_PORT_CL1CM_DW0'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 235 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) &= | ^ drivers/gpu/drm/i915/gvt/display.c:235:3: error: member reference base type 'int' is not a structure or union 235 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/gvt/display.c:235:3: error: member reference base type 'int' is not a structure or union 235 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/gvt/display.c:235:21: error: controlling expression type 'int' not compatible with any generic association type 235 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY0)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:51: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ >> drivers/gpu/drm/i915/gvt/display.c:236:5: error: use of undeclared identifier 'PHY_POWER_GOOD' 236 | ~PHY_POWER_GOOD; | ^ drivers/gpu/drm/i915/gvt/display.c:237:3: error: member reference base type 'int' is not a structure or union 237 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/gvt/display.c:237:3: error: member reference base type 'int' is not a structure or union 237 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:56: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ drivers/gpu/drm/i915/gvt/display.c:237:21: error: controlling expression type 'int' not compatible with any generic association type 237 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) &= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:51: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:12: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ^ drivers/gpu/drm/i915/gvt/display.c:238:5: error: use of undeclared identifier 'PHY_POWER_GOOD' 238 | ~PHY_POWER_GOOD; | ^ drivers/gpu/drm/i915/gvt/display.c:269:4: error: member reference base type 'int' is not a structure or union 269 | vgpu_vreg_t(vgpu, BXT_PORT_CL1CM_DW0(DPIO_PHY1)) |= | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/gvt/gvt.h:458:30: note: expanded from macro 'vgpu_vreg_t' 458 | (*(u32 *)(vgpu->mmio.vreg + i915_mmio_reg_offset(reg))) | ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/i915/i915_reg_defs.h:283:31: note: expanded from macro 'i915_mmio_reg_offset' 283 | _Generic((r), i915_reg_t: (r).reg, i915_mcr_reg_t: (r).reg) | ~~~^~~~ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. .. vim +/BXT_PORT_PLL_ENABLE +1130 drivers/gpu/drm/i915/intel_gvt_mmio_table.c e0f74ed4634d6d Zhi Wang 2022-04-07 1097 e0f74ed4634d6d Zhi Wang 2022-04-07 1098 static int iterate_bxt_mmio(struct intel_gvt_mmio_table_iter *iter) e0f74ed4634d6d Zhi Wang 2022-04-07 1099 { e0f74ed4634d6d Zhi Wang 2022-04-07 1100 struct drm_i915_private *dev_priv = iter->i915; e0f74ed4634d6d Zhi Wang 2022-04-07 1101 e0f74ed4634d6d Zhi Wang 2022-04-07 1102 MMIO_F(_MMIO(0x80000), 0x3000); e0f74ed4634d6d Zhi Wang 2022-04-07 1103 MMIO_D(GEN7_SAMPLER_INSTDONE); e0f74ed4634d6d Zhi Wang 2022-04-07 1104 MMIO_D(GEN7_ROW_INSTDONE); e0f74ed4634d6d Zhi Wang 2022-04-07 1105 MMIO_D(GEN8_FAULT_TLB_DATA0); e0f74ed4634d6d Zhi Wang 2022-04-07 1106 MMIO_D(GEN8_FAULT_TLB_DATA1); e0f74ed4634d6d Zhi Wang 2022-04-07 1107 MMIO_D(ERROR_GEN6); e0f74ed4634d6d Zhi Wang 2022-04-07 1108 MMIO_D(DONE_REG); e0f74ed4634d6d Zhi Wang 2022-04-07 1109 MMIO_D(EIR); e0f74ed4634d6d Zhi Wang 2022-04-07 1110 MMIO_D(PGTBL_ER); e0f74ed4634d6d Zhi Wang 2022-04-07 1111 MMIO_D(_MMIO(0x4194)); e0f74ed4634d6d Zhi Wang 2022-04-07 1112 MMIO_D(_MMIO(0x4294)); e0f74ed4634d6d Zhi Wang 2022-04-07 1113 MMIO_D(_MMIO(0x4494)); e0f74ed4634d6d Zhi Wang 2022-04-07 1114 MMIO_RING_D(RING_PSMI_CTL); e0f74ed4634d6d Zhi Wang 2022-04-07 1115 MMIO_RING_D(RING_DMA_FADD); e0f74ed4634d6d Zhi Wang 2022-04-07 1116 MMIO_RING_D(RING_DMA_FADD_UDW); e0f74ed4634d6d Zhi Wang 2022-04-07 1117 MMIO_RING_D(RING_IPEHR); e0f74ed4634d6d Zhi Wang 2022-04-07 1118 MMIO_RING_D(RING_INSTPS); e0f74ed4634d6d Zhi Wang 2022-04-07 1119 MMIO_RING_D(RING_BBADDR_UDW); e0f74ed4634d6d Zhi Wang 2022-04-07 1120 MMIO_RING_D(RING_BBSTATE); e0f74ed4634d6d Zhi Wang 2022-04-07 1121 MMIO_RING_D(RING_IPEIR); e0f74ed4634d6d Zhi Wang 2022-04-07 1122 MMIO_F(SOFT_SCRATCH(0), 16 * 4); e0f74ed4634d6d Zhi Wang 2022-04-07 1123 MMIO_D(BXT_P_CR_GT_DISP_PWRON); e0f74ed4634d6d Zhi Wang 2022-04-07 1124 MMIO_D(BXT_RP_STATE_CAP); e0f74ed4634d6d Zhi Wang 2022-04-07 1125 MMIO_D(BXT_PHY_CTL_FAMILY(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1126 MMIO_D(BXT_PHY_CTL_FAMILY(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1127 MMIO_D(BXT_PHY_CTL(PORT_A)); e0f74ed4634d6d Zhi Wang 2022-04-07 1128 MMIO_D(BXT_PHY_CTL(PORT_B)); e0f74ed4634d6d Zhi Wang 2022-04-07 1129 MMIO_D(BXT_PHY_CTL(PORT_C)); e0f74ed4634d6d Zhi Wang 2022-04-07 @1130 MMIO_D(BXT_PORT_PLL_ENABLE(PORT_A)); e0f74ed4634d6d Zhi Wang 2022-04-07 1131 MMIO_D(BXT_PORT_PLL_ENABLE(PORT_B)); e0f74ed4634d6d Zhi Wang 2022-04-07 1132 MMIO_D(BXT_PORT_PLL_ENABLE(PORT_C)); e0f74ed4634d6d Zhi Wang 2022-04-07 @1133 MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 @1134 MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1135 MMIO_D(BXT_PORT_CL1CM_DW10(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1136 MMIO_D(BXT_PORT_CL1CM_DW28(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1137 MMIO_D(BXT_PORT_CL1CM_DW30(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1138 MMIO_D(BXT_PORT_CL2CM_DW6(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1139 MMIO_D(BXT_PORT_REF_DW3(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1140 MMIO_D(BXT_PORT_REF_DW6(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1141 MMIO_D(BXT_PORT_REF_DW8(DPIO_PHY0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1142 MMIO_D(BXT_PORT_CL1CM_DW0(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1143 MMIO_D(BXT_PORT_CL1CM_DW9(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1144 MMIO_D(BXT_PORT_CL1CM_DW10(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1145 MMIO_D(BXT_PORT_CL1CM_DW28(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1146 MMIO_D(BXT_PORT_CL1CM_DW30(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1147 MMIO_D(BXT_PORT_CL2CM_DW6(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1148 MMIO_D(BXT_PORT_REF_DW3(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1149 MMIO_D(BXT_PORT_REF_DW6(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1150 MMIO_D(BXT_PORT_REF_DW8(DPIO_PHY1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1151 MMIO_D(BXT_PORT_PLL_EBB_0(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1152 MMIO_D(BXT_PORT_PLL_EBB_4(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1153 MMIO_D(BXT_PORT_PCS_DW10_LN01(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1154 MMIO_D(BXT_PORT_PCS_DW10_GRP(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1155 MMIO_D(BXT_PORT_PCS_DW12_LN01(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1156 MMIO_D(BXT_PORT_PCS_DW12_LN23(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1157 MMIO_D(BXT_PORT_PCS_DW12_GRP(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1158 MMIO_D(BXT_PORT_TX_DW2_LN0(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1159 MMIO_D(BXT_PORT_TX_DW2_GRP(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1160 MMIO_D(BXT_PORT_TX_DW3_LN0(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1161 MMIO_D(BXT_PORT_TX_DW3_GRP(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1162 MMIO_D(BXT_PORT_TX_DW4_LN0(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1163 MMIO_D(BXT_PORT_TX_DW4_GRP(DPIO_PHY0, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1164 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1165 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1166 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 2)); e0f74ed4634d6d Zhi Wang 2022-04-07 1167 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH0, 3)); e0f74ed4634d6d Zhi Wang 2022-04-07 1168 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1169 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1170 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 2)); e0f74ed4634d6d Zhi Wang 2022-04-07 1171 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 3)); e0f74ed4634d6d Zhi Wang 2022-04-07 1172 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 6)); e0f74ed4634d6d Zhi Wang 2022-04-07 1173 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 8)); e0f74ed4634d6d Zhi Wang 2022-04-07 1174 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 9)); e0f74ed4634d6d Zhi Wang 2022-04-07 1175 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH0, 10)); e0f74ed4634d6d Zhi Wang 2022-04-07 1176 MMIO_D(BXT_PORT_PLL_EBB_0(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1177 MMIO_D(BXT_PORT_PLL_EBB_4(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1178 MMIO_D(BXT_PORT_PCS_DW10_LN01(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1179 MMIO_D(BXT_PORT_PCS_DW10_GRP(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1180 MMIO_D(BXT_PORT_PCS_DW12_LN01(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1181 MMIO_D(BXT_PORT_PCS_DW12_LN23(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1182 MMIO_D(BXT_PORT_PCS_DW12_GRP(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1183 MMIO_D(BXT_PORT_TX_DW2_LN0(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1184 MMIO_D(BXT_PORT_TX_DW2_GRP(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1185 MMIO_D(BXT_PORT_TX_DW3_LN0(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1186 MMIO_D(BXT_PORT_TX_DW3_GRP(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1187 MMIO_D(BXT_PORT_TX_DW4_LN0(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1188 MMIO_D(BXT_PORT_TX_DW4_GRP(DPIO_PHY0, DPIO_CH1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1189 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1190 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1191 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 2)); e0f74ed4634d6d Zhi Wang 2022-04-07 1192 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY0, DPIO_CH1, 3)); e0f74ed4634d6d Zhi Wang 2022-04-07 1193 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1194 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1195 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 2)); e0f74ed4634d6d Zhi Wang 2022-04-07 1196 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 3)); e0f74ed4634d6d Zhi Wang 2022-04-07 1197 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 6)); e0f74ed4634d6d Zhi Wang 2022-04-07 1198 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 8)); e0f74ed4634d6d Zhi Wang 2022-04-07 1199 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 9)); e0f74ed4634d6d Zhi Wang 2022-04-07 1200 MMIO_D(BXT_PORT_PLL(DPIO_PHY0, DPIO_CH1, 10)); e0f74ed4634d6d Zhi Wang 2022-04-07 1201 MMIO_D(BXT_PORT_PLL_EBB_0(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1202 MMIO_D(BXT_PORT_PLL_EBB_4(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1203 MMIO_D(BXT_PORT_PCS_DW10_LN01(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1204 MMIO_D(BXT_PORT_PCS_DW10_GRP(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1205 MMIO_D(BXT_PORT_PCS_DW12_LN01(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1206 MMIO_D(BXT_PORT_PCS_DW12_LN23(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1207 MMIO_D(BXT_PORT_PCS_DW12_GRP(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1208 MMIO_D(BXT_PORT_TX_DW2_LN0(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1209 MMIO_D(BXT_PORT_TX_DW2_GRP(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1210 MMIO_D(BXT_PORT_TX_DW3_LN0(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1211 MMIO_D(BXT_PORT_TX_DW3_GRP(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1212 MMIO_D(BXT_PORT_TX_DW4_LN0(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1213 MMIO_D(BXT_PORT_TX_DW4_GRP(DPIO_PHY1, DPIO_CH0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1214 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1215 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1216 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 2)); e0f74ed4634d6d Zhi Wang 2022-04-07 1217 MMIO_D(BXT_PORT_TX_DW14_LN(DPIO_PHY1, DPIO_CH0, 3)); e0f74ed4634d6d Zhi Wang 2022-04-07 1218 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 0)); e0f74ed4634d6d Zhi Wang 2022-04-07 1219 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 1)); e0f74ed4634d6d Zhi Wang 2022-04-07 1220 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 2)); e0f74ed4634d6d Zhi Wang 2022-04-07 1221 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 3)); e0f74ed4634d6d Zhi Wang 2022-04-07 1222 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 6)); e0f74ed4634d6d Zhi Wang 2022-04-07 1223 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 8)); e0f74ed4634d6d Zhi Wang 2022-04-07 1224 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 9)); e0f74ed4634d6d Zhi Wang 2022-04-07 1225 MMIO_D(BXT_PORT_PLL(DPIO_PHY1, DPIO_CH0, 10)); e0f74ed4634d6d Zhi Wang 2022-04-07 1226 MMIO_D(BXT_DE_PLL_CTL); e0f74ed4634d6d Zhi Wang 2022-04-07 1227 MMIO_D(BXT_DE_PLL_ENABLE); e0f74ed4634d6d Zhi Wang 2022-04-07 1228 MMIO_D(BXT_DSI_PLL_CTL); e0f74ed4634d6d Zhi Wang 2022-04-07 1229 MMIO_D(BXT_DSI_PLL_ENABLE); e0f74ed4634d6d Zhi Wang 2022-04-07 1230 MMIO_D(GEN9_CLKGATE_DIS_0); e0f74ed4634d6d Zhi Wang 2022-04-07 1231 MMIO_D(GEN9_CLKGATE_DIS_4); e0f74ed4634d6d Zhi Wang 2022-04-07 1232 MMIO_D(HSW_TVIDEO_DIP_GCP(TRANSCODER_A)); e0f74ed4634d6d Zhi Wang 2022-04-07 1233 MMIO_D(HSW_TVIDEO_DIP_GCP(TRANSCODER_B)); e0f74ed4634d6d Zhi Wang 2022-04-07 1234 MMIO_D(HSW_TVIDEO_DIP_GCP(TRANSCODER_C)); e0f74ed4634d6d Zhi Wang 2022-04-07 1235 MMIO_D(RC6_CTX_BASE); e0f74ed4634d6d Zhi Wang 2022-04-07 1236 MMIO_D(GEN8_PUSHBUS_CONTROL); e0f74ed4634d6d Zhi Wang 2022-04-07 1237 MMIO_D(GEN8_PUSHBUS_ENABLE); e0f74ed4634d6d Zhi Wang 2022-04-07 1238 MMIO_D(GEN8_PUSHBUS_SHIFT); e0f74ed4634d6d Zhi Wang 2022-04-07 1239 MMIO_D(GEN6_GFXPAUSE); e0f74ed4634d6d Zhi Wang 2022-04-07 1240 MMIO_D(GEN8_L3SQCREG1); e0f74ed4634d6d Zhi Wang 2022-04-07 1241 MMIO_D(GEN8_L3CNTLREG); e0f74ed4634d6d Zhi Wang 2022-04-07 1242 MMIO_D(_MMIO(0x20D8)); e0f74ed4634d6d Zhi Wang 2022-04-07 1243 MMIO_F(GEN8_RING_CS_GPR(RENDER_RING_BASE, 0), 0x40); e0f74ed4634d6d Zhi Wang 2022-04-07 1244 MMIO_F(GEN8_RING_CS_GPR(GEN6_BSD_RING_BASE, 0), 0x40); e0f74ed4634d6d Zhi Wang 2022-04-07 1245 MMIO_F(GEN8_RING_CS_GPR(BLT_RING_BASE, 0), 0x40); e0f74ed4634d6d Zhi Wang 2022-04-07 1246 MMIO_F(GEN8_RING_CS_GPR(VEBOX_RING_BASE, 0), 0x40); e0f74ed4634d6d Zhi Wang 2022-04-07 1247 MMIO_D(GEN9_CTX_PREEMPT_REG); e0f74ed4634d6d Zhi Wang 2022-04-07 1248 MMIO_D(GEN8_PRIVATE_PAT_LO); e0f74ed4634d6d Zhi Wang 2022-04-07 1249 e0f74ed4634d6d Zhi Wang 2022-04-07 1250 return 0; e0f74ed4634d6d Zhi Wang 2022-04-07 1251 } e0f74ed4634d6d Zhi Wang 2022-04-07 1252
diff --git a/drivers/gpu/drm/i915/display/bxt_dpio_phy_regs.h b/drivers/gpu/drm/i915/display/bxt_dpio_phy_regs.h new file mode 100644 index 000000000000..275f4d9c3fb0 --- /dev/null +++ b/drivers/gpu/drm/i915/display/bxt_dpio_phy_regs.h @@ -0,0 +1,273 @@ +/* SPDX-License-Identifier: MIT */ +/* + * Copyright © 2023 Intel Corporation + */ + +#ifndef __BXT_DPIO_PHY_REGS_H__ +#define __BXT_DPIO_PHY_REGS_H__ + +#include "intel_display_reg_defs.h" + +/* BXT PHY registers */ +#define _BXT_PHY0_BASE 0x6C000 +#define _BXT_PHY1_BASE 0x162000 +#define _BXT_PHY2_BASE 0x163000 +#define BXT_PHY_BASE(phy) \ + _PICK_EVEN_2RANGES(phy, 1, \ + _BXT_PHY0_BASE, _BXT_PHY0_BASE, \ + _BXT_PHY1_BASE, _BXT_PHY2_BASE) + +#define _BXT_PHY(phy, reg) \ + _MMIO(BXT_PHY_BASE(phy) - _BXT_PHY0_BASE + (reg)) + +#define _BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) \ + (BXT_PHY_BASE(phy) + _PIPE((ch), (reg_ch0) - _BXT_PHY0_BASE, \ + (reg_ch1) - _BXT_PHY0_BASE)) +#define _MMIO_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) \ + _MMIO(_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1)) +#define _BXT_LANE_OFFSET(lane) (((lane) >> 1) * 0x200 + \ + ((lane) & 1) * 0x80) +#define _MMIO_BXT_PHY_CH_LN(phy, ch, lane, reg_ch0, reg_ch1) \ + _MMIO(_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) + _BXT_LANE_OFFSET(lane)) + +/* BXT PHY PLL registers */ +#define _PORT_PLL_A 0x46074 +#define _PORT_PLL_B 0x46078 +#define _PORT_PLL_C 0x4607c +#define PORT_PLL_ENABLE REG_BIT(31) +#define PORT_PLL_LOCK REG_BIT(30) +#define PORT_PLL_REF_SEL REG_BIT(27) +#define PORT_PLL_POWER_ENABLE REG_BIT(26) +#define PORT_PLL_POWER_STATE REG_BIT(25) +#define BXT_PORT_PLL_ENABLE(port) _MMIO_PORT(port, _PORT_PLL_A, _PORT_PLL_B) + +#define _PORT_PLL_EBB_0_A 0x162034 +#define _PORT_PLL_EBB_0_B 0x6C034 +#define _PORT_PLL_EBB_0_C 0x6C340 +#define PORT_PLL_P1_MASK REG_GENMASK(15, 13) +#define PORT_PLL_P1(p1) REG_FIELD_PREP(PORT_PLL_P1_MASK, (p1)) +#define PORT_PLL_P2_MASK REG_GENMASK(12, 8) +#define PORT_PLL_P2(p2) REG_FIELD_PREP(PORT_PLL_P2_MASK, (p2)) +#define BXT_PORT_PLL_EBB_0(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PLL_EBB_0_B, \ + _PORT_PLL_EBB_0_C) + +#define _PORT_PLL_EBB_4_A 0x162038 +#define _PORT_PLL_EBB_4_B 0x6C038 +#define _PORT_PLL_EBB_4_C 0x6C344 +#define PORT_PLL_RECALIBRATE REG_BIT(14) +#define PORT_PLL_10BIT_CLK_ENABLE REG_BIT(13) +#define BXT_PORT_PLL_EBB_4(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PLL_EBB_4_B, \ + _PORT_PLL_EBB_4_C) + +#define _PORT_PLL_0_A 0x162100 +#define _PORT_PLL_0_B 0x6C100 +#define _PORT_PLL_0_C 0x6C380 +/* PORT_PLL_0_A */ +#define PORT_PLL_M2_INT_MASK REG_GENMASK(7, 0) +#define PORT_PLL_M2_INT(m2_int) REG_FIELD_PREP(PORT_PLL_M2_INT_MASK, (m2_int)) +/* PORT_PLL_1_A */ +#define PORT_PLL_N_MASK REG_GENMASK(11, 8) +#define PORT_PLL_N(n) REG_FIELD_PREP(PORT_PLL_N_MASK, (n)) +/* PORT_PLL_2_A */ +#define PORT_PLL_M2_FRAC_MASK REG_GENMASK(21, 0) +#define PORT_PLL_M2_FRAC(m2_frac) REG_FIELD_PREP(PORT_PLL_M2_FRAC_MASK, (m2_frac)) +/* PORT_PLL_3_A */ +#define PORT_PLL_M2_FRAC_ENABLE REG_BIT(16) +/* PORT_PLL_6_A */ +#define PORT_PLL_GAIN_CTL_MASK REG_GENMASK(18, 16) +#define PORT_PLL_GAIN_CTL(x) REG_FIELD_PREP(PORT_PLL_GAIN_CTL_MASK, (x)) +#define PORT_PLL_INT_COEFF_MASK REG_GENMASK(12, 8) +#define PORT_PLL_INT_COEFF(x) REG_FIELD_PREP(PORT_PLL_INT_COEFF_MASK, (x)) +#define PORT_PLL_PROP_COEFF_MASK REG_GENMASK(3, 0) +#define PORT_PLL_PROP_COEFF(x) REG_FIELD_PREP(PORT_PLL_PROP_COEFF_MASK, (x)) +/* PORT_PLL_8_A */ +#define PORT_PLL_TARGET_CNT_MASK REG_GENMASK(9, 0) +#define PORT_PLL_TARGET_CNT(x) REG_FIELD_PREP(PORT_PLL_TARGET_CNT_MASK, (x)) +/* PORT_PLL_9_A */ +#define PORT_PLL_LOCK_THRESHOLD_MASK REG_GENMASK(3, 1) +#define PORT_PLL_LOCK_THRESHOLD(x) REG_FIELD_PREP(PORT_PLL_LOCK_THRESHOLD_MASK, (x)) +/* PORT_PLL_10_A */ +#define PORT_PLL_DCO_AMP_OVR_EN_H REG_BIT(27) +#define PORT_PLL_DCO_AMP_MASK REG_GENMASK(13, 10) +#define PORT_PLL_DCO_AMP(x) REG_FIELD_PREP(PORT_PLL_DCO_AMP_MASK, (x)) +#define _PORT_PLL_BASE(phy, ch) _BXT_PHY_CH(phy, ch, \ + _PORT_PLL_0_B, \ + _PORT_PLL_0_C) +#define BXT_PORT_PLL(phy, ch, idx) _MMIO(_PORT_PLL_BASE(phy, ch) + \ + (idx) * 4) + +/* BXT PHY common lane registers */ +#define _PORT_CL1CM_DW0_A 0x162000 +#define _PORT_CL1CM_DW0_BC 0x6C000 +#define PHY_POWER_GOOD REG_BIT(16) +#define PHY_RESERVED REG_BIT(7) +#define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC) + +#define _PORT_CL1CM_DW9_A 0x162024 +#define _PORT_CL1CM_DW9_BC 0x6C024 +#define IREF0RC_OFFSET_MASK REG_GENMASK(15, 8) +#define IREF0RC_OFFSET(x) REG_FIELD_PREP(IREF0RC_OFFSET_MASK, (x)) +#define BXT_PORT_CL1CM_DW9(phy) _BXT_PHY((phy), _PORT_CL1CM_DW9_BC) + +#define _PORT_CL1CM_DW10_A 0x162028 +#define _PORT_CL1CM_DW10_BC 0x6C028 +#define IREF1RC_OFFSET_MASK REG_GENMASK(15, 8) +#define IREF1RC_OFFSET(x) REG_FIELD_PREP(IREF1RC_OFFSET_MASK, (x)) +#define BXT_PORT_CL1CM_DW10(phy) _BXT_PHY((phy), _PORT_CL1CM_DW10_BC) + +#define _PORT_CL1CM_DW28_A 0x162070 +#define _PORT_CL1CM_DW28_BC 0x6C070 +#define OCL1_POWER_DOWN_EN REG_BIT(23) +#define DW28_OLDO_DYN_PWR_DOWN_EN REG_BIT(22) +#define SUS_CLK_CONFIG REG_GENMASK(1, 0) +#define BXT_PORT_CL1CM_DW28(phy) _BXT_PHY((phy), _PORT_CL1CM_DW28_BC) + +#define _PORT_CL1CM_DW30_A 0x162078 +#define _PORT_CL1CM_DW30_BC 0x6C078 +#define OCL2_LDOFUSE_PWR_DIS REG_BIT(6) +#define BXT_PORT_CL1CM_DW30(phy) _BXT_PHY((phy), _PORT_CL1CM_DW30_BC) + +/* The spec defines this only for BXT PHY0, but lets assume that this + * would exist for PHY1 too if it had a second channel. + */ +#define _PORT_CL2CM_DW6_A 0x162358 +#define _PORT_CL2CM_DW6_BC 0x6C358 +#define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC) +#define DW6_OLDO_DYN_PWR_DOWN_EN REG_BIT(28) + +/* BXT PHY Ref registers */ +#define _PORT_REF_DW3_A 0x16218C +#define _PORT_REF_DW3_BC 0x6C18C +#define GRC_DONE REG_BIT(22) +#define BXT_PORT_REF_DW3(phy) _BXT_PHY((phy), _PORT_REF_DW3_BC) + +#define _PORT_REF_DW6_A 0x162198 +#define _PORT_REF_DW6_BC 0x6C198 +#define GRC_CODE_MASK REG_GENMASK(31, 24) +#define GRC_CODE(x) REG_FIELD_PREP(GRC_CODE_MASK, (x)) +#define GRC_CODE_FAST_MASK REG_GENMASK(23, 16) +#define GRC_CODE_FAST(x) REG_FIELD_PREP(GRC_CODE_FAST_MASK, (x)) +#define GRC_CODE_SLOW_MASK REG_GENMASK(15, 8) +#define GRC_CODE_SLOW(x) REG_FIELD_PREP(GRC_CODE_SLOW_MASK, (x)) +#define GRC_CODE_NOM_MASK REG_GENMASK(7, 0) +#define GRC_CODE_NOM(x) REG_FIELD_PREP(GRC_CODE_NOM_MASK, (x)) +#define BXT_PORT_REF_DW6(phy) _BXT_PHY((phy), _PORT_REF_DW6_BC) + +#define _PORT_REF_DW8_A 0x1621A0 +#define _PORT_REF_DW8_BC 0x6C1A0 +#define GRC_DIS REG_BIT(15) +#define GRC_RDY_OVRD REG_BIT(1) +#define BXT_PORT_REF_DW8(phy) _BXT_PHY((phy), _PORT_REF_DW8_BC) + +/* BXT PHY PCS registers */ +#define _PORT_PCS_DW10_LN01_A 0x162428 +#define _PORT_PCS_DW10_LN01_B 0x6C428 +#define _PORT_PCS_DW10_LN01_C 0x6C828 +#define _PORT_PCS_DW10_GRP_A 0x162C28 +#define _PORT_PCS_DW10_GRP_B 0x6CC28 +#define _PORT_PCS_DW10_GRP_C 0x6CE28 +#define BXT_PORT_PCS_DW10_LN01(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PCS_DW10_LN01_B, \ + _PORT_PCS_DW10_LN01_C) +#define BXT_PORT_PCS_DW10_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PCS_DW10_GRP_B, \ + _PORT_PCS_DW10_GRP_C) + +#define TX2_SWING_CALC_INIT REG_BIT(31) +#define TX1_SWING_CALC_INIT REG_BIT(30) + +#define _PORT_PCS_DW12_LN01_A 0x162430 +#define _PORT_PCS_DW12_LN01_B 0x6C430 +#define _PORT_PCS_DW12_LN01_C 0x6C830 +#define _PORT_PCS_DW12_LN23_A 0x162630 +#define _PORT_PCS_DW12_LN23_B 0x6C630 +#define _PORT_PCS_DW12_LN23_C 0x6CA30 +#define _PORT_PCS_DW12_GRP_A 0x162c30 +#define _PORT_PCS_DW12_GRP_B 0x6CC30 +#define _PORT_PCS_DW12_GRP_C 0x6CE30 +#define LANESTAGGER_STRAP_OVRD REG_BIT(6) +#define LANE_STAGGER_MASK REG_GENMASK(4, 0) +#define BXT_PORT_PCS_DW12_LN01(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PCS_DW12_LN01_B, \ + _PORT_PCS_DW12_LN01_C) +#define BXT_PORT_PCS_DW12_LN23(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PCS_DW12_LN23_B, \ + _PORT_PCS_DW12_LN23_C) +#define BXT_PORT_PCS_DW12_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_PCS_DW12_GRP_B, \ + _PORT_PCS_DW12_GRP_C) + +/* BXT PHY TX registers */ +#define _PORT_TX_DW2_LN0_A 0x162508 +#define _PORT_TX_DW2_LN0_B 0x6C508 +#define _PORT_TX_DW2_LN0_C 0x6C908 +#define _PORT_TX_DW2_GRP_A 0x162D08 +#define _PORT_TX_DW2_GRP_B 0x6CD08 +#define _PORT_TX_DW2_GRP_C 0x6CF08 +#define BXT_PORT_TX_DW2_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ + _PORT_TX_DW2_LN0_B, \ + _PORT_TX_DW2_LN0_C) +#define BXT_PORT_TX_DW2_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_TX_DW2_GRP_B, \ + _PORT_TX_DW2_GRP_C) +#define MARGIN_000_MASK REG_GENMASK(23, 16) +#define MARGIN_000(x) REG_FIELD_PREP(MARGIN_000_MASK, (x)) +#define UNIQ_TRANS_SCALE_MASK REG_GENMASK(15, 8) +#define UNIQ_TRANS_SCALE(x) REG_FIELD_PREP(UNIQ_TRANS_SCALE_MASK, (x)) + +#define _PORT_TX_DW3_LN0_A 0x16250C +#define _PORT_TX_DW3_LN0_B 0x6C50C +#define _PORT_TX_DW3_LN0_C 0x6C90C +#define _PORT_TX_DW3_GRP_A 0x162D0C +#define _PORT_TX_DW3_GRP_B 0x6CD0C +#define _PORT_TX_DW3_GRP_C 0x6CF0C +#define BXT_PORT_TX_DW3_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ + _PORT_TX_DW3_LN0_B, \ + _PORT_TX_DW3_LN0_C) +#define BXT_PORT_TX_DW3_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_TX_DW3_GRP_B, \ + _PORT_TX_DW3_GRP_C) +#define SCALE_DCOMP_METHOD REG_BIT(26) +#define UNIQUE_TRANGE_EN_METHOD REG_BIT(27) + +#define _PORT_TX_DW4_LN0_A 0x162510 +#define _PORT_TX_DW4_LN0_B 0x6C510 +#define _PORT_TX_DW4_LN0_C 0x6C910 +#define _PORT_TX_DW4_GRP_A 0x162D10 +#define _PORT_TX_DW4_GRP_B 0x6CD10 +#define _PORT_TX_DW4_GRP_C 0x6CF10 +#define BXT_PORT_TX_DW4_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ + _PORT_TX_DW4_LN0_B, \ + _PORT_TX_DW4_LN0_C) +#define BXT_PORT_TX_DW4_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_TX_DW4_GRP_B, \ + _PORT_TX_DW4_GRP_C) +#define DE_EMPHASIS_MASK REG_GENMASK(31, 24) +#define DE_EMPHASIS(x) REG_FIELD_PREP(DE_EMPHASIS_MASK, (x)) + +#define _PORT_TX_DW5_LN0_A 0x162514 +#define _PORT_TX_DW5_LN0_B 0x6C514 +#define _PORT_TX_DW5_LN0_C 0x6C914 +#define _PORT_TX_DW5_GRP_A 0x162D14 +#define _PORT_TX_DW5_GRP_B 0x6CD14 +#define _PORT_TX_DW5_GRP_C 0x6CF14 +#define BXT_PORT_TX_DW5_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ + _PORT_TX_DW5_LN0_B, \ + _PORT_TX_DW5_LN0_C) +#define BXT_PORT_TX_DW5_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ + _PORT_TX_DW5_GRP_B, \ + _PORT_TX_DW5_GRP_C) +#define DCC_DELAY_RANGE_1 REG_BIT(9) +#define DCC_DELAY_RANGE_2 REG_BIT(8) + +#define _PORT_TX_DW14_LN0_A 0x162538 +#define _PORT_TX_DW14_LN0_B 0x6C538 +#define _PORT_TX_DW14_LN0_C 0x6C938 +#define LATENCY_OPTIM REG_BIT(30) +#define BXT_PORT_TX_DW14_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ + _PORT_TX_DW14_LN0_B, \ + _PORT_TX_DW14_LN0_C) + +#endif /* __BXT_DPIO_PHY_REGS_H__ */ diff --git a/drivers/gpu/drm/i915/display/intel_dpio_phy.c b/drivers/gpu/drm/i915/display/intel_dpio_phy.c index 50d6b412d652..a793a872dfa3 100644 --- a/drivers/gpu/drm/i915/display/intel_dpio_phy.c +++ b/drivers/gpu/drm/i915/display/intel_dpio_phy.c @@ -21,6 +21,7 @@ * DEALINGS IN THE SOFTWARE. */ +#include "bxt_dpio_phy_regs.h" #include "i915_reg.h" #include "intel_ddi.h" #include "intel_ddi_buf_trans.h" diff --git a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c index cc3acdafdbf8..d18afaf6ef32 100644 --- a/drivers/gpu/drm/i915/display/intel_dpll_mgr.c +++ b/drivers/gpu/drm/i915/display/intel_dpll_mgr.c @@ -24,6 +24,7 @@ #include <linux/math.h> #include <linux/string_helpers.h> +#include "bxt_dpio_phy_regs.h" #include "i915_reg.h" #include "intel_de.h" #include "intel_display_types.h" diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 261b520da399..8eb6c2bf4557 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h @@ -538,28 +538,6 @@ #define CHV_TX_DW14(ch, lane) _TXLANE(ch, lane, 0xb8) #define DPIO_UPAR_SHIFT 30 -/* BXT PHY registers */ -#define _BXT_PHY0_BASE 0x6C000 -#define _BXT_PHY1_BASE 0x162000 -#define _BXT_PHY2_BASE 0x163000 -#define BXT_PHY_BASE(phy) \ - _PICK_EVEN_2RANGES(phy, 1, \ - _BXT_PHY0_BASE, _BXT_PHY0_BASE, \ - _BXT_PHY1_BASE, _BXT_PHY2_BASE) - -#define _BXT_PHY(phy, reg) \ - _MMIO(BXT_PHY_BASE(phy) - _BXT_PHY0_BASE + (reg)) - -#define _BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) \ - (BXT_PHY_BASE(phy) + _PIPE((ch), (reg_ch0) - _BXT_PHY0_BASE, \ - (reg_ch1) - _BXT_PHY0_BASE)) -#define _MMIO_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) \ - _MMIO(_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1)) -#define _BXT_LANE_OFFSET(lane) (((lane) >> 1) * 0x200 + \ - ((lane) & 1) * 0x80) -#define _MMIO_BXT_PHY_CH_LN(phy, ch, lane, reg_ch0, reg_ch1) \ - _MMIO(_BXT_PHY_CH(phy, ch, reg_ch0, reg_ch1) + _BXT_LANE_OFFSET(lane)) - #define BXT_P_CR_GT_DISP_PWRON _MMIO(0x138090) #define MIPIO_RST_CTRL (1 << 2) @@ -581,246 +559,6 @@ _PHY_CTL_FAMILY_DDI, _PHY_CTL_FAMILY_DDI, \ _PHY_CTL_FAMILY_EDP, _PHY_CTL_FAMILY_DDI_C)) -/* BXT PHY PLL registers */ -#define _PORT_PLL_A 0x46074 -#define _PORT_PLL_B 0x46078 -#define _PORT_PLL_C 0x4607c -#define PORT_PLL_ENABLE REG_BIT(31) -#define PORT_PLL_LOCK REG_BIT(30) -#define PORT_PLL_REF_SEL REG_BIT(27) -#define PORT_PLL_POWER_ENABLE REG_BIT(26) -#define PORT_PLL_POWER_STATE REG_BIT(25) -#define BXT_PORT_PLL_ENABLE(port) _MMIO_PORT(port, _PORT_PLL_A, _PORT_PLL_B) - -#define _PORT_PLL_EBB_0_A 0x162034 -#define _PORT_PLL_EBB_0_B 0x6C034 -#define _PORT_PLL_EBB_0_C 0x6C340 -#define PORT_PLL_P1_MASK REG_GENMASK(15, 13) -#define PORT_PLL_P1(p1) REG_FIELD_PREP(PORT_PLL_P1_MASK, (p1)) -#define PORT_PLL_P2_MASK REG_GENMASK(12, 8) -#define PORT_PLL_P2(p2) REG_FIELD_PREP(PORT_PLL_P2_MASK, (p2)) -#define BXT_PORT_PLL_EBB_0(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PLL_EBB_0_B, \ - _PORT_PLL_EBB_0_C) - -#define _PORT_PLL_EBB_4_A 0x162038 -#define _PORT_PLL_EBB_4_B 0x6C038 -#define _PORT_PLL_EBB_4_C 0x6C344 -#define PORT_PLL_RECALIBRATE REG_BIT(14) -#define PORT_PLL_10BIT_CLK_ENABLE REG_BIT(13) -#define BXT_PORT_PLL_EBB_4(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PLL_EBB_4_B, \ - _PORT_PLL_EBB_4_C) - -#define _PORT_PLL_0_A 0x162100 -#define _PORT_PLL_0_B 0x6C100 -#define _PORT_PLL_0_C 0x6C380 -/* PORT_PLL_0_A */ -#define PORT_PLL_M2_INT_MASK REG_GENMASK(7, 0) -#define PORT_PLL_M2_INT(m2_int) REG_FIELD_PREP(PORT_PLL_M2_INT_MASK, (m2_int)) -/* PORT_PLL_1_A */ -#define PORT_PLL_N_MASK REG_GENMASK(11, 8) -#define PORT_PLL_N(n) REG_FIELD_PREP(PORT_PLL_N_MASK, (n)) -/* PORT_PLL_2_A */ -#define PORT_PLL_M2_FRAC_MASK REG_GENMASK(21, 0) -#define PORT_PLL_M2_FRAC(m2_frac) REG_FIELD_PREP(PORT_PLL_M2_FRAC_MASK, (m2_frac)) -/* PORT_PLL_3_A */ -#define PORT_PLL_M2_FRAC_ENABLE REG_BIT(16) -/* PORT_PLL_6_A */ -#define PORT_PLL_GAIN_CTL_MASK REG_GENMASK(18, 16) -#define PORT_PLL_GAIN_CTL(x) REG_FIELD_PREP(PORT_PLL_GAIN_CTL_MASK, (x)) -#define PORT_PLL_INT_COEFF_MASK REG_GENMASK(12, 8) -#define PORT_PLL_INT_COEFF(x) REG_FIELD_PREP(PORT_PLL_INT_COEFF_MASK, (x)) -#define PORT_PLL_PROP_COEFF_MASK REG_GENMASK(3, 0) -#define PORT_PLL_PROP_COEFF(x) REG_FIELD_PREP(PORT_PLL_PROP_COEFF_MASK, (x)) -/* PORT_PLL_8_A */ -#define PORT_PLL_TARGET_CNT_MASK REG_GENMASK(9, 0) -#define PORT_PLL_TARGET_CNT(x) REG_FIELD_PREP(PORT_PLL_TARGET_CNT_MASK, (x)) -/* PORT_PLL_9_A */ -#define PORT_PLL_LOCK_THRESHOLD_MASK REG_GENMASK(3, 1) -#define PORT_PLL_LOCK_THRESHOLD(x) REG_FIELD_PREP(PORT_PLL_LOCK_THRESHOLD_MASK, (x)) -/* PORT_PLL_10_A */ -#define PORT_PLL_DCO_AMP_OVR_EN_H REG_BIT(27) -#define PORT_PLL_DCO_AMP_MASK REG_GENMASK(13, 10) -#define PORT_PLL_DCO_AMP(x) REG_FIELD_PREP(PORT_PLL_DCO_AMP_MASK, (x)) -#define _PORT_PLL_BASE(phy, ch) _BXT_PHY_CH(phy, ch, \ - _PORT_PLL_0_B, \ - _PORT_PLL_0_C) -#define BXT_PORT_PLL(phy, ch, idx) _MMIO(_PORT_PLL_BASE(phy, ch) + \ - (idx) * 4) - -/* BXT PHY common lane registers */ -#define _PORT_CL1CM_DW0_A 0x162000 -#define _PORT_CL1CM_DW0_BC 0x6C000 -#define PHY_POWER_GOOD REG_BIT(16) -#define PHY_RESERVED REG_BIT(7) -#define BXT_PORT_CL1CM_DW0(phy) _BXT_PHY((phy), _PORT_CL1CM_DW0_BC) - -#define _PORT_CL1CM_DW9_A 0x162024 -#define _PORT_CL1CM_DW9_BC 0x6C024 -#define IREF0RC_OFFSET_MASK REG_GENMASK(15, 8) -#define IREF0RC_OFFSET(x) REG_FIELD_PREP(IREF0RC_OFFSET_MASK, (x)) -#define BXT_PORT_CL1CM_DW9(phy) _BXT_PHY((phy), _PORT_CL1CM_DW9_BC) - -#define _PORT_CL1CM_DW10_A 0x162028 -#define _PORT_CL1CM_DW10_BC 0x6C028 -#define IREF1RC_OFFSET_MASK REG_GENMASK(15, 8) -#define IREF1RC_OFFSET(x) REG_FIELD_PREP(IREF1RC_OFFSET_MASK, (x)) -#define BXT_PORT_CL1CM_DW10(phy) _BXT_PHY((phy), _PORT_CL1CM_DW10_BC) - -#define _PORT_CL1CM_DW28_A 0x162070 -#define _PORT_CL1CM_DW28_BC 0x6C070 -#define OCL1_POWER_DOWN_EN REG_BIT(23) -#define DW28_OLDO_DYN_PWR_DOWN_EN REG_BIT(22) -#define SUS_CLK_CONFIG REG_GENMASK(1, 0) -#define BXT_PORT_CL1CM_DW28(phy) _BXT_PHY((phy), _PORT_CL1CM_DW28_BC) - -#define _PORT_CL1CM_DW30_A 0x162078 -#define _PORT_CL1CM_DW30_BC 0x6C078 -#define OCL2_LDOFUSE_PWR_DIS REG_BIT(6) -#define BXT_PORT_CL1CM_DW30(phy) _BXT_PHY((phy), _PORT_CL1CM_DW30_BC) - -/* The spec defines this only for BXT PHY0, but lets assume that this - * would exist for PHY1 too if it had a second channel. - */ -#define _PORT_CL2CM_DW6_A 0x162358 -#define _PORT_CL2CM_DW6_BC 0x6C358 -#define BXT_PORT_CL2CM_DW6(phy) _BXT_PHY((phy), _PORT_CL2CM_DW6_BC) -#define DW6_OLDO_DYN_PWR_DOWN_EN REG_BIT(28) - -/* BXT PHY Ref registers */ -#define _PORT_REF_DW3_A 0x16218C -#define _PORT_REF_DW3_BC 0x6C18C -#define GRC_DONE REG_BIT(22) -#define BXT_PORT_REF_DW3(phy) _BXT_PHY((phy), _PORT_REF_DW3_BC) - -#define _PORT_REF_DW6_A 0x162198 -#define _PORT_REF_DW6_BC 0x6C198 -#define GRC_CODE_MASK REG_GENMASK(31, 24) -#define GRC_CODE(x) REG_FIELD_PREP(GRC_CODE_MASK, (x)) -#define GRC_CODE_FAST_MASK REG_GENMASK(23, 16) -#define GRC_CODE_FAST(x) REG_FIELD_PREP(GRC_CODE_FAST_MASK, (x)) -#define GRC_CODE_SLOW_MASK REG_GENMASK(15, 8) -#define GRC_CODE_SLOW(x) REG_FIELD_PREP(GRC_CODE_SLOW_MASK, (x)) -#define GRC_CODE_NOM_MASK REG_GENMASK(7, 0) -#define GRC_CODE_NOM(x) REG_FIELD_PREP(GRC_CODE_NOM_MASK, (x)) -#define BXT_PORT_REF_DW6(phy) _BXT_PHY((phy), _PORT_REF_DW6_BC) - -#define _PORT_REF_DW8_A 0x1621A0 -#define _PORT_REF_DW8_BC 0x6C1A0 -#define GRC_DIS REG_BIT(15) -#define GRC_RDY_OVRD REG_BIT(1) -#define BXT_PORT_REF_DW8(phy) _BXT_PHY((phy), _PORT_REF_DW8_BC) - -/* BXT PHY PCS registers */ -#define _PORT_PCS_DW10_LN01_A 0x162428 -#define _PORT_PCS_DW10_LN01_B 0x6C428 -#define _PORT_PCS_DW10_LN01_C 0x6C828 -#define _PORT_PCS_DW10_GRP_A 0x162C28 -#define _PORT_PCS_DW10_GRP_B 0x6CC28 -#define _PORT_PCS_DW10_GRP_C 0x6CE28 -#define BXT_PORT_PCS_DW10_LN01(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PCS_DW10_LN01_B, \ - _PORT_PCS_DW10_LN01_C) -#define BXT_PORT_PCS_DW10_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PCS_DW10_GRP_B, \ - _PORT_PCS_DW10_GRP_C) - -#define TX2_SWING_CALC_INIT REG_BIT(31) -#define TX1_SWING_CALC_INIT REG_BIT(30) - -#define _PORT_PCS_DW12_LN01_A 0x162430 -#define _PORT_PCS_DW12_LN01_B 0x6C430 -#define _PORT_PCS_DW12_LN01_C 0x6C830 -#define _PORT_PCS_DW12_LN23_A 0x162630 -#define _PORT_PCS_DW12_LN23_B 0x6C630 -#define _PORT_PCS_DW12_LN23_C 0x6CA30 -#define _PORT_PCS_DW12_GRP_A 0x162c30 -#define _PORT_PCS_DW12_GRP_B 0x6CC30 -#define _PORT_PCS_DW12_GRP_C 0x6CE30 -#define LANESTAGGER_STRAP_OVRD REG_BIT(6) -#define LANE_STAGGER_MASK REG_GENMASK(4, 0) -#define BXT_PORT_PCS_DW12_LN01(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PCS_DW12_LN01_B, \ - _PORT_PCS_DW12_LN01_C) -#define BXT_PORT_PCS_DW12_LN23(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PCS_DW12_LN23_B, \ - _PORT_PCS_DW12_LN23_C) -#define BXT_PORT_PCS_DW12_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_PCS_DW12_GRP_B, \ - _PORT_PCS_DW12_GRP_C) - -/* BXT PHY TX registers */ -#define _PORT_TX_DW2_LN0_A 0x162508 -#define _PORT_TX_DW2_LN0_B 0x6C508 -#define _PORT_TX_DW2_LN0_C 0x6C908 -#define _PORT_TX_DW2_GRP_A 0x162D08 -#define _PORT_TX_DW2_GRP_B 0x6CD08 -#define _PORT_TX_DW2_GRP_C 0x6CF08 -#define BXT_PORT_TX_DW2_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ - _PORT_TX_DW2_LN0_B, \ - _PORT_TX_DW2_LN0_C) -#define BXT_PORT_TX_DW2_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_TX_DW2_GRP_B, \ - _PORT_TX_DW2_GRP_C) -#define MARGIN_000_MASK REG_GENMASK(23, 16) -#define MARGIN_000(x) REG_FIELD_PREP(MARGIN_000_MASK, (x)) -#define UNIQ_TRANS_SCALE_MASK REG_GENMASK(15, 8) -#define UNIQ_TRANS_SCALE(x) REG_FIELD_PREP(UNIQ_TRANS_SCALE_MASK, (x)) - -#define _PORT_TX_DW3_LN0_A 0x16250C -#define _PORT_TX_DW3_LN0_B 0x6C50C -#define _PORT_TX_DW3_LN0_C 0x6C90C -#define _PORT_TX_DW3_GRP_A 0x162D0C -#define _PORT_TX_DW3_GRP_B 0x6CD0C -#define _PORT_TX_DW3_GRP_C 0x6CF0C -#define BXT_PORT_TX_DW3_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ - _PORT_TX_DW3_LN0_B, \ - _PORT_TX_DW3_LN0_C) -#define BXT_PORT_TX_DW3_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_TX_DW3_GRP_B, \ - _PORT_TX_DW3_GRP_C) -#define SCALE_DCOMP_METHOD REG_BIT(26) -#define UNIQUE_TRANGE_EN_METHOD REG_BIT(27) - -#define _PORT_TX_DW4_LN0_A 0x162510 -#define _PORT_TX_DW4_LN0_B 0x6C510 -#define _PORT_TX_DW4_LN0_C 0x6C910 -#define _PORT_TX_DW4_GRP_A 0x162D10 -#define _PORT_TX_DW4_GRP_B 0x6CD10 -#define _PORT_TX_DW4_GRP_C 0x6CF10 -#define BXT_PORT_TX_DW4_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ - _PORT_TX_DW4_LN0_B, \ - _PORT_TX_DW4_LN0_C) -#define BXT_PORT_TX_DW4_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_TX_DW4_GRP_B, \ - _PORT_TX_DW4_GRP_C) -#define DE_EMPHASIS_MASK REG_GENMASK(31, 24) -#define DE_EMPHASIS(x) REG_FIELD_PREP(DE_EMPHASIS_MASK, (x)) - -#define _PORT_TX_DW5_LN0_A 0x162514 -#define _PORT_TX_DW5_LN0_B 0x6C514 -#define _PORT_TX_DW5_LN0_C 0x6C914 -#define _PORT_TX_DW5_GRP_A 0x162D14 -#define _PORT_TX_DW5_GRP_B 0x6CD14 -#define _PORT_TX_DW5_GRP_C 0x6CF14 -#define BXT_PORT_TX_DW5_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ - _PORT_TX_DW5_LN0_B, \ - _PORT_TX_DW5_LN0_C) -#define BXT_PORT_TX_DW5_GRP(phy, ch) _MMIO_BXT_PHY_CH(phy, ch, \ - _PORT_TX_DW5_GRP_B, \ - _PORT_TX_DW5_GRP_C) -#define DCC_DELAY_RANGE_1 REG_BIT(9) -#define DCC_DELAY_RANGE_2 REG_BIT(8) - -#define _PORT_TX_DW14_LN0_A 0x162538 -#define _PORT_TX_DW14_LN0_B 0x6C538 -#define _PORT_TX_DW14_LN0_C 0x6C938 -#define LATENCY_OPTIM REG_BIT(30) -#define BXT_PORT_TX_DW14_LN(phy, ch, lane) _MMIO_BXT_PHY_CH_LN(phy, ch, lane, \ - _PORT_TX_DW14_LN0_B, \ - _PORT_TX_DW14_LN0_C) - /* UAIMI scratch pad register 1 */ #define UAIMI_SPR1 _MMIO(0x4F074) /* SKL VccIO mask */