52 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/**************************************************************************3 * Copyright (c) 2011, Intel Corporation.4 * All Rights Reserved.5 *6 **************************************************************************/7 8#include "psb_drv.h"9#include "gma_device.h"10 11void gma_get_core_freq(struct drm_device *dev)12{13 uint32_t clock;14 struct pci_dev *pdev = to_pci_dev(dev->dev);15 struct pci_dev *pci_root =16 pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),17 0, 0);18 struct drm_psb_private *dev_priv = to_drm_psb_private(dev);19 20 /*pci_write_config_dword(pci_root, 0xD4, 0x00C32004);*/21 /*pci_write_config_dword(pci_root, 0xD0, 0xE0033000);*/22 23 pci_write_config_dword(pci_root, 0xD0, 0xD0050300);24 pci_read_config_dword(pci_root, 0xD4, &clock);25 pci_dev_put(pci_root);26 27 switch (clock & 0x07) {28 case 0:29 dev_priv->core_freq = 100;30 break;31 case 1:32 dev_priv->core_freq = 133;33 break;34 case 2:35 dev_priv->core_freq = 150;36 break;37 case 3:38 dev_priv->core_freq = 178;39 break;40 case 4:41 dev_priv->core_freq = 200;42 break;43 case 5:44 case 6:45 case 7:46 dev_priv->core_freq = 266;47 break;48 default:49 dev_priv->core_freq = 0;50 }51}52