Peter Lemenkov has uploaded this change for review.

View Change

mb/lenovo/*/romstage: Use common hybrid_graphics_init

Change-Id: I28c3c5c94ce6c6b3fb44c2540a6fa7953a28b761
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
---
M src/drivers/lenovo/hybrid_graphics/hybrid_graphics.h
M src/drivers/lenovo/hybrid_graphics/romstage.c
M src/mainboard/lenovo/t420/romstage.c
M src/mainboard/lenovo/t420s/romstage.c
M src/mainboard/lenovo/t430/romstage.c
M src/mainboard/lenovo/t520/romstage.c
M src/mainboard/lenovo/t530/romstage.c
7 files changed, 30 insertions(+), 130 deletions(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/33807/1
diff --git a/src/drivers/lenovo/hybrid_graphics/hybrid_graphics.h b/src/drivers/lenovo/hybrid_graphics/hybrid_graphics.h
index b238440..2f7cce6 100644
--- a/src/drivers/lenovo/hybrid_graphics/hybrid_graphics.h
+++ b/src/drivers/lenovo/hybrid_graphics/hybrid_graphics.h
@@ -17,5 +17,6 @@
#define _DRIVERS_LENOVO_HYBRID_GRAPHICS_H_

void early_hybrid_graphics(bool *enable_igd, bool *enable_peg);
+void hybrid_graphics_init(void);

#endif /* _DRIVERS_LENOVO_HYBRID_GRAPHICS_CHIP_H_ */
diff --git a/src/drivers/lenovo/hybrid_graphics/romstage.c b/src/drivers/lenovo/hybrid_graphics/romstage.c
index 35cb384..e4b27bb 100644
--- a/src/drivers/lenovo/hybrid_graphics/romstage.c
+++ b/src/drivers/lenovo/hybrid_graphics/romstage.c
@@ -24,6 +24,9 @@
#include "hybrid_graphics.h"
#include "chip.h"

+#include <device/pci_ops.h>
+#include <northbridge/intel/sandybridge/sandybridge.h>
+
/*
* Returns the hybrid graphics presence and user's card preferences.
*/
@@ -94,3 +97,29 @@
" FIXME: dGPU power handling not implemented\n");
}
}
+
+void hybrid_graphics_init(void)
+{
+ bool peg, igd;
+ u32 reg32;
+
+ early_hybrid_graphics(&igd, &peg);
+
+ if (peg && igd)
+ return;
+
+ /* Hide disabled devices */
+ reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
+ reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
+
+ if (peg)
+ reg32 |= DEVEN_PEG10;
+
+ if (igd)
+ reg32 |= DEVEN_IGD;
+ else
+ /* Disable IGD VGA decode, no GTT or GFX stolen */
+ pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
+
+ pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
+}
diff --git a/src/mainboard/lenovo/t420/romstage.c b/src/mainboard/lenovo/t420/romstage.c
index ebf5aed..2f7ceb4 100644
--- a/src/mainboard/lenovo/t420/romstage.c
+++ b/src/mainboard/lenovo/t420/romstage.c
@@ -23,32 +23,6 @@
#include <device/device.h>
#include <device/pci.h>

-static void hybrid_graphics_init(void)
-{
- bool peg, igd;
- u32 reg32;
-
- early_hybrid_graphics(&igd, &peg);
-
- if (peg && igd)
- return;
-
- /* Hide disabled devices */
- reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
- reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
-
- if (peg)
- reg32 |= DEVEN_PEG10;
-
- if (igd)
- reg32 |= DEVEN_IGD;
- else
- /* Disable IGD VGA decode, no GTT or GFX stolen */
- pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
-
- pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
-}
-
void pch_enable_lpc(void)
{
/* EC Decode Range Port60/64, Port62/66 */
diff --git a/src/mainboard/lenovo/t420s/romstage.c b/src/mainboard/lenovo/t420s/romstage.c
index 49de58d..2eed168 100644
--- a/src/mainboard/lenovo/t420s/romstage.c
+++ b/src/mainboard/lenovo/t420s/romstage.c
@@ -23,32 +23,6 @@
#include <device/device.h>
#include <device/pci.h>

-static void hybrid_graphics_init(void)
-{
- bool peg, igd;
- u32 reg32;
-
- early_hybrid_graphics(&igd, &peg);
-
- if (peg && igd)
- return;
-
- /* Hide disabled devices */
- reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
- reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
-
- if (peg)
- reg32 |= DEVEN_PEG10;
-
- if (igd)
- reg32 |= DEVEN_IGD;
- else
- /* Disable IGD VGA decode, no GTT or GFX stolen */
- pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
-
- pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
-}
-
void pch_enable_lpc(void)
{
/* EC Decode Range Port60/64, Port62/66 */
diff --git a/src/mainboard/lenovo/t430/romstage.c b/src/mainboard/lenovo/t430/romstage.c
index 1f4b90d..98ff418 100644
--- a/src/mainboard/lenovo/t430/romstage.c
+++ b/src/mainboard/lenovo/t430/romstage.c
@@ -23,32 +23,6 @@
#include <device/device.h>
#include <device/pci.h>

-static void hybrid_graphics_init(void)
-{
- bool peg, igd;
- u32 reg32;
-
- early_hybrid_graphics(&igd, &peg);
-
- if (peg && igd)
- return;
-
- /* Hide disabled devices */
- reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
- reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
-
- if (peg)
- reg32 |= DEVEN_PEG10;
-
- if (igd)
- reg32 |= DEVEN_IGD;
- else
- /* Disable IGD VGA decode, no GTT or GFX stolen */
- pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
-
- pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
-}
-
void pch_enable_lpc(void)
{
/* EC Decode Range Port60/64, Port62/66 */
diff --git a/src/mainboard/lenovo/t520/romstage.c b/src/mainboard/lenovo/t520/romstage.c
index 5c23b8e..c23b896 100644
--- a/src/mainboard/lenovo/t520/romstage.c
+++ b/src/mainboard/lenovo/t520/romstage.c
@@ -25,32 +25,6 @@
#include <device/device.h>
#include <device/pci.h>

-static void hybrid_graphics_init(void)
-{
- bool peg, igd;
- u32 reg32;
-
- early_hybrid_graphics(&igd, &peg);
-
- if (peg && igd)
- return;
-
- /* Hide disabled devices */
- reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
- reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
-
- if (peg)
- reg32 |= DEVEN_PEG10;
-
- if (igd)
- reg32 |= DEVEN_IGD;
- else
- /* Disable IGD VGA decode, no GTT or GFX stolen */
- pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
-
- pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
-}
-
void pch_enable_lpc(void)
{
/* EC Decode Range Port60/64, Port62/66 */
diff --git a/src/mainboard/lenovo/t530/romstage.c b/src/mainboard/lenovo/t530/romstage.c
index 67cf97c..1b76def 100644
--- a/src/mainboard/lenovo/t530/romstage.c
+++ b/src/mainboard/lenovo/t530/romstage.c
@@ -25,32 +25,6 @@
#include <device/device.h>
#include <device/pci.h>

-static void hybrid_graphics_init(void)
-{
- bool peg, igd;
- u32 reg32;
-
- early_hybrid_graphics(&igd, &peg);
-
- if (peg && igd)
- return;
-
- /* Hide disabled devices */
- reg32 = pci_read_config32(PCI_DEV(0, 0, 0), DEVEN);
- reg32 &= ~(DEVEN_PEG10 | DEVEN_IGD);
-
- if (peg)
- reg32 |= DEVEN_PEG10;
-
- if (igd)
- reg32 |= DEVEN_IGD;
- else
- /* Disable IGD VGA decode, no GTT or GFX stolen */
- pci_write_config16(PCI_DEV(0, 0, 0), GGC, 2);
-
- pci_write_config32(PCI_DEV(0, 0, 0), DEVEN, reg32);
-}
-
void pch_enable_lpc(void)
{
/* EC Decode Range Port60/64, Port62/66 */

To view, visit change 33807. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I28c3c5c94ce6c6b3fb44c2540a6fa7953a28b761
Gerrit-Change-Number: 33807
Gerrit-PatchSet: 1
Gerrit-Owner: Peter Lemenkov <lemenkov@gmail.com>
Gerrit-MessageType: newchange