mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
drm/msm/dsi: Refer to connected device as 'device' instead of 'panel'
We currently support only panels connected to dsi output. We're going to also support external bridge chips now. Change 'panel_node' to 'device_node' in the struct msm_dsi_host and 'panel_flags' to 'device_flags' in msm_dsi. This makes things sound a bit more generic. Signed-off-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Rob Clark <robdclark@gmail.com>
This commit is contained in:
parent
60d05cb4ea
commit
a9ddac9c57
@ -18,7 +18,7 @@ struct drm_encoder *msm_dsi_get_encoder(struct msm_dsi *msm_dsi)
|
||||
if (!msm_dsi || !msm_dsi->panel)
|
||||
return NULL;
|
||||
|
||||
return (msm_dsi->panel_flags & MIPI_DSI_MODE_VIDEO) ?
|
||||
return (msm_dsi->device_flags & MIPI_DSI_MODE_VIDEO) ?
|
||||
msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID] :
|
||||
msm_dsi->encoders[MSM_DSI_CMD_ENCODER_ID];
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ struct msm_dsi {
|
||||
struct mipi_dsi_host *host;
|
||||
struct msm_dsi_phy *phy;
|
||||
struct drm_panel *panel;
|
||||
unsigned long panel_flags;
|
||||
unsigned long device_flags;
|
||||
|
||||
struct device *phy_dev;
|
||||
bool phy_enabled;
|
||||
|
@ -232,8 +232,8 @@ struct msm_dsi_host {
|
||||
|
||||
struct drm_display_mode *mode;
|
||||
|
||||
/* Panel info */
|
||||
struct device_node *panel_node;
|
||||
/* connected device info */
|
||||
struct device_node *device_node;
|
||||
unsigned int channel;
|
||||
unsigned int lanes;
|
||||
enum mipi_dsi_pixel_format format;
|
||||
@ -1404,7 +1404,7 @@ static int dsi_host_attach(struct mipi_dsi_host *host,
|
||||
msm_host->format = dsi->format;
|
||||
msm_host->mode_flags = dsi->mode_flags;
|
||||
|
||||
WARN_ON(dsi->dev.of_node != msm_host->panel_node);
|
||||
WARN_ON(dsi->dev.of_node != msm_host->device_node);
|
||||
|
||||
/* Some gpios defined in panel DT need to be controlled by host */
|
||||
ret = dsi_host_init_panel_gpios(msm_host, &dsi->dev);
|
||||
@ -1423,7 +1423,7 @@ static int dsi_host_detach(struct mipi_dsi_host *host,
|
||||
{
|
||||
struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
|
||||
|
||||
msm_host->panel_node = NULL;
|
||||
msm_host->device_node = NULL;
|
||||
|
||||
DBG("id=%d", msm_host->id);
|
||||
if (msm_host->dev)
|
||||
@ -1458,7 +1458,7 @@ static int dsi_host_parse_dt(struct msm_dsi_host *msm_host)
|
||||
{
|
||||
struct device *dev = &msm_host->pdev->dev;
|
||||
struct device_node *np = dev->of_node;
|
||||
struct device_node *endpoint, *panel_node;
|
||||
struct device_node *endpoint, *device_node;
|
||||
int ret;
|
||||
|
||||
ret = of_property_read_u32(np, "qcom,dsi-host-index", &msm_host->id);
|
||||
@ -1481,17 +1481,17 @@ static int dsi_host_parse_dt(struct msm_dsi_host *msm_host)
|
||||
}
|
||||
|
||||
/* Get panel node from the output port's endpoint data */
|
||||
panel_node = of_graph_get_remote_port_parent(endpoint);
|
||||
if (!panel_node) {
|
||||
device_node = of_graph_get_remote_port_parent(endpoint);
|
||||
if (!device_node) {
|
||||
dev_err(dev, "%s: no valid device\n", __func__);
|
||||
of_node_put(endpoint);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
of_node_put(endpoint);
|
||||
of_node_put(panel_node);
|
||||
of_node_put(device_node);
|
||||
|
||||
msm_host->panel_node = panel_node;
|
||||
msm_host->device_node = device_node;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1644,8 +1644,8 @@ int msm_dsi_host_register(struct mipi_dsi_host *host, bool check_defer)
|
||||
* Don't try to defer if there is nothing connected to the dsi
|
||||
* output
|
||||
*/
|
||||
if (check_defer && msm_host->panel_node) {
|
||||
if (!of_drm_find_panel(msm_host->panel_node))
|
||||
if (check_defer && msm_host->device_node) {
|
||||
if (!of_drm_find_panel(msm_host->device_node))
|
||||
return -EPROBE_DEFER;
|
||||
}
|
||||
}
|
||||
@ -2066,7 +2066,7 @@ struct drm_panel *msm_dsi_host_get_panel(struct mipi_dsi_host *host,
|
||||
struct msm_dsi_host *msm_host = to_msm_dsi_host(host);
|
||||
struct drm_panel *panel;
|
||||
|
||||
panel = of_drm_find_panel(msm_host->panel_node);
|
||||
panel = of_drm_find_panel(msm_host->device_node);
|
||||
if (panel_flags)
|
||||
*panel_flags = msm_host->mode_flags;
|
||||
|
||||
|
@ -156,7 +156,7 @@ static enum drm_connector_status dsi_mgr_connector_detect(
|
||||
DBG("id=%d", id);
|
||||
if (!msm_dsi->panel) {
|
||||
msm_dsi->panel = msm_dsi_host_get_panel(msm_dsi->host,
|
||||
&msm_dsi->panel_flags);
|
||||
&msm_dsi->device_flags);
|
||||
|
||||
/* There is only 1 panel in the global panel list
|
||||
* for dual DSI mode. Therefore slave dsi should get
|
||||
@ -177,7 +177,7 @@ static enum drm_connector_status dsi_mgr_connector_detect(
|
||||
*/
|
||||
if (msm_dsi->panel && IS_DUAL_DSI() &&
|
||||
other_dsi && other_dsi->panel) {
|
||||
bool cmd_mode = !(msm_dsi->panel_flags &
|
||||
bool cmd_mode = !(msm_dsi->device_flags &
|
||||
MIPI_DSI_MODE_VIDEO);
|
||||
struct drm_encoder *encoder = msm_dsi_get_encoder(
|
||||
dsi_mgr_get_dsi(DSI_ENCODER_MASTER));
|
||||
|
Loading…
Reference in New Issue
Block a user