#include <linux/of_platform.h>
#include <linux/types.h>
#include <linux/hdcp_qseecom.h>
-#include <linux/clk.h>
#define REG_DUMP 0
return rc;
} /* hdmi_tx_config_power */
-static int hdmi_tx_check_clk_state(struct hdmi_tx_ctrl *hdmi_ctrl,
- enum hdmi_tx_power_module_type module)
-{
- int i;
- int rc = 0;
- struct dss_module_power *pd = NULL;
-
- if (!hdmi_ctrl || module >= HDMI_TX_MAX_PM) {
- DEV_ERR("%s: Error: invalid input\n", __func__);
- rc = -EINVAL;
- goto error;
- }
-
- pd = &hdmi_ctrl->pdata.power_data[module];
- if (!pd) {
- DEV_ERR("%s: Error: invalid power data\n", __func__);
- rc = -EINVAL;
- goto error;
- }
-
- for (i = 0; i < pd->num_clk; i++) {
- struct clk *clk = pd->clk_config[i].clk;
-
- if (clk) {
- u32 rate = clk_get_rate(clk);
-
- DEV_DBG("%s: clk %s: rate %d\n", __func__,
- pd->clk_config[i].clk_name, rate);
-
- if (!rate) {
- rc = -EINVAL;
- goto error;
- }
- } else {
- DEV_ERR("%s: clk %s: not configured\n", __func__,
- pd->clk_config[i].clk_name);
-
- rc = -EINVAL;
- goto error;
- }
- }
-
- return 0;
-error:
- return rc;
-}
-
static int hdmi_tx_enable_power(struct hdmi_tx_ctrl *hdmi_ctrl,
enum hdmi_tx_power_module_type module, int enable)
{
void *pdata = hdmi_tx_get_fd(HDMI_TX_FEAT_PANEL);
void *edata = hdmi_tx_get_fd(HDMI_TX_FEAT_EDID);
- ret = hdmi_tx_check_clk_state(hdmi_ctrl, HDMI_TX_HPD_PM);
- if (ret) {
- DEV_ERR("%s: clocks not on\n", __func__);
- return -EINVAL;
- }
-
if (hdmi_ctrl->panel_ops.get_vic)
hdmi_ctrl->vic = hdmi_ctrl->panel_ops.get_vic(
&panel_data->panel_info, &hdmi_ctrl->ds_data);