diff options
-rw-r--r-- | drivers/video/fbdev/omap2/omapfb/dss/dss.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/video/fbdev/omap2/omapfb/dss/dss.c b/drivers/video/fbdev/omap2/omapfb/dss/dss.c index 47d7f69ad9ad..48c6500c24e1 100644 --- a/drivers/video/fbdev/omap2/omapfb/dss/dss.c +++ b/drivers/video/fbdev/omap2/omapfb/dss/dss.c | |||
@@ -941,11 +941,13 @@ static int dss_init_features(struct platform_device *pdev) | |||
941 | return 0; | 941 | return 0; |
942 | } | 942 | } |
943 | 943 | ||
944 | static void dss_uninit_ports(struct platform_device *pdev); | ||
945 | |||
944 | static int dss_init_ports(struct platform_device *pdev) | 946 | static int dss_init_ports(struct platform_device *pdev) |
945 | { | 947 | { |
946 | struct device_node *parent = pdev->dev.of_node; | 948 | struct device_node *parent = pdev->dev.of_node; |
947 | struct device_node *port; | 949 | struct device_node *port; |
948 | int r; | 950 | int r, ret = 0; |
949 | 951 | ||
950 | if (parent == NULL) | 952 | if (parent == NULL) |
951 | return 0; | 953 | return 0; |
@@ -972,17 +974,21 @@ static int dss_init_ports(struct platform_device *pdev) | |||
972 | 974 | ||
973 | switch (port_type) { | 975 | switch (port_type) { |
974 | case OMAP_DISPLAY_TYPE_DPI: | 976 | case OMAP_DISPLAY_TYPE_DPI: |
975 | dpi_init_port(pdev, port); | 977 | ret = dpi_init_port(pdev, port); |
976 | break; | 978 | break; |
977 | case OMAP_DISPLAY_TYPE_SDI: | 979 | case OMAP_DISPLAY_TYPE_SDI: |
978 | sdi_init_port(pdev, port); | 980 | ret = sdi_init_port(pdev, port); |
979 | break; | 981 | break; |
980 | default: | 982 | default: |
981 | break; | 983 | break; |
982 | } | 984 | } |
983 | } while ((port = omapdss_of_get_next_port(parent, port)) != NULL); | 985 | } while (!ret && |
986 | (port = omapdss_of_get_next_port(parent, port)) != NULL); | ||
984 | 987 | ||
985 | return 0; | 988 | if (ret) |
989 | dss_uninit_ports(pdev); | ||
990 | |||
991 | return ret; | ||
986 | } | 992 | } |
987 | 993 | ||
988 | static void dss_uninit_ports(struct platform_device *pdev) | 994 | static void dss_uninit_ports(struct platform_device *pdev) |