Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /**************************************************************************
0003  * Copyright (c) 2011, Intel Corporation.
0004  * All Rights Reserved.
0005  *
0006  **************************************************************************/
0007 
0008 #include "psb_drv.h"
0009 #include "gma_device.h"
0010 
0011 void gma_get_core_freq(struct drm_device *dev)
0012 {
0013     uint32_t clock;
0014     struct pci_dev *pdev = to_pci_dev(dev->dev);
0015     struct pci_dev *pci_root =
0016         pci_get_domain_bus_and_slot(pci_domain_nr(pdev->bus),
0017                         0, 0);
0018     struct drm_psb_private *dev_priv = to_drm_psb_private(dev);
0019 
0020     /*pci_write_config_dword(pci_root, 0xD4, 0x00C32004);*/
0021     /*pci_write_config_dword(pci_root, 0xD0, 0xE0033000);*/
0022 
0023     pci_write_config_dword(pci_root, 0xD0, 0xD0050300);
0024     pci_read_config_dword(pci_root, 0xD4, &clock);
0025     pci_dev_put(pci_root);
0026 
0027     switch (clock & 0x07) {
0028     case 0:
0029         dev_priv->core_freq = 100;
0030         break;
0031     case 1:
0032         dev_priv->core_freq = 133;
0033         break;
0034     case 2:
0035         dev_priv->core_freq = 150;
0036         break;
0037     case 3:
0038         dev_priv->core_freq = 178;
0039         break;
0040     case 4:
0041         dev_priv->core_freq = 200;
0042         break;
0043     case 5:
0044     case 6:
0045     case 7:
0046         dev_priv->core_freq = 266;
0047         break;
0048     default:
0049         dev_priv->core_freq = 0;
0050     }
0051 }