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


Quelle  drm_dp_aux_bus.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2021 Google Inc.
 *
 * The DP AUX bus is used for devices that are connected over a DisplayPort
 * AUX bus. The devices on the far side of the bus are referred to as
 * endpoints in this code.
 */


#ifndef _DP_AUX_BUS_H_
#define _DP_AUX_BUS_H_

#include <linux/device.h>
#include <linux/mod_devicetable.h>

/**
 * struct dp_aux_ep_device - Main dev structure for DP AUX endpoints
 *
 * This is used to instantiate devices that are connected via a DP AUX
 * bus. Usually the device is a panel, but conceivable other devices could
 * be hooked up there.
 */

struct dp_aux_ep_device {
 /** @dev: The normal dev pointer */
 struct device dev;
 /** @aux: Pointer to the aux bus */
 struct drm_dp_aux *aux;
};

struct dp_aux_ep_driver {
 int (*probe)(struct dp_aux_ep_device *aux_ep);
 void (*remove)(struct dp_aux_ep_device *aux_ep);
 void (*shutdown)(struct dp_aux_ep_device *aux_ep);
 struct device_driver driver;
};

static inline struct dp_aux_ep_device *to_dp_aux_ep_dev(struct device *dev)
{
 return container_of(dev, struct dp_aux_ep_device, dev);
}

static inline struct dp_aux_ep_driver *to_dp_aux_ep_drv(struct device_driver *drv)
{
 return container_of(drv, struct dp_aux_ep_driver, driver);
}

int of_dp_aux_populate_bus(struct drm_dp_aux *aux,
      int (*done_probing)(struct drm_dp_aux *aux));
void of_dp_aux_depopulate_bus(struct drm_dp_aux *aux);
int devm_of_dp_aux_populate_bus(struct drm_dp_aux *aux,
    int (*done_probing)(struct drm_dp_aux *aux));

/* Deprecated versions of the above functions. To be removed when no callers. */
static inline int of_dp_aux_populate_ep_devices(struct drm_dp_aux *aux)
{
 int ret;

 ret = of_dp_aux_populate_bus(aux, NULL);

 /* New API returns -ENODEV for no child case; adapt to old assumption */
 return (ret != -ENODEV) ? ret : 0;
}

static inline int devm_of_dp_aux_populate_ep_devices(struct drm_dp_aux *aux)
{
 int ret;

 ret = devm_of_dp_aux_populate_bus(aux, NULL);

 /* New API returns -ENODEV for no child case; adapt to old assumption */
 return (ret != -ENODEV) ? ret : 0;
}

static inline void of_dp_aux_depopulate_ep_devices(struct drm_dp_aux *aux)
{
 of_dp_aux_depopulate_bus(aux);
}

#define dp_aux_dp_driver_register(aux_ep_drv) \
 __dp_aux_dp_driver_register(aux_ep_drv, THIS_MODULE)
int __dp_aux_dp_driver_register(struct dp_aux_ep_driver *aux_ep_drv,
    struct module *owner);
void dp_aux_dp_driver_unregister(struct dp_aux_ep_driver *aux_ep_drv);

#endif /* _DP_AUX_BUS_H_ */

Messung V0.5
C=83 H=93 G=87

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