radeon: Deinline indirect register accessor functions
[deliverable/linux.git] / drivers / gpu / drm / radeon / r300.c
index 08d68f3e13e9887ff7b06f18e899c34fd85ae31a..718b12b03b570de5687af46d97ef123dc130c961 100644 (file)
  *   tell. (Jerome Glisse)
  */
 
+/*
+ * Indirect registers accessor
+ */
+uint32_t rv370_pcie_rreg(struct radeon_device *rdev, uint32_t reg)
+{
+       unsigned long flags;
+       uint32_t r;
+
+       spin_lock_irqsave(&rdev->pcie_idx_lock, flags);
+       WREG32(RADEON_PCIE_INDEX, ((reg) & rdev->pcie_reg_mask));
+       r = RREG32(RADEON_PCIE_DATA);
+       spin_unlock_irqrestore(&rdev->pcie_idx_lock, flags);
+       return r;
+}
+
+void rv370_pcie_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v)
+{
+       unsigned long flags;
+
+       spin_lock_irqsave(&rdev->pcie_idx_lock, flags);
+       WREG32(RADEON_PCIE_INDEX, ((reg) & rdev->pcie_reg_mask));
+       WREG32(RADEON_PCIE_DATA, (v));
+       spin_unlock_irqrestore(&rdev->pcie_idx_lock, flags);
+}
+
 /*
  * rv370,rv380 PCIE GART
  */
This page took 0.026108 seconds and 5 git commands to generate.