70 lines
1.6 KiB
C
70 lines
1.6 KiB
C
|
/*
|
||
|
* Copyright (c) 2014, The Linux Foundation. All rights reserved.
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 and
|
||
|
* only version 2 as published by the Free Software Foundation.
|
||
|
*
|
||
|
* This program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef MDSS_MDP_CDM_H
|
||
|
#define MDSS_MDP_CDM_H
|
||
|
|
||
|
#include <linux/msm_mdp.h>
|
||
|
#include <linux/kref.h>
|
||
|
|
||
|
enum mdp_cdm_cdwn_method_type {
|
||
|
MDP_CDM_CDWN_DISABLE,
|
||
|
MDP_CDM_CDWN_PIXEL_DROP,
|
||
|
MDP_CDM_CDWN_AVG,
|
||
|
MDP_CDM_CDWN_COSITE,
|
||
|
MDP_CDM_CDWN_OFFSITE,
|
||
|
};
|
||
|
|
||
|
enum mdp_cdm_cdwn_output_type {
|
||
|
MDP_CDM_CDWN_OUTPUT_HDMI,
|
||
|
MDP_CDM_CDWN_OUTPUT_WB,
|
||
|
};
|
||
|
|
||
|
enum mdp_cdm_csc_bit_depth {
|
||
|
MDP_CDM_CSC_8BIT,
|
||
|
MDP_CDM_CSC_10BIT,
|
||
|
};
|
||
|
|
||
|
struct mdp_cdm_cfg {
|
||
|
/* CSC block configuration */
|
||
|
u32 mdp_csc_bit_depth;
|
||
|
u32 csc_type;
|
||
|
/* CDWN block configuration */
|
||
|
u32 horz_downsampling_type;
|
||
|
u32 vert_downsampling_type;
|
||
|
/* Output packer configuration */
|
||
|
u32 output_width;
|
||
|
u32 output_height;
|
||
|
u32 out_format;
|
||
|
};
|
||
|
|
||
|
struct mdss_mdp_cdm {
|
||
|
u32 num;
|
||
|
char __iomem *base;
|
||
|
struct kref kref;
|
||
|
struct mutex lock;
|
||
|
|
||
|
struct mdss_data_type *mdata;
|
||
|
u32 out_intf;
|
||
|
bool is_bypassed;
|
||
|
struct mdp_cdm_cfg setup;
|
||
|
};
|
||
|
|
||
|
struct mdss_mdp_cdm *mdss_mdp_cdm_init(struct mdss_mdp_ctl *ctl,
|
||
|
u32 intf_type);
|
||
|
int mdss_mdp_cdm_destroy(struct mdss_mdp_cdm *cdm);
|
||
|
int mdss_mdp_cdm_setup(struct mdss_mdp_cdm *cdm, struct mdp_cdm_cfg *data);
|
||
|
|
||
|
#endif /* MDSS_MDP_CDM_H */
|