Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/arch/arm/mach-s3c/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  pm-common.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
//
// Copyright (C) 2013 Samsung Electronics Co., Ltd.
// Tomasz Figa <t.figa@samsung.com>
// Copyright (C) 2008 Openmoko, Inc.
// Copyright (C) 2004-2008 Simtec Electronics
// Ben Dooks <ben@simtec.co.uk>
// http://armlinux.simtec.co.uk/
//
// Samsung common power management helper functions.

#include <linux/io.h>
#include <linux/kernel.h>

#include "pm-common.h"

/* helper functions to save and restore register state */

/**
 * s3c_pm_do_save() - save a set of registers for restoration on resume.
 * @ptr: Pointer to an array of registers.
 * @count: Size of the ptr array.
 *
 * Run through the list of registers given, saving their contents in the
 * array for later restoration when we wakeup.
 */

void s3c_pm_do_save(struct sleep_save *ptr, int count)
{
 for (; count > 0; count--, ptr++) {
  ptr->val = readl_relaxed(ptr->reg);
  S3C_PMDBG("saved %p value %08lx\n", ptr->reg, ptr->val);
 }
}

/**
 * s3c_pm_do_restore() - restore register values from the save list.
 * @ptr: Pointer to an array of registers.
 * @count: Size of the ptr array.
 *
 * Restore the register values saved from s3c_pm_do_save().
 *
 * Note, we do not use S3C_PMDBG() in here, as the system may not have
 * restore the UARTs state yet
*/


void s3c_pm_do_restore(const struct sleep_save *ptr, int count)
{
 for (; count > 0; count--, ptr++) {
  pr_debug("restore %p (restore %08lx, was %08x)\n",
    ptr->reg, ptr->val, readl_relaxed(ptr->reg));

  writel_relaxed(ptr->val, ptr->reg);
 }
}

/**
 * s3c_pm_do_restore_core() - early restore register values from save list.
 * @ptr: Pointer to an array of registers.
 * @count: Size of the ptr array.
 *
 * This is similar to s3c_pm_do_restore() except we try and minimise the
 * side effects of the function in case registers that hardware might need
 * to work has been restored.
 *
 * WARNING: Do not put any debug in here that may effect memory or use
 * peripherals, as things may be changing!
*/


void s3c_pm_do_restore_core(const struct sleep_save *ptr, int count)
{
 for (; count > 0; count--, ptr++)
  writel_relaxed(ptr->val, ptr->reg);
}

Messung V0.5
C=97 H=92 G=94

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.