Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  fsl_ssi_dbg.c   Sprache: C

 
// SPDX-License-Identifier: GPL-2.0
//
// Freescale SSI ALSA SoC Digital Audio Interface (DAI) debugging functions
//
// Copyright 2014 Markus Pargmann <mpa@pengutronix.de>, Pengutronix
//
// Split from fsl_ssi.c

#include <linux/debugfs.h>
#include <linux/device.h>
#include <linux/kernel.h>

#include "fsl_ssi.h"

void fsl_ssi_dbg_isr(struct fsl_ssi_dbg *dbg, u32 sisr)
{
 if (sisr & SSI_SISR_RFRC)
  dbg->stats.rfrc++;

 if (sisr & SSI_SISR_TFRC)
  dbg->stats.tfrc++;

 if (sisr & SSI_SISR_CMDAU)
  dbg->stats.cmdau++;

 if (sisr & SSI_SISR_CMDDU)
  dbg->stats.cmddu++;

 if (sisr & SSI_SISR_RXT)
  dbg->stats.rxt++;

 if (sisr & SSI_SISR_RDR1)
  dbg->stats.rdr1++;

 if (sisr & SSI_SISR_RDR0)
  dbg->stats.rdr0++;

 if (sisr & SSI_SISR_TDE1)
  dbg->stats.tde1++;

 if (sisr & SSI_SISR_TDE0)
  dbg->stats.tde0++;

 if (sisr & SSI_SISR_ROE1)
  dbg->stats.roe1++;

 if (sisr & SSI_SISR_ROE0)
  dbg->stats.roe0++;

 if (sisr & SSI_SISR_TUE1)
  dbg->stats.tue1++;

 if (sisr & SSI_SISR_TUE0)
  dbg->stats.tue0++;

 if (sisr & SSI_SISR_TFS)
  dbg->stats.tfs++;

 if (sisr & SSI_SISR_RFS)
  dbg->stats.rfs++;

 if (sisr & SSI_SISR_TLS)
  dbg->stats.tls++;

 if (sisr & SSI_SISR_RLS)
  dbg->stats.rls++;

 if (sisr & SSI_SISR_RFF1)
  dbg->stats.rff1++;

 if (sisr & SSI_SISR_RFF0)
  dbg->stats.rff0++;

 if (sisr & SSI_SISR_TFE1)
  dbg->stats.tfe1++;

 if (sisr & SSI_SISR_TFE0)
  dbg->stats.tfe0++;
}

/*
 * Show the statistics of a flag only if its interrupt is enabled
 *
 * Compilers will optimize it to a no-op if the interrupt is disabled
 */

#define SIER_SHOW(flag, name) \
 do { \
  if (SSI_SIER_##flag) \
   seq_printf(s, #name "=%u\n", ssi_dbg->stats.name); \
 } while (0)


/*
 * Display the statistics for the current SSI device
 *
 * To avoid confusion, only show those counts that are enabled
 */

static int fsl_ssi_stats_show(struct seq_file *s, void *unused)
{
 struct fsl_ssi_dbg *ssi_dbg = s->private;

 SIER_SHOW(RFRC_EN, rfrc);
 SIER_SHOW(TFRC_EN, tfrc);
 SIER_SHOW(CMDAU_EN, cmdau);
 SIER_SHOW(CMDDU_EN, cmddu);
 SIER_SHOW(RXT_EN, rxt);
 SIER_SHOW(RDR1_EN, rdr1);
 SIER_SHOW(RDR0_EN, rdr0);
 SIER_SHOW(TDE1_EN, tde1);
 SIER_SHOW(TDE0_EN, tde0);
 SIER_SHOW(ROE1_EN, roe1);
 SIER_SHOW(ROE0_EN, roe0);
 SIER_SHOW(TUE1_EN, tue1);
 SIER_SHOW(TUE0_EN, tue0);
 SIER_SHOW(TFS_EN, tfs);
 SIER_SHOW(RFS_EN, rfs);
 SIER_SHOW(TLS_EN, tls);
 SIER_SHOW(RLS_EN, rls);
 SIER_SHOW(RFF1_EN, rff1);
 SIER_SHOW(RFF0_EN, rff0);
 SIER_SHOW(TFE1_EN, tfe1);
 SIER_SHOW(TFE0_EN, tfe0);

 return 0;
}

DEFINE_SHOW_ATTRIBUTE(fsl_ssi_stats);

void fsl_ssi_debugfs_create(struct fsl_ssi_dbg *ssi_dbg, struct device *dev)
{
 ssi_dbg->dbg_dir = debugfs_create_dir(dev_name(dev), NULL);

 debugfs_create_file("stats", 0444, ssi_dbg->dbg_dir, ssi_dbg,
       &fsl_ssi_stats_fops);
}

void fsl_ssi_debugfs_remove(struct fsl_ssi_dbg *ssi_dbg)
{
 debugfs_remove_recursive(ssi_dbg->dbg_dir);
}

Messung V0.5
C=95 H=95 G=94

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge