Lines Matching defs:pcc
37 * add /proc/acpi/pcc/brightness interface for HAL access
141 #define ACPI_PCC_CLASS "pcc"
219 static int acpi_pcc_write_sset(struct pcc_acpi *pcc, int func, int val)
233 status = acpi_evaluate_object(pcc->handle, METHOD_HKEY_SSET,
255 static int acpi_pcc_retrieve_biosdata(struct pcc_acpi *pcc)
262 status = acpi_evaluate_object(pcc->handle, METHOD_HKEY_SINF, NULL,
277 if (pcc->num_sifr < hkey->package.count) {
287 pcc->sinf[i] = element->integer.value;
292 pcc->sinf[hkey->package.count] = -1;
308 struct pcc_acpi *pcc = bl_get_data(bd);
310 if (!acpi_pcc_retrieve_biosdata(pcc))
313 return pcc->sinf[SINF_AC_CUR_BRIGHT];
318 struct pcc_acpi *pcc = bl_get_data(bd);
322 if (!acpi_pcc_retrieve_biosdata(pcc))
325 if (bright < pcc->sinf[SINF_AC_MIN_BRIGHT])
326 bright = pcc->sinf[SINF_AC_MIN_BRIGHT];
328 if (bright < pcc->sinf[SINF_DC_MIN_BRIGHT])
329 bright = pcc->sinf[SINF_DC_MIN_BRIGHT];
331 if (bright < pcc->sinf[SINF_AC_MIN_BRIGHT] ||
332 bright > pcc->sinf[SINF_AC_MAX_BRIGHT])
335 rc = acpi_pcc_write_sset(pcc, SINF_AC_CUR_BRIGHT, bright);
339 return acpi_pcc_write_sset(pcc, SINF_DC_CUR_BRIGHT, bright);
354 struct pcc_acpi *pcc = acpi_driver_data(acpi);
356 if (!acpi_pcc_retrieve_biosdata(pcc))
359 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_NUM_BATTERIES]);
366 struct pcc_acpi *pcc = acpi_driver_data(acpi);
368 if (!acpi_pcc_retrieve_biosdata(pcc))
371 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_LCD_TYPE]);
378 struct pcc_acpi *pcc = acpi_driver_data(acpi);
380 if (!acpi_pcc_retrieve_biosdata(pcc))
383 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_MUTE]);
390 struct pcc_acpi *pcc = acpi_driver_data(acpi);
392 if (!acpi_pcc_retrieve_biosdata(pcc))
395 return snprintf(buf, PAGE_SIZE, "%u\n", pcc->sinf[SINF_STICKY_KEY]);
402 struct pcc_acpi *pcc = acpi_driver_data(acpi);
407 acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, val);
408 pcc->sticky_mode = val;
436 static void acpi_pcc_generate_keyinput(struct pcc_acpi *pcc)
438 struct input_dev *hotk_input_dev = pcc->input_dev;
442 rc = acpi_evaluate_integer(pcc->handle, METHOD_HKEY_QUERY,
467 struct pcc_acpi *pcc = acpi_driver_data(device);
471 acpi_pcc_generate_keyinput(pcc);
479 static int acpi_pcc_init_input(struct pcc_acpi *pcc)
509 pcc->input_dev = input_dev;
522 struct pcc_acpi *pcc;
527 pcc = acpi_driver_data(to_acpi_device(dev));
528 if (!pcc)
532 pcc->sticky_mode));
534 return acpi_pcc_write_sset(pcc, SINF_STICKY_KEY, pcc->sticky_mode);
541 struct pcc_acpi *pcc;
554 pcc = kzalloc(sizeof(struct pcc_acpi), GFP_KERNEL);
555 if (!pcc) {
557 "Couldn't allocate mem for pcc"));
561 pcc->sinf = kcalloc(num_sifr + 1, sizeof(u32), GFP_KERNEL);
562 if (!pcc->sinf) {
567 pcc->device = device;
568 pcc->handle = device->handle;
569 pcc->num_sifr = num_sifr;
570 device->driver_data = pcc;
574 result = acpi_pcc_init_input(pcc);
581 if (!acpi_pcc_retrieve_biosdata(pcc)) {
590 props.max_brightness = pcc->sinf[SINF_AC_MAX_BRIGHT];
591 pcc->backlight = backlight_device_register("panasonic", NULL, pcc,
593 if (IS_ERR(pcc->backlight)) {
594 result = PTR_ERR(pcc->backlight);
599 pcc->backlight->props.brightness = pcc->sinf[SINF_AC_CUR_BRIGHT];
602 pcc->sticky_mode = pcc->sinf[SINF_STICKY_KEY];
612 backlight_device_unregister(pcc->backlight);
614 input_unregister_device(pcc->input_dev);
616 kfree(pcc->sinf);
618 kfree(pcc);
625 struct pcc_acpi *pcc = acpi_driver_data(device);
627 if (!device || !pcc)
632 backlight_device_unregister(pcc->backlight);
634 input_unregister_device(pcc->input_dev);
636 kfree(pcc->sinf);
637 kfree(pcc);