summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/soc/intel/broadwell/chip.h3
-rw-r--r--src/soc/intel/broadwell/igd.c18
2 files changed, 16 insertions, 5 deletions
diff --git a/src/soc/intel/broadwell/chip.h b/src/soc/intel/broadwell/chip.h
index fabb95ad00..b68da91c03 100644
--- a/src/soc/intel/broadwell/chip.h
+++ b/src/soc/intel/broadwell/chip.h
@@ -15,6 +15,7 @@
#ifndef _SOC_INTEL_BROADWELL_CHIP_H_
#define _SOC_INTEL_BROADWELL_CHIP_H_
+#include <drivers/intel/gma/i915.h>
#include <stdint.h>
struct soc_intel_broadwell_config {
@@ -130,6 +131,8 @@ struct soc_intel_broadwell_config {
*/
int cdclk;
+ struct i915_gpu_controller_info gfx;
+
/* Enable S0iX support */
int s0ix_enable;
diff --git a/src/soc/intel/broadwell/igd.c b/src/soc/intel/broadwell/igd.c
index ecb5417181..77375e4497 100644
--- a/src/soc/intel/broadwell/igd.c
+++ b/src/soc/intel/broadwell/igd.c
@@ -24,6 +24,7 @@
#include <string.h>
#include <reg_script.h>
#include <cbmem.h>
+#include <drivers/intel/gma/i915.h>
#include <drivers/intel/gma/i915_reg.h>
#include <drivers/intel/gma/libgfxinit.h>
#include <drivers/intel/gma/opregion.h>
@@ -258,7 +259,7 @@ u32 map_oprom_vendev(u32 vendev)
static struct resource *gtt_res = NULL;
-static unsigned long gtt_read(unsigned long reg)
+u32 gtt_read(u32 reg)
{
u32 val;
val = read32(res2mmio(gtt_res, reg, 0));
@@ -266,7 +267,7 @@ static unsigned long gtt_read(unsigned long reg)
}
-static void gtt_write(unsigned long reg, unsigned long data)
+void gtt_write(u32 reg, u32 data)
{
write32(res2mmio(gtt_res, reg, 0), data);
}
@@ -279,9 +280,8 @@ static inline void gtt_rmw(u32 reg, u32 andmask, u32 ormask)
gtt_write(reg, val);
}
-static int gtt_poll(u32 reg, u32 mask, u32 value)
-{
- unsigned int try = GT_RETRY;
+int gtt_poll(u32 reg, u32 mask, u32 value)
+{ unsigned int try = GT_RETRY;
u32 data;
while (try--) {
@@ -627,6 +627,13 @@ gma_write_acpi_tables(struct device *const dev, unsigned long current,
return current;
}
+static void gma_generate_ssdt(struct device *dev)
+{
+ const struct soc_intel_broadwell_config *chip = dev->chip_info;
+
+ drivers_intel_gma_displays_ssdt_generate(&chip->gfx);
+}
+
static struct device_operations igd_ops = {
.read_resources = &pci_dev_read_resources,
.set_resources = &pci_dev_set_resources,
@@ -634,6 +641,7 @@ static struct device_operations igd_ops = {
.init = &igd_init,
.ops_pci = &broadwell_pci_ops,
.write_acpi_tables = gma_write_acpi_tables,
+ .acpi_fill_ssdt = gma_generate_ssdt,
};
static const unsigned short pci_device_ids[] = {