Message ID | 1401864063-19196-7-git-send-email-archit@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/06/14 09:41, Archit Taneja wrote: > Register DPI outputs, and assign the port_num to them as specified by the > 'reg' property in the DPI ports in DT. > > To support multiple DPI instances, dpi_get_channel needs to take the DPI > instance's reg-id to get the corresponding channel. Make it take this > argument.We just pass 0 in the non-DT path, since we don't support multiple > instances in the non-DT case. > > Signed-off-by: Archit Taneja <archit@ti.com> > --- > drivers/video/fbdev/omap2/dss/dpi.c | 26 +++++++++++++++++++++++--- > 1 file changed, 23 insertions(+), 3 deletions(-) > > diff --git a/drivers/video/fbdev/omap2/dss/dpi.c b/drivers/video/fbdev/omap2/dss/dpi.c > index b579022..3e204a8 100644 > --- a/drivers/video/fbdev/omap2/dss/dpi.c > +++ b/drivers/video/fbdev/omap2/dss/dpi.c > @@ -616,7 +616,7 @@ static void dpi_init_pll(struct dpi_data *dpi) > * the channel in some more dynamic manner, or get the channel as a user > * parameter. > */ > -static enum omap_channel dpi_get_channel(void) > +static enum omap_channel dpi_get_channel(int reg) > { > switch (omapdss_get_version()) { > case OMAPDSS_VER_OMAP24xx: > @@ -710,7 +710,7 @@ static void dpi_init_output(struct platform_device *pdev) > out->id = OMAP_DSS_OUTPUT_DPI; > out->output_type = OMAP_DISPLAY_TYPE_DPI; > out->name = "dpi.0"; > - out->dispc_channel = dpi_get_channel(); > + out->dispc_channel = dpi_get_channel(0); > out->ops.dpi = &dpi_ops; > out->owner = THIS_MODULE; > > @@ -730,11 +730,31 @@ static void dpi_init_output_port(struct platform_device *pdev, > { > struct dpi_data *dpi = port->data; > struct omap_dss_device *out = &dpi->output; > + int r; > + u32 reg; > + > + r = of_property_read_u32(port, "reg", ®); > + if (r) > + reg = 0; > + > + switch (reg) { > + case 2: > + out->name = "dpi.2"; > + break; > + case 1: > + out->name = "dpi.1"; > + break; > + case 0: > + default: > + out->name = "dpi.0"; > + break; > + } I don't think it makes sense to use "reg" word anywhere else than when getting the property from the DT data. What we need here is port number. That port number is just stored in "reg" property in the DT data. So rather do: of_property_read_u32(port, "reg", &port_num); and use the port_num (or such) everywhere, including the subject of the next patch. Tomi
diff --git a/drivers/video/fbdev/omap2/dss/dpi.c b/drivers/video/fbdev/omap2/dss/dpi.c index b579022..3e204a8 100644 --- a/drivers/video/fbdev/omap2/dss/dpi.c +++ b/drivers/video/fbdev/omap2/dss/dpi.c @@ -616,7 +616,7 @@ static void dpi_init_pll(struct dpi_data *dpi) * the channel in some more dynamic manner, or get the channel as a user * parameter. */ -static enum omap_channel dpi_get_channel(void) +static enum omap_channel dpi_get_channel(int reg) { switch (omapdss_get_version()) { case OMAPDSS_VER_OMAP24xx: @@ -710,7 +710,7 @@ static void dpi_init_output(struct platform_device *pdev) out->id = OMAP_DSS_OUTPUT_DPI; out->output_type = OMAP_DISPLAY_TYPE_DPI; out->name = "dpi.0"; - out->dispc_channel = dpi_get_channel(); + out->dispc_channel = dpi_get_channel(0); out->ops.dpi = &dpi_ops; out->owner = THIS_MODULE; @@ -730,11 +730,31 @@ static void dpi_init_output_port(struct platform_device *pdev, { struct dpi_data *dpi = port->data; struct omap_dss_device *out = &dpi->output; + int r; + u32 reg; + + r = of_property_read_u32(port, "reg", ®); + if (r) + reg = 0; + + switch (reg) { + case 2: + out->name = "dpi.2"; + break; + case 1: + out->name = "dpi.1"; + break; + case 0: + default: + out->name = "dpi.0"; + break; + } out->dev = &pdev->dev; out->id = OMAP_DSS_OUTPUT_DPI; out->output_type = OMAP_DISPLAY_TYPE_DPI; - out->dispc_channel = dpi_get_channel(); + out->dispc_channel = dpi_get_channel(reg); + out->port_num = reg; out->ops.dpi = &dpi_ops; out->owner = THIS_MODULE;
Register DPI outputs, and assign the port_num to them as specified by the 'reg' property in the DPI ports in DT. To support multiple DPI instances, dpi_get_channel needs to take the DPI instance's reg-id to get the corresponding channel. Make it take this argument.We just pass 0 in the non-DT path, since we don't support multiple instances in the non-DT case. Signed-off-by: Archit Taneja <archit@ti.com> --- drivers/video/fbdev/omap2/dss/dpi.c | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-)