int master_pipe, u32 active_pipes);
 };
 
-/**
+/*
  * DISPLAY_MODE describes how many display been enabled, and which will be
  * passed to CHIP by &komeda_dev_funcs->change_opmode(), then CHIP can do the
  * pipeline resources assignment according to this usage hint.
  * control-abilites of device.
  */
 struct komeda_dev {
+       /** @dev: the base device structure */
        struct device *dev;
+       /** @reg_base: the base address of komeda io space */
        u32 __iomem   *reg_base;
 
+       /** @chip: the basic chip information */
        struct komeda_chip_info chip;
        /** @fmt_tbl: initialized by &komeda_dev_funcs->init_format_table */
        struct komeda_format_caps_table fmt_tbl;
        /** @pclk: APB clock for register access */
        struct clk *pclk;
-       /** @mck: HW main engine clk */
+       /** @mclk: HW main engine clk */
        struct clk *mclk;
 
        /** @irq: irq number */
        int irq;
 
-       struct mutex lock; /* used to protect dpmode */
-       u32 dpmode; /* current display mode */
+       /** @lock: used to protect dpmode */
+       struct mutex lock;
+       /** @dpmode: current display mode */
+       u32 dpmode;
 
+       /** @n_pipelines: the number of pipe in @pipelines */
        int n_pipelines;
+       /** @pipelines: the komeda pipelines */
        struct komeda_pipeline *pipelines[KOMEDA_MAX_PIPELINES];
 
        /** @funcs: chip funcs to access to HW */
         */
        void *chip_data;
 
+       /** @debugfs_root: root directory of komeda debugfs */
        struct dentry *debugfs_root;
 };
 
 
 #include <video/videomode.h>
 #include <video/display_timing.h>
 
-/** struct komeda_plane - komeda instance of drm_plane */
+/**
+ * struct komeda_plane - komeda instance of drm_plane
+ */
 struct komeda_plane {
        /** @base: &drm_plane */
        struct drm_plane base;
         */
        struct komeda_pipeline *slave;
 
-       /* this flip_done is for tracing the disable */
+       /** @disable_done: this flip_done is for tracing the disable */
        struct completion *disable_done;
 };
 
-/** struct komeda_crtc_state */
+/**
+ * struct komeda_crtc_state
+ */
 struct komeda_crtc_state {
        /** @base: &drm_crtc_state */
        struct drm_crtc_state base;
        /* private properties */
 
        /* computed state which are used by validate/check */
+       /**
+        * @affected_pipes:
+        * the affected pipelines in once display instance
+        */
        u32 affected_pipes;
+       /**
+        * @active_pipes:
+        * the active pipelines in once display instance
+        */
        u32 active_pipes;
 };
 
 
        u32 __iomem *reg;
        /** @id: component id */
        u32 id;
-       /** @hw_ic: component hw id,
-        *  which is initialized by chip and used by chip only
+       /**
+        * @hw_id: component hw id,
+        * which is initialized by chip and used by chip only
         */
        u32 hw_id;
 
        /**
         * @max_active_inputs:
-        * @max_active_outpus:
+        * @max_active_outputs:
         *
-        * maximum number of inputs/outputs that can be active in the same time
+        * maximum number of inputs/outputs that can be active at the same time
         * Note:
         * the number isn't the bit number of @supported_inputs or
         * @supported_outputs, but may be less than it, since component may not
         * support enabling all @supported_inputs/outputs at the same time.
         */
        u8 max_active_inputs;
+       /** @max_active_outputs: maximum number of outputs */
        u8 max_active_outputs;
        /**
         * @supported_inputs:
         * @supported_outputs:
         *
-        * bitmask of BIT(component->id) for the supported inputs/outputs
+        * bitmask of BIT(component->id) for the supported inputs/outputs,
         * describes the possibilities of how a component is linked into a
         * pipeline.
         */
        u32 supported_inputs;
+       /** @supported_outputs: bitmask of supported output componenet ids */
        u32 supported_outputs;
 
        /**
 struct komeda_component_output {
        /** @component: indicate which component the data comes from */
        struct komeda_component *component;
-       /** @output_port:
+       /**
+        * @output_port:
         * the output port of the &komeda_component_output.component
         */
        u8 output_port;
 struct komeda_component_state {
        /** @obj: tracking component_state by drm_atomic_state */
        struct drm_private_state obj;
+       /** @component: backpointer to the component */
        struct komeda_component *component;
        /**
         * @binding_user:
-        * currently bound user, the user can be crtc/plane/wb_conn, which is
-        * valid decided by @component and @inputs
+        * currently bound user, the user can be @crtc, @plane or @wb_conn,
+        * which is valid decided by @component and @inputs
         *
         * -  Layer: its user always is plane.
         * -  compiz/improc/timing_ctrlr: the user is crtc.
         * -  scaler: plane when input is layer, wb_conn if input is compiz.
         */
        union {
+               /** @crtc: backpointer for user crtc */
                struct drm_crtc *crtc;
+               /** @plane: backpointer for user plane */
                struct drm_plane *plane;
+               /** @wb_conn: backpointer for user wb_connector  */
                struct drm_connector *wb_conn;
                void *binding_user;
        };
+
        /**
         * @active_inputs:
         *
         * active_inputs is bitmask of @inputs index
         *
-        * -  active_inputs = changed_active_inputs + unchanged_active_inputs
-        * -  affected_inputs = old->active_inputs + new->active_inputs;
+        * -  active_inputs = changed_active_inputs | unchanged_active_inputs
+        * -  affected_inputs = old->active_inputs | new->active_inputs;
         * -  disabling_inputs = affected_inputs ^ active_inputs;
-        * -  changed_inputs = disabling_inputs + changed_active_inputs;
+        * -  changed_inputs = disabling_inputs | changed_active_inputs;
         *
         * NOTE:
         * changed_inputs doesn't include all active_input but only
         * level for dirty update.
         */
        u16 active_inputs;
+       /** @changed_active_inputs: bitmask of the changed @active_inputs */
        u16 changed_active_inputs;
+       /** @affected_inputs: bitmask for affected @inputs */
        u16 affected_inputs;
        /**
         * @inputs:
        int id;
        /** @avail_comps: available components mask of pipeline */
        u32 avail_comps;
+       /** @n_layers: the number of layer on @layers */
        int n_layers;
+       /** @layers: the pipeline layers */
        struct komeda_layer *layers[KOMEDA_PIPELINE_MAX_LAYERS];
+       /** @n_scalers: the number of scaler on @scalers */
        int n_scalers;
+       /** @scalers: the pipeline scalers */
        struct komeda_scaler *scalers[KOMEDA_PIPELINE_MAX_SCALERS];
+       /** @compiz: compositor */
        struct komeda_compiz *compiz;
+       /** @wb_layer: writeback layer */
        struct komeda_layer  *wb_layer;
+       /** @improc: post image processor */
        struct komeda_improc *improc;
+       /** @ctrlr: timing controller */
        struct komeda_timing_ctrlr *ctrlr;
+       /** @funcs: chip pipeline functions */
        struct komeda_pipeline_funcs *funcs; /* private pipeline functions */
 
        /** @of_node: pipeline dt node */
 struct komeda_pipeline_state {
        /** @obj: tracking pipeline_state by drm_atomic_state */
        struct drm_private_state obj;
+       /** @pipe: backpointer to the pipeline */
        struct komeda_pipeline *pipe;
        /** @crtc: currently bound crtc */
        struct drm_crtc *crtc;