Commit 1ef904e1 authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen

drm: omapdrm: dss: Pass DSS pointer to remaining dss functions

This removes the need to access the global DSS private data in those
functions (both for the current accesses and the future ones that will
be introduced when allocating the DSS device dynamically).
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
parent 60f9c59f
...@@ -2733,7 +2733,7 @@ static int dispc_ovl_enable(enum omap_plane_id plane, bool enable) ...@@ -2733,7 +2733,7 @@ static int dispc_ovl_enable(enum omap_plane_id plane, bool enable)
static enum omap_dss_output_id dispc_mgr_get_supported_outputs(enum omap_channel channel) static enum omap_dss_output_id dispc_mgr_get_supported_outputs(enum omap_channel channel)
{ {
return dss_get_supported_outputs(channel); return dss_get_supported_outputs(dispc.dss, channel);
} }
static void dispc_lcd_enable_signal_polarity(bool act_high) static void dispc_lcd_enable_signal_polarity(bool act_high)
......
...@@ -666,9 +666,10 @@ unsigned long dss_get_max_fck_rate(struct dss_device *dss) ...@@ -666,9 +666,10 @@ unsigned long dss_get_max_fck_rate(struct dss_device *dss)
return dss->feat->fck_freq_max; return dss->feat->fck_freq_max;
} }
enum omap_dss_output_id dss_get_supported_outputs(enum omap_channel channel) enum omap_dss_output_id dss_get_supported_outputs(struct dss_device *dss,
enum omap_channel channel)
{ {
return dss.feat->outputs[channel]; return dss->feat->outputs[channel];
} }
static int dss_setup_default_clock(void) static int dss_setup_default_clock(void)
...@@ -697,7 +698,7 @@ static int dss_setup_default_clock(void) ...@@ -697,7 +698,7 @@ static int dss_setup_default_clock(void)
return 0; return 0;
} }
void dss_set_venc_output(enum omap_dss_venc_type type) void dss_set_venc_output(struct dss_device *dss, enum omap_dss_venc_type type)
{ {
int l = 0; int l = 0;
...@@ -712,7 +713,7 @@ void dss_set_venc_output(enum omap_dss_venc_type type) ...@@ -712,7 +713,7 @@ void dss_set_venc_output(enum omap_dss_venc_type type)
REG_FLD_MOD(DSS_CONTROL, l, 6, 6); REG_FLD_MOD(DSS_CONTROL, l, 6, 6);
} }
void dss_set_dac_pwrdn_bgz(bool enable) void dss_set_dac_pwrdn_bgz(struct dss_device *dss, bool enable)
{ {
REG_FLD_MOD(DSS_CONTROL, enable, 5, 5); /* DAC Power-Down Control */ REG_FLD_MOD(DSS_CONTROL, enable, 5, 5); /* DAC Power-Down Control */
} }
......
...@@ -299,7 +299,8 @@ void dss_runtime_put(struct dss_device *dss); ...@@ -299,7 +299,8 @@ void dss_runtime_put(struct dss_device *dss);
unsigned long dss_get_dispc_clk_rate(struct dss_device *dss); unsigned long dss_get_dispc_clk_rate(struct dss_device *dss);
unsigned long dss_get_max_fck_rate(struct dss_device *dss); unsigned long dss_get_max_fck_rate(struct dss_device *dss);
enum omap_dss_output_id dss_get_supported_outputs(enum omap_channel channel); enum omap_dss_output_id dss_get_supported_outputs(struct dss_device *dss,
enum omap_channel channel);
int dss_dpi_select_source(struct dss_device *dss, int port, int dss_dpi_select_source(struct dss_device *dss, int port,
enum omap_channel channel); enum omap_channel channel);
void dss_select_hdmi_venc_clk_source(struct dss_device *dss, void dss_select_hdmi_venc_clk_source(struct dss_device *dss,
...@@ -329,8 +330,8 @@ enum dss_clk_source dss_get_dsi_clk_source(struct dss_device *dss, ...@@ -329,8 +330,8 @@ enum dss_clk_source dss_get_dsi_clk_source(struct dss_device *dss,
enum dss_clk_source dss_get_lcd_clk_source(struct dss_device *dss, enum dss_clk_source dss_get_lcd_clk_source(struct dss_device *dss,
enum omap_channel channel); enum omap_channel channel);
void dss_set_venc_output(enum omap_dss_venc_type type); void dss_set_venc_output(struct dss_device *dss, enum omap_dss_venc_type type);
void dss_set_dac_pwrdn_bgz(bool enable); void dss_set_dac_pwrdn_bgz(struct dss_device *dss, bool enable);
int dss_set_fck_rate(struct dss_device *dss, unsigned long rate); int dss_set_fck_rate(struct dss_device *dss, unsigned long rate);
......
...@@ -325,6 +325,7 @@ static struct { ...@@ -325,6 +325,7 @@ static struct {
struct mutex venc_lock; struct mutex venc_lock;
u32 wss_data; u32 wss_data;
struct regulator *vdda_dac_reg; struct regulator *vdda_dac_reg;
struct dss_device *dss;
struct clk *tv_dac_clk; struct clk *tv_dac_clk;
...@@ -468,8 +469,8 @@ static int venc_power_on(struct omap_dss_device *dssdev) ...@@ -468,8 +469,8 @@ static int venc_power_on(struct omap_dss_device *dssdev)
venc_reset(); venc_reset();
venc_write_config(venc_timings_to_config(&venc.vm)); venc_write_config(venc_timings_to_config(&venc.vm));
dss_set_venc_output(venc.type); dss_set_venc_output(venc.dss, venc.type);
dss_set_dac_pwrdn_bgz(1); dss_set_dac_pwrdn_bgz(venc.dss, 1);
l = 0; l = 0;
...@@ -499,7 +500,7 @@ static int venc_power_on(struct omap_dss_device *dssdev) ...@@ -499,7 +500,7 @@ static int venc_power_on(struct omap_dss_device *dssdev)
regulator_disable(venc.vdda_dac_reg); regulator_disable(venc.vdda_dac_reg);
err1: err1:
venc_write_reg(VENC_OUTPUT_CONTROL, 0); venc_write_reg(VENC_OUTPUT_CONTROL, 0);
dss_set_dac_pwrdn_bgz(0); dss_set_dac_pwrdn_bgz(venc.dss, 0);
venc_runtime_put(); venc_runtime_put();
err0: err0:
...@@ -511,7 +512,7 @@ static void venc_power_off(struct omap_dss_device *dssdev) ...@@ -511,7 +512,7 @@ static void venc_power_off(struct omap_dss_device *dssdev)
enum omap_channel channel = dssdev->dispc_channel; enum omap_channel channel = dssdev->dispc_channel;
venc_write_reg(VENC_OUTPUT_CONTROL, 0); venc_write_reg(VENC_OUTPUT_CONTROL, 0);
dss_set_dac_pwrdn_bgz(0); dss_set_dac_pwrdn_bgz(venc.dss, 0);
dss_mgr_disable(channel); dss_mgr_disable(channel);
...@@ -871,11 +872,13 @@ static const struct soc_device_attribute venc_soc_devices[] = { ...@@ -871,11 +872,13 @@ static const struct soc_device_attribute venc_soc_devices[] = {
static int venc_bind(struct device *dev, struct device *master, void *data) static int venc_bind(struct device *dev, struct device *master, void *data)
{ {
struct platform_device *pdev = to_platform_device(dev); struct platform_device *pdev = to_platform_device(dev);
struct dss_device *dss = dss_get_device(master);
u8 rev_id; u8 rev_id;
struct resource *venc_mem; struct resource *venc_mem;
int r; int r;
venc.pdev = pdev; venc.pdev = pdev;
venc.dss = dss;
/* The OMAP34xx, OMAP35xx and AM35xx VENC require the TV DAC clock. */ /* The OMAP34xx, OMAP35xx and AM35xx VENC require the TV DAC clock. */
if (soc_device_match(venc_soc_devices)) if (soc_device_match(venc_soc_devices))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment