- 论坛徽章:
- 0
|
77static int set_lcd_level(int level)
78{
79 acpi_status status = AE_OK;
80 union acpi_object arg0 = { ACPI_TYPE_INTEGER };
81 struct acpi_object_list arg_list = { 1, &arg0 };
82 acpi_handle handle = NULL;
83
84 if (level < 0 || level >= FUJITSU_LCD_N_LEVELS)
85 return -EINVAL;
86
87 if (!fujitsu)
88 return -EINVAL;
89
90 status = acpi_get_handle(fujitsu->acpi_handle, "SBLL", &handle);
91 if (ACPI_FAILURE(status)) {
92 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "SBLL not present\n");
93 return -ENODEV;
94 }
95
96 arg0.integer.value = level;
97
98 status = acpi_evaluate_object(handle, NULL, &arg_list, NULL);
99 if (ACPI_FAILURE(status))
100 return -ENODEV;
101
102 return 0;
103}
我觉得这函数里面调的acpi_evaluate_object可能有问题,set的时候参数给的有点奇怪
LZ好象没把它的代码贴出来哦
另外LZ也可以把调声音的那驱动找出来,跟这个对比一下,就可以找到哪的问题了撒~
两种调节所做的事情都差不多,肯定只是最后调用的那个底层的API不同而已,一个调声音一个调亮度~
我也不太懂,抛砖引玉了~~
[ 本帖最后由 cloudice 于 2008-10-13 13:28 编辑 ] |
|