Linux 4.8.3
[linux/fpc-iii.git] / include / drm / drm_of.h
blob3fd87b386ed7ccb65b1c8caa318ab6dfb368b401
1 #ifndef __DRM_OF_H__
2 #define __DRM_OF_H__
4 #include <linux/of_graph.h>
6 struct component_master_ops;
7 struct device;
8 struct drm_device;
9 struct drm_encoder;
10 struct device_node;
12 #ifdef CONFIG_OF
13 extern uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
14 struct device_node *port);
15 extern int drm_of_component_probe(struct device *dev,
16 int (*compare_of)(struct device *, void *),
17 const struct component_master_ops *m_ops);
18 extern int drm_of_encoder_active_endpoint(struct device_node *node,
19 struct drm_encoder *encoder,
20 struct of_endpoint *endpoint);
21 #else
22 static inline uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
23 struct device_node *port)
25 return 0;
28 static inline int
29 drm_of_component_probe(struct device *dev,
30 int (*compare_of)(struct device *, void *),
31 const struct component_master_ops *m_ops)
33 return -EINVAL;
36 static inline int drm_of_encoder_active_endpoint(struct device_node *node,
37 struct drm_encoder *encoder,
38 struct of_endpoint *endpoint)
40 return -EINVAL;
42 #endif
44 static inline int drm_of_encoder_active_endpoint_id(struct device_node *node,
45 struct drm_encoder *encoder)
47 struct of_endpoint endpoint;
48 int ret = drm_of_encoder_active_endpoint(node, encoder,
49 &endpoint);
51 return ret ?: endpoint.id;
54 static inline int drm_of_encoder_active_port_id(struct device_node *node,
55 struct drm_encoder *encoder)
57 struct of_endpoint endpoint;
58 int ret = drm_of_encoder_active_endpoint(node, encoder,
59 &endpoint);
61 return ret ?: endpoint.port;
64 #endif /* __DRM_OF_H__ */