mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-24 21:24:00 +08:00
OMAPDSS: DPI: Add support for multiple instances
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 port number 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> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
parent
ef691ff48b
commit
f7e38fe9e2
@ -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 port_num)
|
||||
{
|
||||
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 port_num;
|
||||
|
||||
r = of_property_read_u32(port, "reg", &port_num);
|
||||
if (r)
|
||||
port_num = 0;
|
||||
|
||||
switch (port_num) {
|
||||
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(port_num);
|
||||
out->port_num = port_num;
|
||||
out->ops.dpi = &dpi_ops;
|
||||
out->owner = THIS_MODULE;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user