• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/platform/x86/

Lines Matching defs:pcc

49  * 			add /proc/acpi/pcc/brightness interface for HAL access
155 #define ACPI_PCC_CLASS "pcc"
234 static int acpi_pcc_write_sset(struct pcc_acpi *pcc, int func, int val)
248 status = acpi_evaluate_object(pcc->handle, METHOD_HKEY_SSET,
270 static int acpi_pcc_retrieve_biosdata(struct pcc_acpi *pcc, u32 *sinf)
277 status = acpi_evaluate_object(pcc->handle, METHOD_HKEY_SINF, NULL,
291 if (pcc->num_sifr < hkey->package.count) {
322 struct pcc_acpi *pcc = bl_get_data(bd);
324 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
327 return pcc->sinf[SINF_AC_CUR_BRIGHT];
332 struct pcc_acpi *pcc = bl_get_data(bd);
336 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
339 if (bright < pcc->sinf[SINF_AC_MIN_BRIGHT])
340 bright = pcc->sinf[SINF_AC_MIN_BRIGHT];
342 if (bright < pcc->sinf[SINF_DC_MIN_BRIGHT])
343 bright = pcc->sinf[SINF_DC_MIN_BRIGHT];
345 if (bright < pcc->sinf[SINF_AC_MIN_BRIGHT] ||
346 bright > pcc->sinf[SINF_AC_MAX_BRIGHT])
349 rc = acpi_pcc_write_sset(pcc, SINF_AC_CUR_BRIGHT, bright);
353 return acpi_pcc_write_sset(pcc, SINF_DC_CUR_BRIGHT, bright);
368 struct pcc_acpi *pcc = acpi_driver_data(acpi);
370 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
373 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]);
380 struct pcc_acpi *pcc = acpi_driver_data(acpi);
382 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
385 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_LCD_TYPE]);
392 struct pcc_acpi *pcc = acpi_driver_data(acpi);
394 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
397 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_MUTE]);
404 struct pcc_acpi *pcc = acpi_driver_data(acpi);
406 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf))
409 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_STICKY_KEY]);
416 struct pcc_acpi *pcc = acpi_driver_data(acpi);
421 acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, val);
422 pcc->sticky_mode = val;
452 struct pcc_acpi *pcc = input_get_drvdata(dev);
454 if (scancode >= ARRAY_SIZE(pcc->keymap))
457 *keycode = pcc->keymap[scancode];
462 static int keymap_get_by_keycode(struct pcc_acpi *pcc, unsigned int keycode)
466 for (i = 0; i < ARRAY_SIZE(pcc->keymap); i++) {
467 if (pcc->keymap[i] == keycode)
477 struct pcc_acpi *pcc = input_get_drvdata(dev);
480 if (scancode >= ARRAY_SIZE(pcc->keymap))
483 oldkeycode = pcc->keymap[scancode];
484 pcc->keymap[scancode] = keycode;
488 if (!keymap_get_by_keycode(pcc, oldkeycode))
494 static void acpi_pcc_generate_keyinput(struct pcc_acpi *pcc)
496 struct input_dev *hotk_input_dev = pcc->input_dev;
501 rc = acpi_evaluate_integer(pcc->handle, METHOD_HKEY_QUERY,
509 acpi_bus_generate_proc_event(pcc->device, HKEY_NOTIFY, result);
513 if (hkey_num < 0 || hkey_num >= ARRAY_SIZE(pcc->keymap)) {
520 key_code = pcc->keymap[hkey_num];
534 struct pcc_acpi *pcc = acpi_driver_data(device);
538 acpi_pcc_generate_keyinput(pcc);
546 static int acpi_pcc_init_input(struct pcc_acpi *pcc)
550 pcc->input_dev = input_allocate_device();
551 if (!pcc->input_dev) {
557 pcc->input_dev->evbit[0] = BIT(EV_KEY);
559 pcc->input_dev->name = ACPI_PCC_DRIVER_NAME;
560 pcc->input_dev->phys = ACPI_PCC_INPUT_PHYS;
561 pcc->input_dev->id.bustype = BUS_HOST;
562 pcc->input_dev->id.vendor = 0x0001;
563 pcc->input_dev->id.product = 0x0001;
564 pcc->input_dev->id.version = 0x0100;
565 pcc->input_dev->getkeycode = pcc_getkeycode;
566 pcc->input_dev->setkeycode = pcc_setkeycode;
569 memcpy(pcc->keymap, initial_keymap, sizeof(pcc->keymap));
571 for (i = 0; i < ARRAY_SIZE(pcc->keymap); i++)
572 __set_bit(pcc->keymap[i], pcc->input_dev->keybit);
573 __clear_bit(KEY_RESERVED, pcc->input_dev->keybit);
575 input_set_drvdata(pcc->input_dev, pcc);
577 rc = input_register_device(pcc->input_dev);
579 input_free_device(pcc->input_dev);
588 struct pcc_acpi *pcc = acpi_driver_data(device);
590 if (device == NULL || pcc == NULL)
594 pcc->sticky_mode));
596 return acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, pcc->sticky_mode);
602 struct pcc_acpi *pcc;
615 pcc = kzalloc(sizeof(struct pcc_acpi), GFP_KERNEL);
616 if (!pcc) {
618 "Couldn't allocate mem for pcc"));
622 pcc->sinf = kzalloc(sizeof(u32) * (num_sifr + 1), GFP_KERNEL);
623 if (!pcc->sinf) {
628 pcc->device = device;
629 pcc->handle = device->handle;
630 pcc->num_sifr = num_sifr;
631 device->driver_data = pcc;
635 result = acpi_pcc_init_input(pcc);
642 if (!acpi_pcc_retrieve_biosdata(pcc, pcc->sinf)) {
649 props.max_brightness = pcc->sinf[SINF_AC_MAX_BRIGHT];
650 pcc->backlight = backlight_device_register("panasonic", NULL, pcc,
652 if (IS_ERR(pcc->backlight)) {
653 result = PTR_ERR(pcc->backlight);
658 pcc->backlight->props.brightness = pcc->sinf[SINF_AC_CUR_BRIGHT];
661 pcc->sticky_mode = pcc->sinf[SINF_STICKY_KEY];
671 backlight_device_unregister(pcc->backlight);
673 kfree(pcc->sinf);
675 input_unregister_device(pcc->input_dev);
679 kfree(pcc);
703 struct pcc_acpi *pcc = acpi_driver_data(device);
705 if (!device || !pcc)
710 backlight_device_unregister(pcc->backlight);
712 input_unregister_device(pcc->input_dev);
716 kfree(pcc->sinf);
717 kfree(pcc);