brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 954f3a2 Raw
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