Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
e637d326
Commit
e637d326
authored
May 15, 2018
by
Rafael J. Wysocki
Browse files
Options
Browse Files
Download
Plain Diff
Merge back earlier ACPICA material for v4.18.
parents
7b34c0fb
c57c0ad4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
67 additions
and
7 deletions
+67
-7
drivers/acpi/acpica/acglobal.h
drivers/acpi/acpica/acglobal.h
+1
-1
drivers/acpi/acpica/hwregs.c
drivers/acpi/acpica/hwregs.c
+2
-2
drivers/acpi/acpica/hwxface.c
drivers/acpi/acpica/hwxface.c
+2
-2
drivers/acpi/acpica/utmutex.c
drivers/acpi/acpica/utmutex.c
+2
-2
include/acpi/acpiosxf.h
include/acpi/acpiosxf.h
+21
-0
include/acpi/actypes.h
include/acpi/actypes.h
+4
-0
include/acpi/platform/aclinux.h
include/acpi/platform/aclinux.h
+5
-0
include/acpi/platform/aclinuxex.h
include/acpi/platform/aclinuxex.h
+30
-0
No files found.
drivers/acpi/acpica/acglobal.h
View file @
e637d326
...
...
@@ -82,7 +82,7 @@ ACPI_GLOBAL(u8, acpi_gbl_global_lock_pending);
* interrupt level
*/
ACPI_GLOBAL
(
acpi_spinlock
,
acpi_gbl_gpe_lock
);
/* For GPE data structs and registers */
ACPI_GLOBAL
(
acpi_spinlock
,
acpi_gbl_hardware_lock
);
/* For ACPI H/W except GPE registers */
ACPI_GLOBAL
(
acpi_
raw_
spinlock
,
acpi_gbl_hardware_lock
);
/* For ACPI H/W except GPE registers */
ACPI_GLOBAL
(
acpi_spinlock
,
acpi_gbl_reference_count_lock
);
/* Mutex for _OSI support */
...
...
drivers/acpi/acpica/hwregs.c
View file @
e637d326
...
...
@@ -390,14 +390,14 @@ acpi_status acpi_hw_clear_acpi_status(void)
ACPI_BITMASK_ALL_FIXED_STATUS
,
ACPI_FORMAT_UINT64
(
acpi_gbl_xpm1a_status
.
address
)));
lock_flags
=
acpi_os_acquire_lock
(
acpi_gbl_hardware_lock
);
lock_flags
=
acpi_os_acquire_
raw_
lock
(
acpi_gbl_hardware_lock
);
/* Clear the fixed events in PM1 A/B */
status
=
acpi_hw_register_write
(
ACPI_REGISTER_PM1_STATUS
,
ACPI_BITMASK_ALL_FIXED_STATUS
);
acpi_os_release_lock
(
acpi_gbl_hardware_lock
,
lock_flags
);
acpi_os_release_
raw_
lock
(
acpi_gbl_hardware_lock
,
lock_flags
);
if
(
ACPI_FAILURE
(
status
))
{
goto
exit
;
...
...
drivers/acpi/acpica/hwxface.c
View file @
e637d326
...
...
@@ -227,7 +227,7 @@ acpi_status acpi_write_bit_register(u32 register_id, u32 value)
return_ACPI_STATUS
(
AE_BAD_PARAMETER
);
}
lock_flags
=
acpi_os_acquire_lock
(
acpi_gbl_hardware_lock
);
lock_flags
=
acpi_os_acquire_
raw_
lock
(
acpi_gbl_hardware_lock
);
/*
* At this point, we know that the parent register is one of the
...
...
@@ -288,7 +288,7 @@ acpi_status acpi_write_bit_register(u32 register_id, u32 value)
unlock_and_exit:
acpi_os_release_lock
(
acpi_gbl_hardware_lock
,
lock_flags
);
acpi_os_release_
raw_
lock
(
acpi_gbl_hardware_lock
,
lock_flags
);
return_ACPI_STATUS
(
status
);
}
...
...
drivers/acpi/acpica/utmutex.c
View file @
e637d326
...
...
@@ -52,7 +52,7 @@ acpi_status acpi_ut_mutex_initialize(void)
return_ACPI_STATUS
(
status
);
}
status
=
acpi_os_create_
lock
(
&
acpi_gbl_hardware_lock
);
status
=
acpi_os_create_
raw_lock
(
&
acpi_gbl_hardware_lock
);
if
(
ACPI_FAILURE
(
status
))
{
return_ACPI_STATUS
(
status
);
}
...
...
@@ -109,7 +109,7 @@ void acpi_ut_mutex_terminate(void)
/* Delete the spinlocks */
acpi_os_delete_lock
(
acpi_gbl_gpe_lock
);
acpi_os_delete_lock
(
acpi_gbl_hardware_lock
);
acpi_os_delete_
raw_
lock
(
acpi_gbl_hardware_lock
);
acpi_os_delete_lock
(
acpi_gbl_reference_count_lock
);
/* Delete the reader/writer lock */
...
...
include/acpi/acpiosxf.h
View file @
e637d326
...
...
@@ -97,6 +97,27 @@ acpi_cpu_flags acpi_os_acquire_lock(acpi_spinlock handle);
void
acpi_os_release_lock
(
acpi_spinlock
handle
,
acpi_cpu_flags
flags
);
#endif
/*
* RAW spinlock primitives. If the OS does not provide them, fallback to
* spinlock primitives
*/
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_raw_lock
# define acpi_os_create_raw_lock(out_handle) acpi_os_create_lock(out_handle)
#endif
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_raw_lock
# define acpi_os_delete_raw_lock(handle) acpi_os_delete_lock(handle)
#endif
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_raw_lock
# define acpi_os_acquire_raw_lock(handle) acpi_os_acquire_lock(handle)
#endif
#ifndef ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_raw_lock
# define acpi_os_release_raw_lock(handle, flags) \
acpi_os_release_lock(handle, flags)
#endif
/*
* Semaphore primitives
*/
...
...
include/acpi/actypes.h
View file @
e637d326
...
...
@@ -245,6 +245,10 @@ typedef u64 acpi_physical_address;
#define acpi_spinlock void *
#endif
#ifndef acpi_raw_spinlock
#define acpi_raw_spinlock acpi_spinlock
#endif
#ifndef acpi_semaphore
#define acpi_semaphore void *
#endif
...
...
include/acpi/platform/aclinux.h
View file @
e637d326
...
...
@@ -102,6 +102,7 @@
#define acpi_cache_t struct kmem_cache
#define acpi_spinlock spinlock_t *
#define acpi_raw_spinlock raw_spinlock_t *
#define acpi_cpu_flags unsigned long
/* Use native linux version of acpi_os_allocate_zeroed */
...
...
@@ -119,6 +120,10 @@
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_object
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_raw_lock
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_delete_raw_lock
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_acquire_raw_lock
#define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_release_raw_lock
/*
* OSL interfaces used by debugger/disassembler
...
...
include/acpi/platform/aclinuxex.h
View file @
e637d326
...
...
@@ -90,6 +90,36 @@ static inline acpi_thread_id acpi_os_get_thread_id(void)
lock ? AE_OK : AE_NO_MEMORY; \
})
#define acpi_os_create_raw_lock(__handle) \
({ \
raw_spinlock_t *lock = ACPI_ALLOCATE(sizeof(*lock)); \
if (lock) { \
*(__handle) = lock; \
raw_spin_lock_init(*(__handle)); \
} \
lock ? AE_OK : AE_NO_MEMORY; \
})
static
inline
acpi_cpu_flags
acpi_os_acquire_raw_lock
(
acpi_raw_spinlock
lockp
)
{
acpi_cpu_flags
flags
;
raw_spin_lock_irqsave
(
lockp
,
flags
);
return
flags
;
}
static
inline
void
acpi_os_release_raw_lock
(
acpi_raw_spinlock
lockp
,
acpi_cpu_flags
flags
)
{
raw_spin_unlock_irqrestore
(
lockp
,
flags
);
}
static
inline
void
acpi_os_delete_raw_lock
(
acpi_raw_spinlock
handle
)
{
ACPI_FREE
(
handle
);
}
static
inline
u8
acpi_os_readable
(
void
*
pointer
,
acpi_size
length
)
{
return
TRUE
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment