Lines Matching refs:pcc
236 static int acpi_pcc_write_sset(struct pcc_acpi *pcc, int func, int val) in acpi_pcc_write_sset() argument
250 status = acpi_evaluate_object(pcc->handle, METHOD_HKEY_SSET, in acpi_pcc_write_sset()
272 static int acpi_pcc_retrieve_biosdata(struct pcc_acpi *pcc) in acpi_pcc_retrieve_biosdata() argument
279 status = acpi_evaluate_object(pcc->handle, METHOD_HKEY_SINF, NULL, in acpi_pcc_retrieve_biosdata()
294 if (pcc->num_sifr < hkey->package.count) { in acpi_pcc_retrieve_biosdata()
304 pcc->sinf[i] = element->integer.value; in acpi_pcc_retrieve_biosdata()
309 pcc->sinf[hkey->package.count] = -1; in acpi_pcc_retrieve_biosdata()
325 struct pcc_acpi *pcc = bl_get_data(bd); in bl_get() local
327 if (!acpi_pcc_retrieve_biosdata(pcc)) in bl_get()
330 return pcc->sinf[SINF_AC_CUR_BRIGHT]; in bl_get()
335 struct pcc_acpi *pcc = bl_get_data(bd); in bl_set_status() local
339 if (!acpi_pcc_retrieve_biosdata(pcc)) in bl_set_status()
342 if (bright < pcc->sinf[SINF_AC_MIN_BRIGHT]) in bl_set_status()
343 bright = pcc->sinf[SINF_AC_MIN_BRIGHT]; in bl_set_status()
345 if (bright < pcc->sinf[SINF_DC_MIN_BRIGHT]) in bl_set_status()
346 bright = pcc->sinf[SINF_DC_MIN_BRIGHT]; in bl_set_status()
348 if (bright < pcc->sinf[SINF_AC_MIN_BRIGHT] || in bl_set_status()
349 bright > pcc->sinf[SINF_AC_MAX_BRIGHT]) in bl_set_status()
352 rc = acpi_pcc_write_sset(pcc, SINF_AC_CUR_BRIGHT, bright); in bl_set_status()
356 return acpi_pcc_write_sset(pcc, SINF_DC_CUR_BRIGHT, bright); in bl_set_status()
371 struct pcc_acpi *pcc = acpi_driver_data(acpi); in show_numbatt() local
373 if (!acpi_pcc_retrieve_biosdata(pcc)) in show_numbatt()
376 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]); in show_numbatt()
383 struct pcc_acpi *pcc = acpi_driver_data(acpi); in show_lcdtype() local
385 if (!acpi_pcc_retrieve_biosdata(pcc)) in show_lcdtype()
388 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_LCD_TYPE]); in show_lcdtype()
395 struct pcc_acpi *pcc = acpi_driver_data(acpi); in show_mute() local
397 if (!acpi_pcc_retrieve_biosdata(pcc)) in show_mute()
400 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_MUTE]); in show_mute()
407 struct pcc_acpi *pcc = acpi_driver_data(acpi); in show_sticky() local
409 if (!acpi_pcc_retrieve_biosdata(pcc)) in show_sticky()
412 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_STICKY_KEY]); in show_sticky()
419 struct pcc_acpi *pcc = acpi_driver_data(acpi); in set_sticky() local
424 acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, val); in set_sticky()
425 pcc->sticky_mode = val; in set_sticky()
453 static void acpi_pcc_generate_keyinput(struct pcc_acpi *pcc) in acpi_pcc_generate_keyinput() argument
455 struct input_dev *hotk_input_dev = pcc->input_dev; in acpi_pcc_generate_keyinput()
459 rc = acpi_evaluate_integer(pcc->handle, METHOD_HKEY_QUERY, in acpi_pcc_generate_keyinput()
484 struct pcc_acpi *pcc = acpi_driver_data(device); in acpi_pcc_hotkey_notify() local
488 acpi_pcc_generate_keyinput(pcc); in acpi_pcc_hotkey_notify()
496 static int acpi_pcc_init_input(struct pcc_acpi *pcc) in acpi_pcc_init_input() argument
526 pcc->input_dev = input_dev; in acpi_pcc_init_input()
536 static void acpi_pcc_destroy_input(struct pcc_acpi *pcc) in acpi_pcc_destroy_input() argument
538 sparse_keymap_free(pcc->input_dev); in acpi_pcc_destroy_input()
539 input_unregister_device(pcc->input_dev); in acpi_pcc_destroy_input()
551 struct pcc_acpi *pcc; in acpi_pcc_hotkey_resume() local
556 pcc = acpi_driver_data(to_acpi_device(dev)); in acpi_pcc_hotkey_resume()
557 if (!pcc) in acpi_pcc_hotkey_resume()
561 pcc->sticky_mode)); in acpi_pcc_hotkey_resume()
563 return acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, pcc->sticky_mode); in acpi_pcc_hotkey_resume()
570 struct pcc_acpi *pcc; in acpi_pcc_hotkey_add() local
583 pcc = kzalloc(sizeof(struct pcc_acpi), GFP_KERNEL); in acpi_pcc_hotkey_add()
584 if (!pcc) { in acpi_pcc_hotkey_add()
590 pcc->sinf = kzalloc(sizeof(u32) * (num_sifr + 1), GFP_KERNEL); in acpi_pcc_hotkey_add()
591 if (!pcc->sinf) { in acpi_pcc_hotkey_add()
596 pcc->device = device; in acpi_pcc_hotkey_add()
597 pcc->handle = device->handle; in acpi_pcc_hotkey_add()
598 pcc->num_sifr = num_sifr; in acpi_pcc_hotkey_add()
599 device->driver_data = pcc; in acpi_pcc_hotkey_add()
603 result = acpi_pcc_init_input(pcc); in acpi_pcc_hotkey_add()
610 if (!acpi_pcc_retrieve_biosdata(pcc)) { in acpi_pcc_hotkey_add()
619 props.max_brightness = pcc->sinf[SINF_AC_MAX_BRIGHT]; in acpi_pcc_hotkey_add()
620 pcc->backlight = backlight_device_register("panasonic", NULL, pcc, in acpi_pcc_hotkey_add()
622 if (IS_ERR(pcc->backlight)) { in acpi_pcc_hotkey_add()
623 result = PTR_ERR(pcc->backlight); in acpi_pcc_hotkey_add()
628 pcc->backlight->props.brightness = pcc->sinf[SINF_AC_CUR_BRIGHT]; in acpi_pcc_hotkey_add()
631 pcc->sticky_mode = pcc->sinf[SINF_STICKY_KEY]; in acpi_pcc_hotkey_add()
641 backlight_device_unregister(pcc->backlight); in acpi_pcc_hotkey_add()
643 acpi_pcc_destroy_input(pcc); in acpi_pcc_hotkey_add()
645 kfree(pcc->sinf); in acpi_pcc_hotkey_add()
647 kfree(pcc); in acpi_pcc_hotkey_add()
654 struct pcc_acpi *pcc = acpi_driver_data(device); in acpi_pcc_hotkey_remove() local
656 if (!device || !pcc) in acpi_pcc_hotkey_remove()
661 backlight_device_unregister(pcc->backlight); in acpi_pcc_hotkey_remove()
663 acpi_pcc_destroy_input(pcc); in acpi_pcc_hotkey_remove()
665 kfree(pcc->sinf); in acpi_pcc_hotkey_remove()
666 kfree(pcc); in acpi_pcc_hotkey_remove()