|
|
@@ -26,6 +26,7 @@
|
|
|
#include "psb_intel_reg.h"
|
|
|
#include "intel_bios.h"
|
|
|
#include "cdv_device.h"
|
|
|
+#include "gma_device.h"
|
|
|
|
|
|
#define VGA_SR_INDEX 0x3c4
|
|
|
#define VGA_SR_DATA 0x3c5
|
|
|
@@ -426,43 +427,6 @@ static int cdv_power_up(struct drm_device *dev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-/* FIXME ? - shared with Poulsbo */
|
|
|
-static void cdv_get_core_freq(struct drm_device *dev)
|
|
|
-{
|
|
|
- uint32_t clock;
|
|
|
- struct pci_dev *pci_root = pci_get_bus_and_slot(0, 0);
|
|
|
- struct drm_psb_private *dev_priv = dev->dev_private;
|
|
|
-
|
|
|
- pci_write_config_dword(pci_root, 0xD0, 0xD0050300);
|
|
|
- pci_read_config_dword(pci_root, 0xD4, &clock);
|
|
|
- pci_dev_put(pci_root);
|
|
|
-
|
|
|
- switch (clock & 0x07) {
|
|
|
- case 0:
|
|
|
- dev_priv->core_freq = 100;
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- dev_priv->core_freq = 133;
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- dev_priv->core_freq = 150;
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- dev_priv->core_freq = 178;
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- dev_priv->core_freq = 200;
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- case 6:
|
|
|
- case 7:
|
|
|
- dev_priv->core_freq = 266;
|
|
|
- break;
|
|
|
- default:
|
|
|
- dev_priv->core_freq = 0;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
static void cdv_hotplug_work_func(struct work_struct *work)
|
|
|
{
|
|
|
struct drm_psb_private *dev_priv = container_of(work, struct drm_psb_private,
|
|
|
@@ -618,7 +582,7 @@ static int cdv_chip_setup(struct drm_device *dev)
|
|
|
if (pci_enable_msi(dev->pdev))
|
|
|
dev_warn(dev->dev, "Enabling MSI failed!\n");
|
|
|
dev_priv->regmap = cdv_regmap;
|
|
|
- cdv_get_core_freq(dev);
|
|
|
+ gma_get_core_freq(dev);
|
|
|
psb_intel_opregion_init(dev);
|
|
|
psb_intel_init_bios(dev);
|
|
|
cdv_hotplug_enable(dev, false);
|