lcd: optimize vsync probe method, by string, not index value in dts [2/2]

PD#SWPL-4679

Problem:
optimize vsync probe method, by string, not index value in dts

Solution:
optimize vsync probe method, by string, not index value in dts

Verify:
verify by t962x2-x301

Change-Id: Ib87a2913b7dafb3ea3c9c5a936b29939ab7ee034
Signed-off-by: Shaochan Liu <shaochan.liu@amlogic.com>
This commit is contained in:
Shaochan Liu
2019-03-04 15:39:02 +08:00
committed by Dongjin Kim
parent 75bd3a4959
commit 1d59520563
2 changed files with 12 additions and 23 deletions

View File

@@ -992,6 +992,10 @@ static int lcd_config_load_from_unifykey(struct lcd_config_s *pconf)
((*(p + LCD_UKEY_PCLK + 1)) << 8) |
((*(p + LCD_UKEY_PCLK + 2)) << 16) |
((*(p + LCD_UKEY_PCLK + 3)) << 24));
if (pconf->lcd_timing.lcd_clk == 0) { /* avoid 0 mistake */
pconf->lcd_timing.lcd_clk = 60;
LCDERR("lcd_clk is 0, default to 60Hz\n");
}
pconf->lcd_basic.h_period_min = (*(p + LCD_UKEY_H_PERIOD_MIN) |
((*(p + LCD_UKEY_H_PERIOD_MIN + 1)) << 8));
pconf->lcd_basic.h_period_max = (*(p + LCD_UKEY_H_PERIOD_MAX) |

View File

@@ -1113,29 +1113,14 @@ static int lcd_config_probe(struct platform_device *pdev)
LCDPR("detect lcd_auto_test: %d\n", lcd_driver->lcd_auto_test);
}
ret = of_property_read_string_index(lcd_driver->dev->of_node,
"interrupt-names", 0, &str);
if (ret == 0) {
lcd_driver->res_vsync_irq = platform_get_resource(pdev,
IORESOURCE_IRQ, 0);
}
ret = of_property_read_string_index(lcd_driver->dev->of_node,
"interrupt-names", 1, &str);
if (ret == 0) {
if (strcmp(str, "vbyone") == 0) {
lcd_driver->res_vx1_irq =
platform_get_resource(pdev, IORESOURCE_IRQ, 1);
} else if (strcmp(str, "vsync2") == 0) {
lcd_driver->res_vsync2_irq =
platform_get_resource(pdev, IORESOURCE_IRQ, 1);
}
}
ret = of_property_read_string_index(lcd_driver->dev->of_node,
"interrupt-names", 2, &str);
if (ret == 0) {
lcd_driver->res_tcon_irq = platform_get_resource(pdev,
IORESOURCE_IRQ, 2);
}
lcd_driver->res_vsync_irq = platform_get_resource_byname(pdev,
IORESOURCE_IRQ, "vsync");
lcd_driver->res_vsync2_irq = platform_get_resource_byname(pdev,
IORESOURCE_IRQ, "vsync2");
lcd_driver->res_vx1_irq = platform_get_resource_byname(pdev,
IORESOURCE_IRQ, "vbyone");
lcd_driver->res_tcon_irq = platform_get_resource_byname(pdev,
IORESOURCE_IRQ, "tcon");
lcd_driver->lcd_info = &lcd_vinfo;
lcd_driver->lcd_config = &lcd_config_dft;