device_sysfs.c (75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37) device_sysfs.c (0f39ee8324e75c9d370e84a61323ceb194641a18)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * drivers/acpi/device_sysfs.c - ACPI device sysfs attributes and modalias.
4 *
5 * Copyright (C) 2015, Intel Corp.
6 * Author: Mika Westerberg <mika.westerberg@linux.intel.com>
7 * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
8 *

--- 319 unchanged lines hidden (view full) ---

328 */
329int acpi_device_modalias(struct device *dev, char *buf, int size)
330{
331 return __acpi_device_modalias(acpi_companion_match(dev), buf, size);
332}
333EXPORT_SYMBOL_GPL(acpi_device_modalias);
334
335static ssize_t
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * drivers/acpi/device_sysfs.c - ACPI device sysfs attributes and modalias.
4 *
5 * Copyright (C) 2015, Intel Corp.
6 * Author: Mika Westerberg <mika.westerberg@linux.intel.com>
7 * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
8 *

--- 319 unchanged lines hidden (view full) ---

328 */
329int acpi_device_modalias(struct device *dev, char *buf, int size)
330{
331 return __acpi_device_modalias(acpi_companion_match(dev), buf, size);
332}
333EXPORT_SYMBOL_GPL(acpi_device_modalias);
334
335static ssize_t
336acpi_device_modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
336modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
337{
338 return __acpi_device_modalias(to_acpi_device(dev), buf, 1024);
339}
337{
338 return __acpi_device_modalias(to_acpi_device(dev), buf, 1024);
339}
340static DEVICE_ATTR(modalias, 0444, acpi_device_modalias_show, NULL);
340static DEVICE_ATTR_RO(modalias);
341
342static ssize_t real_power_state_show(struct device *dev,
343 struct device_attribute *attr, char *buf)
344{
345 struct acpi_device *adev = to_acpi_device(dev);
346 int state;
347 int ret;
348

--- 12 unchanged lines hidden (view full) ---

361 struct acpi_device *adev = to_acpi_device(dev);
362
363 return sprintf(buf, "%s\n", acpi_power_state_string(adev->power.state));
364}
365
366static DEVICE_ATTR_RO(power_state);
367
368static ssize_t
341
342static ssize_t real_power_state_show(struct device *dev,
343 struct device_attribute *attr, char *buf)
344{
345 struct acpi_device *adev = to_acpi_device(dev);
346 int state;
347 int ret;
348

--- 12 unchanged lines hidden (view full) ---

361 struct acpi_device *adev = to_acpi_device(dev);
362
363 return sprintf(buf, "%s\n", acpi_power_state_string(adev->power.state));
364}
365
366static DEVICE_ATTR_RO(power_state);
367
368static ssize_t
369acpi_eject_store(struct device *d, struct device_attribute *attr,
370 const char *buf, size_t count)
369eject_store(struct device *d, struct device_attribute *attr,
370 const char *buf, size_t count)
371{
372 struct acpi_device *acpi_device = to_acpi_device(d);
373 acpi_object_type not_used;
374 acpi_status status;
375
376 if (!count || buf[0] != '1')
377 return -EINVAL;
378

--- 11 unchanged lines hidden (view full) ---

390 return count;
391
392 put_device(&acpi_device->dev);
393 acpi_evaluate_ost(acpi_device->handle, ACPI_OST_EC_OSPM_EJECT,
394 ACPI_OST_SC_NON_SPECIFIC_FAILURE, NULL);
395 return status == AE_NO_MEMORY ? -ENOMEM : -EAGAIN;
396}
397
371{
372 struct acpi_device *acpi_device = to_acpi_device(d);
373 acpi_object_type not_used;
374 acpi_status status;
375
376 if (!count || buf[0] != '1')
377 return -EINVAL;
378

--- 11 unchanged lines hidden (view full) ---

390 return count;
391
392 put_device(&acpi_device->dev);
393 acpi_evaluate_ost(acpi_device->handle, ACPI_OST_EC_OSPM_EJECT,
394 ACPI_OST_SC_NON_SPECIFIC_FAILURE, NULL);
395 return status == AE_NO_MEMORY ? -ENOMEM : -EAGAIN;
396}
397
398static DEVICE_ATTR(eject, 0200, NULL, acpi_eject_store);
398static DEVICE_ATTR_WO(eject);
399
400static ssize_t
399
400static ssize_t
401acpi_device_hid_show(struct device *dev, struct device_attribute *attr, char *buf)
401hid_show(struct device *dev, struct device_attribute *attr, char *buf)
402{
403 struct acpi_device *acpi_dev = to_acpi_device(dev);
404
405 return sprintf(buf, "%s\n", acpi_device_hid(acpi_dev));
406}
402{
403 struct acpi_device *acpi_dev = to_acpi_device(dev);
404
405 return sprintf(buf, "%s\n", acpi_device_hid(acpi_dev));
406}
407static DEVICE_ATTR(hid, 0444, acpi_device_hid_show, NULL);
407static DEVICE_ATTR_RO(hid);
408
408
409static ssize_t acpi_device_uid_show(struct device *dev,
410 struct device_attribute *attr, char *buf)
409static ssize_t uid_show(struct device *dev,
410 struct device_attribute *attr, char *buf)
411{
412 struct acpi_device *acpi_dev = to_acpi_device(dev);
413
414 return sprintf(buf, "%s\n", acpi_dev->pnp.unique_id);
415}
411{
412 struct acpi_device *acpi_dev = to_acpi_device(dev);
413
414 return sprintf(buf, "%s\n", acpi_dev->pnp.unique_id);
415}
416static DEVICE_ATTR(uid, 0444, acpi_device_uid_show, NULL);
416static DEVICE_ATTR_RO(uid);
417
417
418static ssize_t acpi_device_adr_show(struct device *dev,
419 struct device_attribute *attr, char *buf)
418static ssize_t adr_show(struct device *dev,
419 struct device_attribute *attr, char *buf)
420{
421 struct acpi_device *acpi_dev = to_acpi_device(dev);
422
423 if (acpi_dev->pnp.bus_address > U32_MAX)
424 return sprintf(buf, "0x%016llx\n", acpi_dev->pnp.bus_address);
425 else
426 return sprintf(buf, "0x%08llx\n", acpi_dev->pnp.bus_address);
427}
420{
421 struct acpi_device *acpi_dev = to_acpi_device(dev);
422
423 if (acpi_dev->pnp.bus_address > U32_MAX)
424 return sprintf(buf, "0x%016llx\n", acpi_dev->pnp.bus_address);
425 else
426 return sprintf(buf, "0x%08llx\n", acpi_dev->pnp.bus_address);
427}
428static DEVICE_ATTR(adr, 0444, acpi_device_adr_show, NULL);
428static DEVICE_ATTR_RO(adr);
429
429
430static ssize_t acpi_device_path_show(struct device *dev,
431 struct device_attribute *attr, char *buf)
430static ssize_t path_show(struct device *dev,
431 struct device_attribute *attr, char *buf)
432{
433 struct acpi_device *acpi_dev = to_acpi_device(dev);
434
435 return acpi_object_path(acpi_dev->handle, buf);
436}
432{
433 struct acpi_device *acpi_dev = to_acpi_device(dev);
434
435 return acpi_object_path(acpi_dev->handle, buf);
436}
437static DEVICE_ATTR(path, 0444, acpi_device_path_show, NULL);
437static DEVICE_ATTR_RO(path);
438
439/* sysfs file that shows description text from the ACPI _STR method */
440static ssize_t description_show(struct device *dev,
441 struct device_attribute *attr,
442 char *buf) {
443 struct acpi_device *acpi_dev = to_acpi_device(dev);
444 int result;
445

--- 12 unchanged lines hidden (view full) ---

458
459 buf[result++] = '\n';
460
461 return result;
462}
463static DEVICE_ATTR_RO(description);
464
465static ssize_t
438
439/* sysfs file that shows description text from the ACPI _STR method */
440static ssize_t description_show(struct device *dev,
441 struct device_attribute *attr,
442 char *buf) {
443 struct acpi_device *acpi_dev = to_acpi_device(dev);
444 int result;
445

--- 12 unchanged lines hidden (view full) ---

458
459 buf[result++] = '\n';
460
461 return result;
462}
463static DEVICE_ATTR_RO(description);
464
465static ssize_t
466acpi_device_sun_show(struct device *dev, struct device_attribute *attr,
467 char *buf) {
466sun_show(struct device *dev, struct device_attribute *attr,
467 char *buf) {
468 struct acpi_device *acpi_dev = to_acpi_device(dev);
469 acpi_status status;
470 unsigned long long sun;
471
472 status = acpi_evaluate_integer(acpi_dev->handle, "_SUN", NULL, &sun);
473 if (ACPI_FAILURE(status))
474 return -EIO;
475
476 return sprintf(buf, "%llu\n", sun);
477}
468 struct acpi_device *acpi_dev = to_acpi_device(dev);
469 acpi_status status;
470 unsigned long long sun;
471
472 status = acpi_evaluate_integer(acpi_dev->handle, "_SUN", NULL, &sun);
473 if (ACPI_FAILURE(status))
474 return -EIO;
475
476 return sprintf(buf, "%llu\n", sun);
477}
478static DEVICE_ATTR(sun, 0444, acpi_device_sun_show, NULL);
478static DEVICE_ATTR_RO(sun);
479
480static ssize_t
479
480static ssize_t
481acpi_device_hrv_show(struct device *dev, struct device_attribute *attr,
482 char *buf) {
481hrv_show(struct device *dev, struct device_attribute *attr,
482 char *buf) {
483 struct acpi_device *acpi_dev = to_acpi_device(dev);
484 acpi_status status;
485 unsigned long long hrv;
486
487 status = acpi_evaluate_integer(acpi_dev->handle, "_HRV", NULL, &hrv);
488 if (ACPI_FAILURE(status))
489 return -EIO;
490
491 return sprintf(buf, "%llu\n", hrv);
492}
483 struct acpi_device *acpi_dev = to_acpi_device(dev);
484 acpi_status status;
485 unsigned long long hrv;
486
487 status = acpi_evaluate_integer(acpi_dev->handle, "_HRV", NULL, &hrv);
488 if (ACPI_FAILURE(status))
489 return -EIO;
490
491 return sprintf(buf, "%llu\n", hrv);
492}
493static DEVICE_ATTR(hrv, 0444, acpi_device_hrv_show, NULL);
493static DEVICE_ATTR_RO(hrv);
494
495static ssize_t status_show(struct device *dev, struct device_attribute *attr,
496 char *buf) {
497 struct acpi_device *acpi_dev = to_acpi_device(dev);
498 acpi_status status;
499 unsigned long long sta;
500
501 status = acpi_evaluate_integer(acpi_dev->handle, "_STA", NULL, &sta);

--- 144 unchanged lines hidden ---
494
495static ssize_t status_show(struct device *dev, struct device_attribute *attr,
496 char *buf) {
497 struct acpi_device *acpi_dev = to_acpi_device(dev);
498 acpi_status status;
499 unsigned long long sta;
500
501 status = acpi_evaluate_integer(acpi_dev->handle, "_STA", NULL, &sta);

--- 144 unchanged lines hidden ---