|
@@ -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
|
|
|
/*
|
|
@@ -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;
|
|
|
|
|
@@ -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;
|
|
|
|
|
|
/*
|
|
@@ -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;
|
|
@@ -928,16 +932,31 @@ 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)
|
|
|
+ uint32_t val)
|
|
|
{
|
|
|
struct drm_psb_private *dev_priv = dev->dev_private;
|
|
|
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)
|