Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/gpu/drm/armada/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  armada_crtc.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2012 Russell King
 */

#ifndef ARMADA_CRTC_H
#define ARMADA_CRTC_H

#include <drm/drm_crtc.h>

struct armada_gem_object;

struct armada_regs {
 uint32_t offset;
 uint32_t mask;
 uint32_t val;
};

#define armada_reg_queue_mod(_r, _i, _v, _m, _o) \
 do {     \
  struct armada_regs *__reg = _r; \
  __reg[_i].offset = _o;  \
  __reg[_i].mask = ~(_m);  \
  __reg[_i].val = _v;  \
  _i++;    \
 } while (0)

#define armada_reg_queue_set(_r, _i, _v, _o) \
 armada_reg_queue_mod(_r, _i, _v, ~0, _o)

#define armada_reg_queue_end(_r, _i)  \
 armada_reg_queue_mod(_r, _i, 0, 0, ~0)

struct armada_crtc;
struct armada_variant;

struct armada_crtc {
 struct drm_crtc  crtc;
 const struct armada_variant *variant;
 void   *variant_data;
 unsigned  num;
 void __iomem  *base;
 struct clk  *clk;
 struct {
  uint32_t spu_v_h_total;
  uint32_t spu_v_porch;
  uint32_t spu_adv_reg;
 } v[2];
 bool   interlaced;
 bool   cursor_update;

 struct armada_gem_object *cursor_obj;
 int   cursor_x;
 int   cursor_y;
 uint32_t  cursor_hw_pos;
 uint32_t  cursor_hw_sz;
 uint32_t  cursor_w;
 uint32_t  cursor_h;

 uint32_t  cfg_dumb_ctrl;
 uint32_t  spu_iopad_ctrl;

 spinlock_t  irq_lock;
 uint32_t  irq_ena;

 bool   update_pending;
 struct drm_pending_vblank_event *event;
 struct armada_regs atomic_regs[32];
 struct armada_regs *regs;
 unsigned int  regs_idx;
};
#define drm_to_armada_crtc(c) container_of(c, struct armada_crtc, crtc)

void armada_drm_crtc_update_regs(struct armada_crtc *, struct armada_regs *);

struct armada_clocking_params {
 unsigned long permillage_min;
 unsigned long permillage_max;
 u32 settable;
 u32 div_max;
};

struct armada_clk_result {
 unsigned long desired_clk_hz;
 struct clk *clk;
 u32 div;
};

int armada_crtc_select_clock(struct armada_crtc *dcrtc,
        struct armada_clk_result *res,
        const struct armada_clocking_params *params,
        struct clk *clks[], size_t num_clks,
        unsigned long desired_khz);

extern struct platform_driver armada_lcd_platform_driver;

#endif

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

¤ Dauer der Verarbeitung: 0.11 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.