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