Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ce7ebcc authored by Ajay Singh Parmar's avatar Ajay Singh Parmar
Browse files

msm: mdss: hdmi: make edid parser an independent module



Currently only HDMI driver is using EDID parser. But this parse
can be utilized by other MDSS drivers. Make this as an independent
module which can be used by any other MDSS driver for EDID parsing.

Change-Id: I62622af6c27927b7cf0390238f311452c03cd262
Signed-off-by: default avatarAjay Singh Parmar <aparmar@codeaurora.org>
parent 144221df
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -40,13 +40,13 @@ mdss-dsi-objs += mdss_dsi_panel.o
mdss-dsi-objs += msm_mdss_io_8974.o
obj-$(CONFIG_FB_MSM_MDSS) += mdss-dsi.o
obj-$(CONFIG_FB_MSM_MDSS) += mdss_panel.o
obj-$(CONFIG_FB_MSM_MDSS) += mdss_hdmi_util.o
obj-$(CONFIG_FB_MSM_MDSS) += mdss_hdmi_edid.o
obj-$(CONFIG_FB_MSM_MDSS_EDP_PANEL) += mdss_edp.o
obj-$(CONFIG_FB_MSM_MDSS_EDP_PANEL) += mdss_edp_aux.o

obj-$(CONFIG_FB_MSM_MDSS) += mdss_io_util.o
obj-$(CONFIG_FB_MSM_MDSS_HDMI_PANEL) += mdss_hdmi_tx.o
obj-$(CONFIG_FB_MSM_MDSS_HDMI_PANEL) += mdss_hdmi_util.o
obj-$(CONFIG_FB_MSM_MDSS_HDMI_PANEL) += mdss_hdmi_edid.o
obj-$(CONFIG_FB_MSM_MDSS_HDMI_PANEL) += mdss_hdmi_hdcp.o
obj-$(CONFIG_FB_MSM_MDSS_HDMI_PANEL) += mdss_hdmi_hdcp2p2.o
obj-$(CONFIG_FB_MSM_MDSS_HDMI_PANEL) += mdss_hdmi_cec.o
+293 −305

File changed.

Preview size limit exceeded, changes collapsed.

+11 −7
Original line number Diff line number Diff line
@@ -16,16 +16,20 @@
#include <linux/msm_hdmi.h>
#include "mdss_hdmi_util.h"

struct hdmi_edid_init_data {
	struct dss_io_data *io;
	struct mutex *mutex;
	struct kobject *sysfs_kobj;
#define EDID_BLOCK_SIZE 0x80
#define EDID_BLOCK_ADDR 0xA0
#define MAX_EDID_BLOCKS 5

	struct hdmi_tx_ddc_ctrl *ddc_ctrl;
struct hdmi_edid_init_data {
	struct kobject *kobj;
	struct hdmi_util_ds_data *ds_data;
	u32 max_pclk_khz;
	u8 *buf;
	u32 buf_size;
};

int hdmi_edid_read(void *edid_ctrl);
int hdmi_edid_parser(void *edid_ctrl);
u32 hdmi_edid_get_raw_data(void *edid_ctrl, u8 *buf, u32 size);
u8 hdmi_edid_get_sink_scaninfo(void *edid_ctrl, u32 resolution);
u32 hdmi_edid_get_sink_mode(void *edid_ctrl);
bool hdmi_edid_get_sink_scrambler_support(void *input);
@@ -34,6 +38,6 @@ int hdmi_edid_get_audio_blk(void *edid_ctrl,
	struct msm_hdmi_audio_edid_blk *blk);
void hdmi_edid_set_video_resolution(void *edid_ctrl, u32 resolution);
void hdmi_edid_deinit(void *edid_ctrl);
void *hdmi_edid_init(struct hdmi_edid_init_data *init_data, u32 max_pclk_khz);
void *hdmi_edid_init(struct hdmi_edid_init_data *init_data);

#endif /* __HDMI_EDID_H__ */
+173 −13

File changed.

Preview size limit exceeded, changes collapsed.

+3 −0
Original line number Diff line number Diff line
@@ -187,6 +187,9 @@ struct hdmi_tx_ctrl {
	struct hdmi_hdcp_ops *hdcp_ops;
	void *hdcp_feature_data;
	bool hdcp22_present;

	u8 *edid_buf;
	u32 edid_buf_size;
};

#endif /* __MDSS_HDMI_TX_H__ */
Loading