/*
*
* Copyright 2008 (c) Intel Corporation
* Jesse Barnes <jbarnes@virtuousgeek.org>
* Copyright 2013 (c) Intel Corporation
* Daniel Vetter <daniel.vetter@ffwll.ch>
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice (including the
* next paragraph) shall be included in all copies or substantial portions
* of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include "drmP.h"
#include "i915_drm.h"
#include "intel_drv.h"
#include "i915_reg.h"
{
/* On IVB, 3rd pipe shares PLL with another one */
if (pipe > 1)
return false;
if (HAS_PCH_SPLIT(dev))
else
}
{
int i;
return;
if (HAS_PCH_SPLIT(dev))
else
for (i = 0; i < 256; i++)
}
{
int i;
return;
if (HAS_PCH_SPLIT(dev))
else
for (i = 0; i < 256; i++)
}
{
int i;
/* Cursor state */
if (HAS_PCH_SPLIT(dev)) {
}
/* Pipe & plane A info */
if (HAS_PCH_SPLIT(dev)) {
} else {
}
if (!HAS_PCH_SPLIT(dev))
if (HAS_PCH_SPLIT(dev)) {
}
}
/* Pipe & plane B info */
if (HAS_PCH_SPLIT(dev)) {
} else {
}
if (!HAS_PCH_SPLIT(dev))
if (HAS_PCH_SPLIT(dev)) {
}
}
/* Fences */
case 7:
case 6:
for (i = 0; i < 16; i++)
break;
case 5:
case 4:
for (i = 0; i < 16; i++)
break;
case 3:
for (i = 0; i < 8; i++)
case 2:
for (i = 0; i < 8; i++)
break;
}
/* CRT state */
if (HAS_PCH_SPLIT(dev))
else
/* Display Port state */
if (SUPPORTS_INTEGRATED_DP(dev)) {
}
/* FIXME: regfile.save TV & SDVO state */
return;
}
{
int i;
/* Display port ratios (must be done before clock is set) */
if (SUPPORTS_INTEGRATED_DP(dev)) {
}
/* Fences */
case 7:
case 6:
for (i = 0; i < 16; i++)
break;
case 5:
case 4:
for (i = 0; i < 16; i++)
break;
case 3:
case 2:
for (i = 0; i < 8; i++)
for (i = 0; i < 8; i++)
break;
}
if (HAS_PCH_SPLIT(dev)) {
} else {
}
if (HAS_PCH_SPLIT(dev)) {
}
/* Pipe & plane A info */
/* Prime the clock */
udelay(150);
}
/* Actually enable it */
udelay(150);
}
udelay(150);
/* Restore mode */
if (!HAS_PCH_SPLIT(dev))
if (HAS_PCH_SPLIT(dev)) {
}
/* Restore plane info */
}
/* Enable the plane */
/* Pipe & plane B info */
udelay(150);
}
/* Actually enable it */
udelay(150);
}
udelay(150);
/* Restore mode */
if (!HAS_PCH_SPLIT(dev))
if (HAS_PCH_SPLIT(dev)) {
}
/* Restore plane info */
}
/* Enable the plane */
/* Cursor state */
/* CRT state */
if (HAS_PCH_SPLIT(dev))
else
/* Display Port state */
if (SUPPORTS_INTEGRATED_DP(dev)) {
}
/* FIXME: restore TV & SDVO state */
return;
}