drm: rcar-du: Define macros for the max number of groups, CRTCs and LVDS
[firefly-linux-kernel-4.4.55.git] / drivers / gpu / drm / rcar-du / rcar_du_drv.h
index 0a724669f02d461351617c5044b4e7e89f7262da..d1ede13cb1d55c4622957fcdec402c4129635227 100644 (file)
@@ -27,7 +27,7 @@ struct rcar_du_device;
 struct rcar_du_lvdsenc;
 
 #define RCAR_DU_FEATURE_CRTC_IRQ_CLOCK (1 << 0)        /* Per-CRTC IRQ and clock */
-#define RCAR_DU_FEATURE_DEFR8          (1 << 1)        /* Has DEFR8 register */
+#define RCAR_DU_FEATURE_EXT_CTRL_REGS  (1 << 1)        /* Has extended control registers */
 
 #define RCAR_DU_QUIRK_ALIGN_128B       (1 << 0)        /* Align pitches to 128 bytes */
 #define RCAR_DU_QUIRK_LVDS_LANES       (1 << 1)        /* LVDS lanes 1 and 3 inverted */
@@ -64,6 +64,10 @@ struct rcar_du_device_info {
        unsigned int num_lvds;
 };
 
+#define RCAR_DU_MAX_CRTCS              3
+#define RCAR_DU_MAX_GROUPS             DIV_ROUND_UP(RCAR_DU_MAX_CRTCS, 2)
+#define RCAR_DU_MAX_LVDS               2
+
 struct rcar_du_device {
        struct device *dev;
        const struct rcar_du_device_info *info;
@@ -73,13 +77,13 @@ struct rcar_du_device {
        struct drm_device *ddev;
        struct drm_fbdev_cma *fbdev;
 
-       struct rcar_du_crtc crtcs[3];
+       struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS];
        unsigned int num_crtcs;
 
-       struct rcar_du_group groups[2];
+       struct rcar_du_group groups[RCAR_DU_MAX_GROUPS];
 
        unsigned int dpad0_source;
-       struct rcar_du_lvdsenc *lvds[2];
+       struct rcar_du_lvdsenc *lvds[RCAR_DU_MAX_LVDS];
 };
 
 static inline bool rcar_du_has(struct rcar_du_device *rcdu,