Loading drivers/gpu/drm/gma500/psb_drv.c +31 −1 Original line number Diff line number Diff line Loading @@ -251,6 +251,12 @@ static int psb_driver_unload(struct drm_device *dev) iounmap(dev_priv->sgx_reg); dev_priv->sgx_reg = NULL; } if (dev_priv->aux_reg) { iounmap(dev_priv->aux_reg); dev_priv->aux_reg = NULL; } if (dev_priv->aux_pdev) pci_dev_put(dev_priv->aux_pdev); /* Destroy VBT data */ psb_intel_destroy_bios(dev); Loading @@ -266,7 +272,7 @@ static int psb_driver_unload(struct drm_device *dev) static int psb_driver_load(struct drm_device *dev, unsigned long chipset) { struct drm_psb_private *dev_priv; unsigned long resource_start; unsigned long resource_start, resource_len; unsigned long irqflags; int ret = -ENOMEM; struct drm_connector *connector; Loading Loading @@ -296,6 +302,30 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset) if (!dev_priv->sgx_reg) goto out_err; if (IS_MRST(dev)) { dev_priv->aux_pdev = pci_get_bus_and_slot(0, PCI_DEVFN(3, 0)); if (dev_priv->aux_pdev) { resource_start = pci_resource_start(dev_priv->aux_pdev, PSB_AUX_RESOURCE); resource_len = pci_resource_len(dev_priv->aux_pdev, PSB_AUX_RESOURCE); dev_priv->aux_reg = ioremap_nocache(resource_start, resource_len); if (!dev_priv->aux_reg) goto out_err; DRM_DEBUG_KMS("Found aux vdc"); } else { /* Couldn't find the aux vdc so map to primary vdc */ dev_priv->aux_reg = dev_priv->vdc_reg; DRM_DEBUG_KMS("Couldn't find aux pci device"); } dev_priv->gmbus_reg = dev_priv->aux_reg; } else { dev_priv->gmbus_reg = dev_priv->vdc_reg; } psb_intel_opregion_setup(dev); ret = dev_priv->ops->chip_setup(dev); Loading drivers/gpu/drm/gma500/psb_drv.h +20 −1 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ enum { * PCI resource identifiers */ #define PSB_MMIO_RESOURCE 0 #define PSB_AUX_RESOURCE 0 #define PSB_GATT_RESOURCE 2 #define PSB_GTT_RESOURCE 3 /* Loading Loading @@ -455,6 +456,7 @@ struct psb_ops; struct drm_psb_private { struct drm_device *dev; struct pci_dev *aux_pdev; /* Currently only used by mrst */ const struct psb_ops *ops; const struct psb_offset *regmap; Loading Loading @@ -486,6 +488,7 @@ struct drm_psb_private { uint8_t __iomem *sgx_reg; uint8_t __iomem *vdc_reg; uint8_t __iomem *aux_reg; /* Auxillary vdc pipe regs */ uint32_t gatt_free_offset; /* Loading Loading @@ -532,6 +535,7 @@ struct drm_psb_private { /* gmbus */ struct intel_gmbus *gmbus; uint8_t __iomem *gmbus_reg; /* Used by SDVO */ int crt_ddc_pin; Loading Loading @@ -928,7 +932,14 @@ static inline uint32_t REGISTER_READ(struct drm_device *dev, uint32_t reg) return ioread32(dev_priv->vdc_reg + reg); } static inline uint32_t REGISTER_READ_AUX(struct drm_device *dev, uint32_t reg) { struct drm_psb_private *dev_priv = dev->dev_private; return ioread32(dev_priv->aux_reg + reg); } #define REG_READ(reg) REGISTER_READ(dev, (reg)) #define REG_READ_AUX(reg) REGISTER_READ_AUX(dev, (reg)) static inline void REGISTER_WRITE(struct drm_device *dev, uint32_t reg, uint32_t val) Loading @@ -937,7 +948,15 @@ static inline void REGISTER_WRITE(struct drm_device *dev, uint32_t reg, iowrite32((val), dev_priv->vdc_reg + (reg)); } static inline void REGISTER_WRITE_AUX(struct drm_device *dev, uint32_t reg, uint32_t val) { struct drm_psb_private *dev_priv = dev->dev_private; iowrite32((val), dev_priv->aux_reg + (reg)); } #define REG_WRITE(reg, val) REGISTER_WRITE(dev, (reg), (val)) #define REG_WRITE_AUX(reg, val) REGISTER_WRITE_AUX(dev, (reg), (val)) static inline void REGISTER_WRITE16(struct drm_device *dev, uint32_t reg, uint32_t val) Loading Loading
drivers/gpu/drm/gma500/psb_drv.c +31 −1 Original line number Diff line number Diff line Loading @@ -251,6 +251,12 @@ static int psb_driver_unload(struct drm_device *dev) iounmap(dev_priv->sgx_reg); dev_priv->sgx_reg = NULL; } if (dev_priv->aux_reg) { iounmap(dev_priv->aux_reg); dev_priv->aux_reg = NULL; } if (dev_priv->aux_pdev) pci_dev_put(dev_priv->aux_pdev); /* Destroy VBT data */ psb_intel_destroy_bios(dev); Loading @@ -266,7 +272,7 @@ static int psb_driver_unload(struct drm_device *dev) static int psb_driver_load(struct drm_device *dev, unsigned long chipset) { struct drm_psb_private *dev_priv; unsigned long resource_start; unsigned long resource_start, resource_len; unsigned long irqflags; int ret = -ENOMEM; struct drm_connector *connector; Loading Loading @@ -296,6 +302,30 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset) if (!dev_priv->sgx_reg) goto out_err; if (IS_MRST(dev)) { dev_priv->aux_pdev = pci_get_bus_and_slot(0, PCI_DEVFN(3, 0)); if (dev_priv->aux_pdev) { resource_start = pci_resource_start(dev_priv->aux_pdev, PSB_AUX_RESOURCE); resource_len = pci_resource_len(dev_priv->aux_pdev, PSB_AUX_RESOURCE); dev_priv->aux_reg = ioremap_nocache(resource_start, resource_len); if (!dev_priv->aux_reg) goto out_err; DRM_DEBUG_KMS("Found aux vdc"); } else { /* Couldn't find the aux vdc so map to primary vdc */ dev_priv->aux_reg = dev_priv->vdc_reg; DRM_DEBUG_KMS("Couldn't find aux pci device"); } dev_priv->gmbus_reg = dev_priv->aux_reg; } else { dev_priv->gmbus_reg = dev_priv->vdc_reg; } psb_intel_opregion_setup(dev); ret = dev_priv->ops->chip_setup(dev); Loading
drivers/gpu/drm/gma500/psb_drv.h +20 −1 Original line number Diff line number Diff line Loading @@ -75,6 +75,7 @@ enum { * PCI resource identifiers */ #define PSB_MMIO_RESOURCE 0 #define PSB_AUX_RESOURCE 0 #define PSB_GATT_RESOURCE 2 #define PSB_GTT_RESOURCE 3 /* Loading Loading @@ -455,6 +456,7 @@ struct psb_ops; struct drm_psb_private { struct drm_device *dev; struct pci_dev *aux_pdev; /* Currently only used by mrst */ const struct psb_ops *ops; const struct psb_offset *regmap; Loading Loading @@ -486,6 +488,7 @@ struct drm_psb_private { uint8_t __iomem *sgx_reg; uint8_t __iomem *vdc_reg; uint8_t __iomem *aux_reg; /* Auxillary vdc pipe regs */ uint32_t gatt_free_offset; /* Loading Loading @@ -532,6 +535,7 @@ struct drm_psb_private { /* gmbus */ struct intel_gmbus *gmbus; uint8_t __iomem *gmbus_reg; /* Used by SDVO */ int crt_ddc_pin; Loading Loading @@ -928,7 +932,14 @@ static inline uint32_t REGISTER_READ(struct drm_device *dev, uint32_t reg) return ioread32(dev_priv->vdc_reg + reg); } static inline uint32_t REGISTER_READ_AUX(struct drm_device *dev, uint32_t reg) { struct drm_psb_private *dev_priv = dev->dev_private; return ioread32(dev_priv->aux_reg + reg); } #define REG_READ(reg) REGISTER_READ(dev, (reg)) #define REG_READ_AUX(reg) REGISTER_READ_AUX(dev, (reg)) static inline void REGISTER_WRITE(struct drm_device *dev, uint32_t reg, uint32_t val) Loading @@ -937,7 +948,15 @@ static inline void REGISTER_WRITE(struct drm_device *dev, uint32_t reg, iowrite32((val), dev_priv->vdc_reg + (reg)); } static inline void REGISTER_WRITE_AUX(struct drm_device *dev, uint32_t reg, uint32_t val) { struct drm_psb_private *dev_priv = dev->dev_private; iowrite32((val), dev_priv->aux_reg + (reg)); } #define REG_WRITE(reg, val) REGISTER_WRITE(dev, (reg), (val)) #define REG_WRITE_AUX(reg, val) REGISTER_WRITE_AUX(dev, (reg), (val)) static inline void REGISTER_WRITE16(struct drm_device *dev, uint32_t reg, uint32_t val) Loading