On Thu, Dec 12, 2013 at 11:20:58AM +0000, Damien Lespiau wrote: > Turns out it'd be nice to change some device information at run-time or > simply have some code to fill in the info struct instead of having to > declare the values in 30+ structures. > > What prompted this change is handling fused out display/pipe and > tweaking num_pipes at run-time, but I'm quite sure we'll find other > flags/limits to stick into dev_priv->info. > > Most of the changes were done with a sed: > sed -i -e 's/dev_priv->info->/dev_priv->info./g' drivers/gpu/drm/i915/*[ch] > > with a few tweaks to make it all work: > - Change the field definition in struct drm_i915_private > - adjust i915_dump_device_info() > - adjust i915_driver_load() > - adjust the INTEL_INFO() macro > > Signed-off-by: Damien Lespiau <damien.lespiau@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_dma.c | 4 +- > drivers/gpu/drm/i915/i915_drv.h | 4 +- > drivers/gpu/drm/i915/i915_gem.c | 2 +- > drivers/gpu/drm/i915/i915_irq.c | 4 +- > drivers/gpu/drm/i915/i915_reg.h | 228 +++++++++++++++++------------------ > drivers/gpu/drm/i915/intel_display.c | 20 +-- > drivers/gpu/drm/i915/intel_pm.c | 12 +- > 7 files changed, 137 insertions(+), 137 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c > index bfbf9fc..332d5b6 100644 > --- a/drivers/gpu/drm/i915/i915_dma.c > +++ b/drivers/gpu/drm/i915/i915_dma.c > @@ -1442,7 +1442,7 @@ static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv) > > static void i915_dump_device_info(struct drm_i915_private *dev_priv) > { > - const struct intel_device_info *info = dev_priv->info; > + const struct intel_device_info *info = &dev_priv->info; > > #define PRINT_S(name) "%s" > #define SEP_EMPTY > @@ -1492,7 +1492,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) > > dev->dev_private = (void *)dev_priv; > dev_priv->dev = dev; > - dev_priv->info = info; > + memcpy(&dev_priv->info, info, sizeof(*info)); > > spin_lock_init(&dev_priv->irq_lock); > spin_lock_init(&dev_priv->gpu_error.lock); > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 46072b9..6a7844c 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1327,7 +1327,7 @@ typedef struct drm_i915_private { > struct drm_device *dev; > struct kmem_cache *slab; > > - const struct intel_device_info *info; > + struct intel_device_info info; > > int relative_constants_mode; > > @@ -1751,7 +1751,7 @@ struct drm_i915_file_private { > atomic_t rps_wait_boost; > }; > > -#define INTEL_INFO(dev) (to_i915(dev)->info) > +#define INTEL_INFO(dev) (&to_i915(dev)->info) Maybe cast it to const to avoid some accidental modifications. Even better if we'd always use the macro to access it, then everything would get the const protection. > > #define IS_I830(dev) ((dev)->pdev->device == 0x3577) > #define IS_845G(dev) ((dev)->pdev->device == 0x2562) > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 4ecfbf7..8ea7b53 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -1027,7 +1027,7 @@ static int __wait_seqno(struct intel_ring_buffer *ring, u32 seqno, > > timeout_jiffies = timeout ? timespec_to_jiffies_timeout(timeout) : 1; > > - if (dev_priv->info->gen >= 6 && can_wait_boost(file_priv)) { > + if (dev_priv->info.gen >= 6 && can_wait_boost(file_priv)) { > gen6_rps_boost(dev_priv); > if (file_priv) > mod_delayed_work(dev_priv->wq, > diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c > index 1d44c79..eb4adbc 100644 > --- a/drivers/gpu/drm/i915/i915_irq.c > +++ b/drivers/gpu/drm/i915/i915_irq.c > @@ -2209,7 +2209,7 @@ static int i915_enable_vblank(struct drm_device *dev, int pipe) > PIPE_VBLANK_INTERRUPT_ENABLE); > > /* maintain vblank delivery even in deep C-states */ > - if (dev_priv->info->gen == 3) > + if (dev_priv->info.gen == 3) > I915_WRITE(INSTPM, _MASKED_BIT_DISABLE(INSTPM_AGPBUSY_DIS)); > spin_unlock_irqrestore(&dev_priv->irq_lock, irqflags); > > @@ -2281,7 +2281,7 @@ static void i915_disable_vblank(struct drm_device *dev, int pipe) > unsigned long irqflags; > > spin_lock_irqsave(&dev_priv->irq_lock, irqflags); > - if (dev_priv->info->gen == 3) > + if (dev_priv->info.gen == 3) > I915_WRITE(INSTPM, _MASKED_BIT_ENABLE(INSTPM_AGPBUSY_DIS)); > > i915_disable_pipestat(dev_priv, pipe, > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h > index e8cc27c..67e9673 100644 > --- a/drivers/gpu/drm/i915/i915_reg.h > +++ b/drivers/gpu/drm/i915/i915_reg.h > @@ -1213,8 +1213,8 @@ > #define VGA1_PD_P1_DIV_2 (1 << 13) > #define VGA1_PD_P1_SHIFT 8 > #define VGA1_PD_P1_MASK (0x1f << 8) > -#define _DPLL_A (dev_priv->info->display_mmio_offset + 0x6014) > -#define _DPLL_B (dev_priv->info->display_mmio_offset + 0x6018) > +#define _DPLL_A (dev_priv->info.display_mmio_offset + 0x6014) > +#define _DPLL_B (dev_priv->info.display_mmio_offset + 0x6018) > #define DPLL(pipe) _PIPE(pipe, _DPLL_A, _DPLL_B) > #define DPLL_VCO_ENABLE (1 << 31) > #define DPLL_SDVO_HIGH_SPEED (1 << 30) > @@ -1277,7 +1277,7 @@ > #define SDVO_MULTIPLIER_MASK 0x000000ff > #define SDVO_MULTIPLIER_SHIFT_HIRES 4 > #define SDVO_MULTIPLIER_SHIFT_VGA 0 > -#define _DPLL_A_MD (dev_priv->info->display_mmio_offset + 0x601c) /* 965+ only */ > +#define _DPLL_A_MD (dev_priv->info.display_mmio_offset + 0x601c) /* 965+ only */ > /* > * UDI pixel divider, controlling how many pixels are stuffed into a packet. > * > @@ -1314,7 +1314,7 @@ > */ > #define DPLL_MD_VGA_UDI_MULTIPLIER_MASK 0x0000003f > #define DPLL_MD_VGA_UDI_MULTIPLIER_SHIFT 0 > -#define _DPLL_B_MD (dev_priv->info->display_mmio_offset + 0x6020) /* 965+ only */ > +#define _DPLL_B_MD (dev_priv->info.display_mmio_offset + 0x6020) /* 965+ only */ > #define DPLL_MD(pipe) _PIPE(pipe, _DPLL_A_MD, _DPLL_B_MD) > > #define _FPA0 0x06040 > @@ -1347,7 +1347,7 @@ > #define DSTATE_PLL_D3_OFF (1<<3) > #define DSTATE_GFX_CLOCK_GATING (1<<1) > #define DSTATE_DOT_CLOCK_GATING (1<<0) > -#define DSPCLK_GATE_D (dev_priv->info->display_mmio_offset + 0x6200) > +#define DSPCLK_GATE_D (dev_priv->info.display_mmio_offset + 0x6200) > # define DPUNIT_B_CLOCK_GATE_DISABLE (1 << 30) /* 965 */ > # define VSUNIT_CLOCK_GATE_DISABLE (1 << 29) /* 965 */ > # define VRHUNIT_CLOCK_GATE_DISABLE (1 << 28) /* 965 */ > @@ -1472,8 +1472,8 @@ > * Palette regs > */ > > -#define _PALETTE_A (dev_priv->info->display_mmio_offset + 0xa000) > -#define _PALETTE_B (dev_priv->info->display_mmio_offset + 0xa800) > +#define _PALETTE_A (dev_priv->info.display_mmio_offset + 0xa000) > +#define _PALETTE_B (dev_priv->info.display_mmio_offset + 0xa800) > #define PALETTE(pipe) _PIPE(pipe, _PALETTE_A, _PALETTE_B) > > /* MCH MMIO space */ > @@ -1861,7 +1861,7 @@ > */ > > /* Pipe A CRC regs */ > -#define _PIPE_CRC_CTL_A (dev_priv->info->display_mmio_offset + 0x60050) > +#define _PIPE_CRC_CTL_A (dev_priv->info.display_mmio_offset + 0x60050) > #define PIPE_CRC_ENABLE (1 << 31) > /* ivb+ source selection */ > #define PIPE_CRC_SOURCE_PRIMARY_IVB (0 << 29) > @@ -1901,11 +1901,11 @@ > #define _PIPE_CRC_RES_4_A_IVB 0x60070 > #define _PIPE_CRC_RES_5_A_IVB 0x60074 > > -#define _PIPE_CRC_RES_RED_A (dev_priv->info->display_mmio_offset + 0x60060) > -#define _PIPE_CRC_RES_GREEN_A (dev_priv->info->display_mmio_offset + 0x60064) > -#define _PIPE_CRC_RES_BLUE_A (dev_priv->info->display_mmio_offset + 0x60068) > -#define _PIPE_CRC_RES_RES1_A_I915 (dev_priv->info->display_mmio_offset + 0x6006c) > -#define _PIPE_CRC_RES_RES2_A_G4X (dev_priv->info->display_mmio_offset + 0x60080) > +#define _PIPE_CRC_RES_RED_A (dev_priv->info.display_mmio_offset + 0x60060) > +#define _PIPE_CRC_RES_GREEN_A (dev_priv->info.display_mmio_offset + 0x60064) > +#define _PIPE_CRC_RES_BLUE_A (dev_priv->info.display_mmio_offset + 0x60068) > +#define _PIPE_CRC_RES_RES1_A_I915 (dev_priv->info.display_mmio_offset + 0x6006c) > +#define _PIPE_CRC_RES_RES2_A_G4X (dev_priv->info.display_mmio_offset + 0x60080) > > /* Pipe B CRC regs */ > #define _PIPE_CRC_RES_1_B_IVB 0x61064 > @@ -1938,26 +1938,26 @@ > _PIPE_INC(pipe, _PIPE_CRC_RES_RES2_A_G4X, 0x01000) > > /* Pipe A timing regs */ > -#define _HTOTAL_A (dev_priv->info->display_mmio_offset + 0x60000) > -#define _HBLANK_A (dev_priv->info->display_mmio_offset + 0x60004) > -#define _HSYNC_A (dev_priv->info->display_mmio_offset + 0x60008) > -#define _VTOTAL_A (dev_priv->info->display_mmio_offset + 0x6000c) > -#define _VBLANK_A (dev_priv->info->display_mmio_offset + 0x60010) > -#define _VSYNC_A (dev_priv->info->display_mmio_offset + 0x60014) > -#define _PIPEASRC (dev_priv->info->display_mmio_offset + 0x6001c) > -#define _BCLRPAT_A (dev_priv->info->display_mmio_offset + 0x60020) > -#define _VSYNCSHIFT_A (dev_priv->info->display_mmio_offset + 0x60028) > +#define _HTOTAL_A (dev_priv->info.display_mmio_offset + 0x60000) > +#define _HBLANK_A (dev_priv->info.display_mmio_offset + 0x60004) > +#define _HSYNC_A (dev_priv->info.display_mmio_offset + 0x60008) > +#define _VTOTAL_A (dev_priv->info.display_mmio_offset + 0x6000c) > +#define _VBLANK_A (dev_priv->info.display_mmio_offset + 0x60010) > +#define _VSYNC_A (dev_priv->info.display_mmio_offset + 0x60014) > +#define _PIPEASRC (dev_priv->info.display_mmio_offset + 0x6001c) > +#define _BCLRPAT_A (dev_priv->info.display_mmio_offset + 0x60020) > +#define _VSYNCSHIFT_A (dev_priv->info.display_mmio_offset + 0x60028) > > /* Pipe B timing regs */ > -#define _HTOTAL_B (dev_priv->info->display_mmio_offset + 0x61000) > -#define _HBLANK_B (dev_priv->info->display_mmio_offset + 0x61004) > -#define _HSYNC_B (dev_priv->info->display_mmio_offset + 0x61008) > -#define _VTOTAL_B (dev_priv->info->display_mmio_offset + 0x6100c) > -#define _VBLANK_B (dev_priv->info->display_mmio_offset + 0x61010) > -#define _VSYNC_B (dev_priv->info->display_mmio_offset + 0x61014) > -#define _PIPEBSRC (dev_priv->info->display_mmio_offset + 0x6101c) > -#define _BCLRPAT_B (dev_priv->info->display_mmio_offset + 0x61020) > -#define _VSYNCSHIFT_B (dev_priv->info->display_mmio_offset + 0x61028) > +#define _HTOTAL_B (dev_priv->info.display_mmio_offset + 0x61000) > +#define _HBLANK_B (dev_priv->info.display_mmio_offset + 0x61004) > +#define _HSYNC_B (dev_priv->info.display_mmio_offset + 0x61008) > +#define _VTOTAL_B (dev_priv->info.display_mmio_offset + 0x6100c) > +#define _VBLANK_B (dev_priv->info.display_mmio_offset + 0x61010) > +#define _VSYNC_B (dev_priv->info.display_mmio_offset + 0x61014) > +#define _PIPEBSRC (dev_priv->info.display_mmio_offset + 0x6101c) > +#define _BCLRPAT_B (dev_priv->info.display_mmio_offset + 0x61020) > +#define _VSYNCSHIFT_B (dev_priv->info.display_mmio_offset + 0x61028) > > #define HTOTAL(trans) _TRANSCODER(trans, _HTOTAL_A, _HTOTAL_B) > #define HBLANK(trans) _TRANSCODER(trans, _HBLANK_A, _HBLANK_B) > @@ -2083,7 +2083,7 @@ > > > /* Hotplug control (945+ only) */ > -#define PORT_HOTPLUG_EN (dev_priv->info->display_mmio_offset + 0x61110) > +#define PORT_HOTPLUG_EN (dev_priv->info.display_mmio_offset + 0x61110) > #define PORTB_HOTPLUG_INT_EN (1 << 29) > #define PORTC_HOTPLUG_INT_EN (1 << 28) > #define PORTD_HOTPLUG_INT_EN (1 << 27) > @@ -2113,7 +2113,7 @@ > #define CRT_HOTPLUG_DETECT_VOLTAGE_325MV (0 << 2) > #define CRT_HOTPLUG_DETECT_VOLTAGE_475MV (1 << 2) > > -#define PORT_HOTPLUG_STAT (dev_priv->info->display_mmio_offset + 0x61114) > +#define PORT_HOTPLUG_STAT (dev_priv->info.display_mmio_offset + 0x61114) > /* > * HDMI/DP bits are gen4+ > * > @@ -2385,7 +2385,7 @@ > #define PP_DIVISOR 0x61210 > > /* Panel fitting */ > -#define PFIT_CONTROL (dev_priv->info->display_mmio_offset + 0x61230) > +#define PFIT_CONTROL (dev_priv->info.display_mmio_offset + 0x61230) > #define PFIT_ENABLE (1 << 31) > #define PFIT_PIPE_MASK (3 << 29) > #define PFIT_PIPE_SHIFT 29 > @@ -2403,7 +2403,7 @@ > #define PFIT_SCALING_PROGRAMMED (1 << 26) > #define PFIT_SCALING_PILLAR (2 << 26) > #define PFIT_SCALING_LETTER (3 << 26) > -#define PFIT_PGM_RATIOS (dev_priv->info->display_mmio_offset + 0x61234) > +#define PFIT_PGM_RATIOS (dev_priv->info.display_mmio_offset + 0x61234) > /* Pre-965 */ > #define PFIT_VERT_SCALE_SHIFT 20 > #define PFIT_VERT_SCALE_MASK 0xfff00000 > @@ -2415,25 +2415,25 @@ > #define PFIT_HORIZ_SCALE_SHIFT_965 0 > #define PFIT_HORIZ_SCALE_MASK_965 0x00001fff > > -#define PFIT_AUTO_RATIOS (dev_priv->info->display_mmio_offset + 0x61238) > +#define PFIT_AUTO_RATIOS (dev_priv->info.display_mmio_offset + 0x61238) > > -#define _VLV_BLC_PWM_CTL2_A (dev_priv->info->display_mmio_offset + 0x61250) > -#define _VLV_BLC_PWM_CTL2_B (dev_priv->info->display_mmio_offset + 0x61350) > +#define _VLV_BLC_PWM_CTL2_A (dev_priv->info.display_mmio_offset + 0x61250) > +#define _VLV_BLC_PWM_CTL2_B (dev_priv->info.display_mmio_offset + 0x61350) > #define VLV_BLC_PWM_CTL2(pipe) _PIPE(pipe, _VLV_BLC_PWM_CTL2_A, \ > _VLV_BLC_PWM_CTL2_B) > > -#define _VLV_BLC_PWM_CTL_A (dev_priv->info->display_mmio_offset + 0x61254) > -#define _VLV_BLC_PWM_CTL_B (dev_priv->info->display_mmio_offset + 0x61354) > +#define _VLV_BLC_PWM_CTL_A (dev_priv->info.display_mmio_offset + 0x61254) > +#define _VLV_BLC_PWM_CTL_B (dev_priv->info.display_mmio_offset + 0x61354) > #define VLV_BLC_PWM_CTL(pipe) _PIPE(pipe, _VLV_BLC_PWM_CTL_A, \ > _VLV_BLC_PWM_CTL_B) > > -#define _VLV_BLC_HIST_CTL_A (dev_priv->info->display_mmio_offset + 0x61260) > -#define _VLV_BLC_HIST_CTL_B (dev_priv->info->display_mmio_offset + 0x61360) > +#define _VLV_BLC_HIST_CTL_A (dev_priv->info.display_mmio_offset + 0x61260) > +#define _VLV_BLC_HIST_CTL_B (dev_priv->info.display_mmio_offset + 0x61360) > #define VLV_BLC_HIST_CTL(pipe) _PIPE(pipe, _VLV_BLC_HIST_CTL_A, \ > _VLV_BLC_HIST_CTL_B) > > /* Backlight control */ > -#define BLC_PWM_CTL2 (dev_priv->info->display_mmio_offset + 0x61250) /* 965+ only */ > +#define BLC_PWM_CTL2 (dev_priv->info.display_mmio_offset + 0x61250) /* 965+ only */ > #define BLM_PWM_ENABLE (1 << 31) > #define BLM_COMBINATION_MODE (1 << 30) /* gen4 only */ > #define BLM_PIPE_SELECT (1 << 29) > @@ -2456,7 +2456,7 @@ > #define BLM_PHASE_IN_COUNT_MASK (0xff << 8) > #define BLM_PHASE_IN_INCR_SHIFT (0) > #define BLM_PHASE_IN_INCR_MASK (0xff << 0) > -#define BLC_PWM_CTL (dev_priv->info->display_mmio_offset + 0x61254) > +#define BLC_PWM_CTL (dev_priv->info.display_mmio_offset + 0x61254) > /* > * This is the most significant 15 bits of the number of backlight cycles in a > * complete cycle of the modulated backlight control. > @@ -2478,7 +2478,7 @@ > #define BACKLIGHT_DUTY_CYCLE_MASK_PNV (0xfffe) > #define BLM_POLARITY_PNV (1 << 0) /* pnv only */ > > -#define BLC_HIST_CTL (dev_priv->info->display_mmio_offset + 0x61260) > +#define BLC_HIST_CTL (dev_priv->info.display_mmio_offset + 0x61260) > > /* New registers for PCH-split platforms. Safe where new bits show up, the > * register layout machtes with gen4 BLC_PWM_CTL[12]. */ > @@ -3172,10 +3172,10 @@ > /* Display & cursor control */ > > /* Pipe A */ > -#define _PIPEADSL (dev_priv->info->display_mmio_offset + 0x70000) > +#define _PIPEADSL (dev_priv->info.display_mmio_offset + 0x70000) > #define DSL_LINEMASK_GEN2 0x00000fff > #define DSL_LINEMASK_GEN3 0x00001fff > -#define _PIPEACONF (dev_priv->info->display_mmio_offset + 0x70008) > +#define _PIPEACONF (dev_priv->info.display_mmio_offset + 0x70008) > #define PIPECONF_ENABLE (1<<31) > #define PIPECONF_DISABLE 0 > #define PIPECONF_DOUBLE_WIDE (1<<30) > @@ -3218,7 +3218,7 @@ > #define PIPECONF_DITHER_TYPE_ST1 (1<<2) > #define PIPECONF_DITHER_TYPE_ST2 (2<<2) > #define PIPECONF_DITHER_TYPE_TEMP (3<<2) > -#define _PIPEASTAT (dev_priv->info->display_mmio_offset + 0x70024) > +#define _PIPEASTAT (dev_priv->info.display_mmio_offset + 0x70024) > #define PIPE_FIFO_UNDERRUN_STATUS (1UL<<31) > #define SPRITE1_FLIPDONE_INT_EN_VLV (1UL<<30) > #define PIPE_CRC_ERROR_ENABLE (1UL<<29) > @@ -3317,7 +3317,7 @@ > #define DSPARB_BEND_SHIFT 9 /* on 855 */ > #define DSPARB_AEND_SHIFT 0 > > -#define DSPFW1 (dev_priv->info->display_mmio_offset + 0x70034) > +#define DSPFW1 (dev_priv->info.display_mmio_offset + 0x70034) > #define DSPFW_SR_SHIFT 23 > #define DSPFW_SR_MASK (0x1ff<<23) > #define DSPFW_CURSORB_SHIFT 16 > @@ -3325,11 +3325,11 @@ > #define DSPFW_PLANEB_SHIFT 8 > #define DSPFW_PLANEB_MASK (0x7f<<8) > #define DSPFW_PLANEA_MASK (0x7f) > -#define DSPFW2 (dev_priv->info->display_mmio_offset + 0x70038) > +#define DSPFW2 (dev_priv->info.display_mmio_offset + 0x70038) > #define DSPFW_CURSORA_MASK 0x00003f00 > #define DSPFW_CURSORA_SHIFT 8 > #define DSPFW_PLANEC_MASK (0x7f) > -#define DSPFW3 (dev_priv->info->display_mmio_offset + 0x7003c) > +#define DSPFW3 (dev_priv->info.display_mmio_offset + 0x7003c) > #define DSPFW_HPLL_SR_EN (1<<31) > #define DSPFW_CURSOR_SR_SHIFT 24 > #define PINEVIEW_SELF_REFRESH_EN (1<<30) > @@ -3337,8 +3337,8 @@ > #define DSPFW_HPLL_CURSOR_SHIFT 16 > #define DSPFW_HPLL_CURSOR_MASK (0x3f<<16) > #define DSPFW_HPLL_SR_MASK (0x1ff) > -#define DSPFW4 (dev_priv->info->display_mmio_offset + 0x70070) > -#define DSPFW7 (dev_priv->info->display_mmio_offset + 0x7007c) > +#define DSPFW4 (dev_priv->info.display_mmio_offset + 0x70070) > +#define DSPFW7 (dev_priv->info.display_mmio_offset + 0x7007c) > > /* drain latency register values*/ > #define DRAIN_LATENCY_PRECISION_32 32 > @@ -3498,12 +3498,12 @@ > #define PIPE_PIXEL_MASK 0x00ffffff > #define PIPE_PIXEL_SHIFT 0 > /* GM45+ just has to be different */ > -#define _PIPEA_FRMCOUNT_GM45 (dev_priv->info->display_mmio_offset + 0x70040) > -#define _PIPEA_FLIPCOUNT_GM45 (dev_priv->info->display_mmio_offset + 0x70044) > +#define _PIPEA_FRMCOUNT_GM45 (dev_priv->info.display_mmio_offset + 0x70040) > +#define _PIPEA_FLIPCOUNT_GM45 (dev_priv->info.display_mmio_offset + 0x70044) > #define PIPE_FRMCOUNT_GM45(pipe) _PIPE(pipe, _PIPEA_FRMCOUNT_GM45, _PIPEB_FRMCOUNT_GM45) > > /* Cursor A & B regs */ > -#define _CURACNTR (dev_priv->info->display_mmio_offset + 0x70080) > +#define _CURACNTR (dev_priv->info.display_mmio_offset + 0x70080) > /* Old style CUR*CNTR flags (desktop 8xx) */ > #define CURSOR_ENABLE 0x80000000 > #define CURSOR_GAMMA_ENABLE 0x40000000 > @@ -3526,16 +3526,16 @@ > #define MCURSOR_PIPE_B (1 << 28) > #define MCURSOR_GAMMA_ENABLE (1 << 26) > #define CURSOR_TRICKLE_FEED_DISABLE (1 << 14) > -#define _CURABASE (dev_priv->info->display_mmio_offset + 0x70084) > -#define _CURAPOS (dev_priv->info->display_mmio_offset + 0x70088) > +#define _CURABASE (dev_priv->info.display_mmio_offset + 0x70084) > +#define _CURAPOS (dev_priv->info.display_mmio_offset + 0x70088) > #define CURSOR_POS_MASK 0x007FF > #define CURSOR_POS_SIGN 0x8000 > #define CURSOR_X_SHIFT 0 > #define CURSOR_Y_SHIFT 16 > #define CURSIZE 0x700a0 > -#define _CURBCNTR (dev_priv->info->display_mmio_offset + 0x700c0) > -#define _CURBBASE (dev_priv->info->display_mmio_offset + 0x700c4) > -#define _CURBPOS (dev_priv->info->display_mmio_offset + 0x700c8) > +#define _CURBCNTR (dev_priv->info.display_mmio_offset + 0x700c0) > +#define _CURBBASE (dev_priv->info.display_mmio_offset + 0x700c4) > +#define _CURBPOS (dev_priv->info.display_mmio_offset + 0x700c8) > > #define _CURBCNTR_IVB 0x71080 > #define _CURBBASE_IVB 0x71084 > @@ -3550,7 +3550,7 @@ > #define CURPOS_IVB(pipe) _PIPE(pipe, _CURAPOS, _CURBPOS_IVB) > > /* Display A control */ > -#define _DSPACNTR (dev_priv->info->display_mmio_offset + 0x70180) > +#define _DSPACNTR (dev_priv->info.display_mmio_offset + 0x70180) > #define DISPLAY_PLANE_ENABLE (1<<31) > #define DISPLAY_PLANE_DISABLE 0 > #define DISPPLANE_GAMMA_ENABLE (1<<30) > @@ -3584,14 +3584,14 @@ > #define DISPPLANE_STEREO_POLARITY_SECOND (1<<18) > #define DISPPLANE_TRICKLE_FEED_DISABLE (1<<14) /* Ironlake */ > #define DISPPLANE_TILED (1<<10) > -#define _DSPAADDR (dev_priv->info->display_mmio_offset + 0x70184) > -#define _DSPASTRIDE (dev_priv->info->display_mmio_offset + 0x70188) > -#define _DSPAPOS (dev_priv->info->display_mmio_offset + 0x7018C) /* reserved */ > -#define _DSPASIZE (dev_priv->info->display_mmio_offset + 0x70190) > -#define _DSPASURF (dev_priv->info->display_mmio_offset + 0x7019C) /* 965+ only */ > -#define _DSPATILEOFF (dev_priv->info->display_mmio_offset + 0x701A4) /* 965+ only */ > -#define _DSPAOFFSET (dev_priv->info->display_mmio_offset + 0x701A4) /* HSW */ > -#define _DSPASURFLIVE (dev_priv->info->display_mmio_offset + 0x701AC) > +#define _DSPAADDR (dev_priv->info.display_mmio_offset + 0x70184) > +#define _DSPASTRIDE (dev_priv->info.display_mmio_offset + 0x70188) > +#define _DSPAPOS (dev_priv->info.display_mmio_offset + 0x7018C) /* reserved */ > +#define _DSPASIZE (dev_priv->info.display_mmio_offset + 0x70190) > +#define _DSPASURF (dev_priv->info.display_mmio_offset + 0x7019C) /* 965+ only */ > +#define _DSPATILEOFF (dev_priv->info.display_mmio_offset + 0x701A4) /* 965+ only */ > +#define _DSPAOFFSET (dev_priv->info.display_mmio_offset + 0x701A4) /* HSW */ > +#define _DSPASURFLIVE (dev_priv->info.display_mmio_offset + 0x701AC) > > #define DSPCNTR(plane) _PIPE(plane, _DSPACNTR, _DSPBCNTR) > #define DSPADDR(plane) _PIPE(plane, _DSPAADDR, _DSPBADDR) > @@ -3612,44 +3612,44 @@ > (I915_WRITE((reg), (gfx_addr) | I915_LO_DISPBASE(I915_READ(reg)))) > > /* VBIOS flags */ > -#define SWF00 (dev_priv->info->display_mmio_offset + 0x71410) > -#define SWF01 (dev_priv->info->display_mmio_offset + 0x71414) > -#define SWF02 (dev_priv->info->display_mmio_offset + 0x71418) > -#define SWF03 (dev_priv->info->display_mmio_offset + 0x7141c) > -#define SWF04 (dev_priv->info->display_mmio_offset + 0x71420) > -#define SWF05 (dev_priv->info->display_mmio_offset + 0x71424) > -#define SWF06 (dev_priv->info->display_mmio_offset + 0x71428) > -#define SWF10 (dev_priv->info->display_mmio_offset + 0x70410) > -#define SWF11 (dev_priv->info->display_mmio_offset + 0x70414) > -#define SWF14 (dev_priv->info->display_mmio_offset + 0x71420) > -#define SWF30 (dev_priv->info->display_mmio_offset + 0x72414) > -#define SWF31 (dev_priv->info->display_mmio_offset + 0x72418) > -#define SWF32 (dev_priv->info->display_mmio_offset + 0x7241c) > +#define SWF00 (dev_priv->info.display_mmio_offset + 0x71410) > +#define SWF01 (dev_priv->info.display_mmio_offset + 0x71414) > +#define SWF02 (dev_priv->info.display_mmio_offset + 0x71418) > +#define SWF03 (dev_priv->info.display_mmio_offset + 0x7141c) > +#define SWF04 (dev_priv->info.display_mmio_offset + 0x71420) > +#define SWF05 (dev_priv->info.display_mmio_offset + 0x71424) > +#define SWF06 (dev_priv->info.display_mmio_offset + 0x71428) > +#define SWF10 (dev_priv->info.display_mmio_offset + 0x70410) > +#define SWF11 (dev_priv->info.display_mmio_offset + 0x70414) > +#define SWF14 (dev_priv->info.display_mmio_offset + 0x71420) > +#define SWF30 (dev_priv->info.display_mmio_offset + 0x72414) > +#define SWF31 (dev_priv->info.display_mmio_offset + 0x72418) > +#define SWF32 (dev_priv->info.display_mmio_offset + 0x7241c) > > /* Pipe B */ > -#define _PIPEBDSL (dev_priv->info->display_mmio_offset + 0x71000) > -#define _PIPEBCONF (dev_priv->info->display_mmio_offset + 0x71008) > -#define _PIPEBSTAT (dev_priv->info->display_mmio_offset + 0x71024) > +#define _PIPEBDSL (dev_priv->info.display_mmio_offset + 0x71000) > +#define _PIPEBCONF (dev_priv->info.display_mmio_offset + 0x71008) > +#define _PIPEBSTAT (dev_priv->info.display_mmio_offset + 0x71024) > #define _PIPEBFRAMEHIGH 0x71040 > #define _PIPEBFRAMEPIXEL 0x71044 > -#define _PIPEB_FRMCOUNT_GM45 (dev_priv->info->display_mmio_offset + 0x71040) > -#define _PIPEB_FLIPCOUNT_GM45 (dev_priv->info->display_mmio_offset + 0x71044) > +#define _PIPEB_FRMCOUNT_GM45 (dev_priv->info.display_mmio_offset + 0x71040) > +#define _PIPEB_FLIPCOUNT_GM45 (dev_priv->info.display_mmio_offset + 0x71044) > > > /* Display B control */ > -#define _DSPBCNTR (dev_priv->info->display_mmio_offset + 0x71180) > +#define _DSPBCNTR (dev_priv->info.display_mmio_offset + 0x71180) > #define DISPPLANE_ALPHA_TRANS_ENABLE (1<<15) > #define DISPPLANE_ALPHA_TRANS_DISABLE 0 > #define DISPPLANE_SPRITE_ABOVE_DISPLAY 0 > #define DISPPLANE_SPRITE_ABOVE_OVERLAY (1) > -#define _DSPBADDR (dev_priv->info->display_mmio_offset + 0x71184) > -#define _DSPBSTRIDE (dev_priv->info->display_mmio_offset + 0x71188) > -#define _DSPBPOS (dev_priv->info->display_mmio_offset + 0x7118C) > -#define _DSPBSIZE (dev_priv->info->display_mmio_offset + 0x71190) > -#define _DSPBSURF (dev_priv->info->display_mmio_offset + 0x7119C) > -#define _DSPBTILEOFF (dev_priv->info->display_mmio_offset + 0x711A4) > -#define _DSPBOFFSET (dev_priv->info->display_mmio_offset + 0x711A4) > -#define _DSPBSURFLIVE (dev_priv->info->display_mmio_offset + 0x711AC) > +#define _DSPBADDR (dev_priv->info.display_mmio_offset + 0x71184) > +#define _DSPBSTRIDE (dev_priv->info.display_mmio_offset + 0x71188) > +#define _DSPBPOS (dev_priv->info.display_mmio_offset + 0x7118C) > +#define _DSPBSIZE (dev_priv->info.display_mmio_offset + 0x71190) > +#define _DSPBSURF (dev_priv->info.display_mmio_offset + 0x7119C) > +#define _DSPBTILEOFF (dev_priv->info.display_mmio_offset + 0x711A4) > +#define _DSPBOFFSET (dev_priv->info.display_mmio_offset + 0x711A4) > +#define _DSPBSURFLIVE (dev_priv->info.display_mmio_offset + 0x711AC) > > /* Sprite A control */ > #define _DVSACNTR 0x72180 > @@ -3898,39 +3898,39 @@ > #define FDI_PLL_FREQ_DISABLE_COUNT_LIMIT_MASK 0xff > > > -#define _PIPEA_DATA_M1 (dev_priv->info->display_mmio_offset + 0x60030) > +#define _PIPEA_DATA_M1 (dev_priv->info.display_mmio_offset + 0x60030) > #define PIPE_DATA_M1_OFFSET 0 > -#define _PIPEA_DATA_N1 (dev_priv->info->display_mmio_offset + 0x60034) > +#define _PIPEA_DATA_N1 (dev_priv->info.display_mmio_offset + 0x60034) > #define PIPE_DATA_N1_OFFSET 0 > > -#define _PIPEA_DATA_M2 (dev_priv->info->display_mmio_offset + 0x60038) > +#define _PIPEA_DATA_M2 (dev_priv->info.display_mmio_offset + 0x60038) > #define PIPE_DATA_M2_OFFSET 0 > -#define _PIPEA_DATA_N2 (dev_priv->info->display_mmio_offset + 0x6003c) > +#define _PIPEA_DATA_N2 (dev_priv->info.display_mmio_offset + 0x6003c) > #define PIPE_DATA_N2_OFFSET 0 > > -#define _PIPEA_LINK_M1 (dev_priv->info->display_mmio_offset + 0x60040) > +#define _PIPEA_LINK_M1 (dev_priv->info.display_mmio_offset + 0x60040) > #define PIPE_LINK_M1_OFFSET 0 > -#define _PIPEA_LINK_N1 (dev_priv->info->display_mmio_offset + 0x60044) > +#define _PIPEA_LINK_N1 (dev_priv->info.display_mmio_offset + 0x60044) > #define PIPE_LINK_N1_OFFSET 0 > > -#define _PIPEA_LINK_M2 (dev_priv->info->display_mmio_offset + 0x60048) > +#define _PIPEA_LINK_M2 (dev_priv->info.display_mmio_offset + 0x60048) > #define PIPE_LINK_M2_OFFSET 0 > -#define _PIPEA_LINK_N2 (dev_priv->info->display_mmio_offset + 0x6004c) > +#define _PIPEA_LINK_N2 (dev_priv->info.display_mmio_offset + 0x6004c) > #define PIPE_LINK_N2_OFFSET 0 > > /* PIPEB timing regs are same start from 0x61000 */ > > -#define _PIPEB_DATA_M1 (dev_priv->info->display_mmio_offset + 0x61030) > -#define _PIPEB_DATA_N1 (dev_priv->info->display_mmio_offset + 0x61034) > +#define _PIPEB_DATA_M1 (dev_priv->info.display_mmio_offset + 0x61030) > +#define _PIPEB_DATA_N1 (dev_priv->info.display_mmio_offset + 0x61034) > > -#define _PIPEB_DATA_M2 (dev_priv->info->display_mmio_offset + 0x61038) > -#define _PIPEB_DATA_N2 (dev_priv->info->display_mmio_offset + 0x6103c) > +#define _PIPEB_DATA_M2 (dev_priv->info.display_mmio_offset + 0x61038) > +#define _PIPEB_DATA_N2 (dev_priv->info.display_mmio_offset + 0x6103c) > > -#define _PIPEB_LINK_M1 (dev_priv->info->display_mmio_offset + 0x61040) > -#define _PIPEB_LINK_N1 (dev_priv->info->display_mmio_offset + 0x61044) > +#define _PIPEB_LINK_M1 (dev_priv->info.display_mmio_offset + 0x61040) > +#define _PIPEB_LINK_N1 (dev_priv->info.display_mmio_offset + 0x61044) > > -#define _PIPEB_LINK_M2 (dev_priv->info->display_mmio_offset + 0x61048) > -#define _PIPEB_LINK_N2 (dev_priv->info->display_mmio_offset + 0x6104c) > +#define _PIPEB_LINK_M2 (dev_priv->info.display_mmio_offset + 0x61048) > +#define _PIPEB_LINK_N2 (dev_priv->info.display_mmio_offset + 0x6104c) > > #define PIPE_DATA_M1(tran) _TRANSCODER(tran, _PIPEA_DATA_M1, _PIPEB_DATA_M1) > #define PIPE_DATA_N1(tran) _TRANSCODER(tran, _PIPEA_DATA_N1, _PIPEB_DATA_N1) > @@ -5041,7 +5041,7 @@ > #define GEN8_CENTROID_PIXEL_OPT_DIS (1<<8) > #define GEN8_SAMPLER_POWER_BYPASS_DIS (1<<1) > > -#define G4X_AUD_VID_DID (dev_priv->info->display_mmio_offset + 0x62020) > +#define G4X_AUD_VID_DID (dev_priv->info.display_mmio_offset + 0x62020) > #define INTEL_AUDIO_DEVCL 0x808629FB > #define INTEL_AUDIO_DEVBLC 0x80862801 > #define INTEL_AUDIO_DEVCTG 0x80862802 > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 5c4c3ca..71876d9 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -1030,7 +1030,7 @@ static void assert_fdi_tx_pll_enabled(struct drm_i915_private *dev_priv, > u32 val; > > /* ILK FDI PLL is always enabled */ > - if (dev_priv->info->gen == 5) > + if (dev_priv->info.gen == 5) > return; > > /* On Haswell, DDI ports are responsible for the FDI PLL setup */ > @@ -1433,7 +1433,7 @@ static void i9xx_enable_pll(struct intel_crtc *crtc) > assert_pipe_disabled(dev_priv, crtc->pipe); > > /* No really, not for ILK+ */ > - BUG_ON(dev_priv->info->gen >= 5); > + BUG_ON(dev_priv->info.gen >= 5); > > /* PLL is protected by panel, make sure we can write it */ > if (IS_MOBILE(dev) && !IS_I830(dev)) > @@ -1540,7 +1540,7 @@ static void ironlake_enable_shared_dpll(struct intel_crtc *crtc) > struct intel_shared_dpll *pll = intel_crtc_to_shared_dpll(crtc); > > /* PCH PLLs only available on ILK, SNB and IVB */ > - BUG_ON(dev_priv->info->gen < 5); > + BUG_ON(dev_priv->info.gen < 5); > if (WARN_ON(pll == NULL)) > return; > > @@ -1569,7 +1569,7 @@ static void intel_disable_shared_dpll(struct intel_crtc *crtc) > struct intel_shared_dpll *pll = intel_crtc_to_shared_dpll(crtc); > > /* PCH only available on ILK+ */ > - BUG_ON(dev_priv->info->gen < 5); > + BUG_ON(dev_priv->info.gen < 5); > if (WARN_ON(pll == NULL)) > return; > > @@ -1604,7 +1604,7 @@ static void ironlake_enable_pch_transcoder(struct drm_i915_private *dev_priv, > uint32_t reg, val, pipeconf_val; > > /* PCH only available on ILK+ */ > - BUG_ON(dev_priv->info->gen < 5); > + BUG_ON(dev_priv->info.gen < 5); > > /* Make sure PCH DPLL is enabled */ > assert_shared_dpll_enabled(dev_priv, > @@ -1657,7 +1657,7 @@ static void lpt_enable_pch_transcoder(struct drm_i915_private *dev_priv, > u32 val, pipeconf_val; > > /* PCH only available on ILK+ */ > - BUG_ON(dev_priv->info->gen < 5); > + BUG_ON(dev_priv->info.gen < 5); > > /* FDI must be feeding us bits for PCH ports */ > assert_fdi_tx_enabled(dev_priv, (enum pipe) cpu_transcoder); > @@ -1838,7 +1838,7 @@ static void intel_disable_pipe(struct drm_i915_private *dev_priv, > void intel_flush_primary_plane(struct drm_i915_private *dev_priv, > enum plane plane) > { > - u32 reg = dev_priv->info->gen >= 4 ? DSPSURF(plane) : DSPADDR(plane); > + u32 reg = dev_priv->info.gen >= 4 ? DSPSURF(plane) : DSPADDR(plane); > > I915_WRITE(reg, I915_READ(reg)); > POSTING_READ(reg); > @@ -7532,7 +7532,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, > > /* we only need to pin inside GTT if cursor is non-phy */ > mutex_lock(&dev->struct_mutex); > - if (!dev_priv->info->cursor_needs_physical) { > + if (!dev_priv->info.cursor_needs_physical) { > unsigned alignment; > > if (obj->tiling_mode) { > @@ -7580,7 +7580,7 @@ static int intel_crtc_cursor_set(struct drm_crtc *crtc, > > finish: > if (intel_crtc->cursor_bo) { > - if (dev_priv->info->cursor_needs_physical) { > + if (dev_priv->info.cursor_needs_physical) { > if (intel_crtc->cursor_bo != obj) > i915_gem_detach_phys_object(dev, intel_crtc->cursor_bo); > } else > @@ -8163,7 +8163,7 @@ void intel_mark_idle(struct drm_device *dev) > intel_decrease_pllclock(crtc); > } > > - if (dev_priv->info->gen >= 6) > + if (dev_priv->info.gen >= 6) > gen6_rps_idle(dev->dev_private); > } > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index c01d08d..74b72a3 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -3586,7 +3586,7 @@ void gen6_rps_idle(struct drm_i915_private *dev_priv) > { > mutex_lock(&dev_priv->rps.hw_lock); > if (dev_priv->rps.enabled) { > - if (dev_priv->info->is_valleyview) > + if (dev_priv->info.is_valleyview) > valleyview_set_rps(dev_priv->dev, dev_priv->rps.min_delay); > else > gen6_set_rps(dev_priv->dev, dev_priv->rps.min_delay); > @@ -3599,7 +3599,7 @@ void gen6_rps_boost(struct drm_i915_private *dev_priv) > { > mutex_lock(&dev_priv->rps.hw_lock); > if (dev_priv->rps.enabled) { > - if (dev_priv->info->is_valleyview) > + if (dev_priv->info.is_valleyview) > valleyview_set_rps(dev_priv->dev, dev_priv->rps.max_delay); > else > gen6_set_rps(dev_priv->dev, dev_priv->rps.max_delay); > @@ -4368,7 +4368,7 @@ unsigned long i915_chipset_val(struct drm_i915_private *dev_priv) > { > unsigned long val; > > - if (dev_priv->info->gen != 5) > + if (dev_priv->info.gen != 5) > return 0; > > spin_lock_irq(&mchdev_lock); > @@ -4530,7 +4530,7 @@ static u16 pvid_to_extvid(struct drm_i915_private *dev_priv, u8 pxvid) > { 16000, 14875, }, > { 16125, 15000, }, > }; > - if (dev_priv->info->is_mobile) > + if (dev_priv->info.is_mobile) > return v_table[pxvid].vm; > else > return v_table[pxvid].vd; > @@ -4573,7 +4573,7 @@ static void __i915_update_gfx_val(struct drm_i915_private *dev_priv) > > void i915_update_gfx_val(struct drm_i915_private *dev_priv) > { > - if (dev_priv->info->gen != 5) > + if (dev_priv->info.gen != 5) > return; > > spin_lock_irq(&mchdev_lock); > @@ -4624,7 +4624,7 @@ unsigned long i915_gfx_val(struct drm_i915_private *dev_priv) > { > unsigned long val; > > - if (dev_priv->info->gen != 5) > + if (dev_priv->info.gen != 5) > return 0; > > spin_lock_irq(&mchdev_lock); > -- > 1.8.3.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx