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
nexedi
linux
Commits
fe0a20a3
Commit
fe0a20a3
authored
Mar 25, 2015
by
Rafael J. Wysocki
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'acpi-driver-core' into device-properties
parents
f42712a9
ca5b74d2
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
59 additions
and
36 deletions
+59
-36
drivers/acpi/acpi_platform.c
drivers/acpi/acpi_platform.c
+1
-1
drivers/acpi/dock.c
drivers/acpi/dock.c
+1
-1
drivers/acpi/glue.c
drivers/acpi/glue.c
+2
-2
drivers/base/platform.c
drivers/base/platform.c
+1
-1
drivers/gpio/gpiolib.h
drivers/gpio/gpiolib.h
+2
-0
drivers/i2c/busses/i2c-designware-platdrv.c
drivers/i2c/busses/i2c-designware-platdrv.c
+2
-2
drivers/i2c/i2c-core.c
drivers/i2c/i2c-core.c
+2
-2
drivers/iommu/intel-iommu.c
drivers/iommu/intel-iommu.c
+1
-1
include/acpi/acpi_bus.h
include/acpi/acpi_bus.h
+2
-1
include/linux/acpi.h
include/linux/acpi.h
+13
-2
include/linux/device.h
include/linux/device.h
+3
-10
include/linux/fwnode.h
include/linux/fwnode.h
+25
-0
include/linux/i2c.h
include/linux/i2c.h
+2
-2
include/linux/platform_device.h
include/linux/platform_device.h
+1
-1
include/linux/property.h
include/linux/property.h
+1
-10
No files found.
drivers/acpi/acpi_platform.c
View file @
fe0a20a3
...
@@ -102,7 +102,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev)
...
@@ -102,7 +102,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev)
pdevinfo
.
id
=
-
1
;
pdevinfo
.
id
=
-
1
;
pdevinfo
.
res
=
resources
;
pdevinfo
.
res
=
resources
;
pdevinfo
.
num_res
=
count
;
pdevinfo
.
num_res
=
count
;
pdevinfo
.
acpi_node
.
companion
=
adev
;
pdevinfo
.
fwnode
=
acpi_fwnode_handle
(
adev
)
;
pdevinfo
.
dma_mask
=
DMA_BIT_MASK
(
32
);
pdevinfo
.
dma_mask
=
DMA_BIT_MASK
(
32
);
pdev
=
platform_device_register_full
(
&
pdevinfo
);
pdev
=
platform_device_register_full
(
&
pdevinfo
);
if
(
IS_ERR
(
pdev
))
if
(
IS_ERR
(
pdev
))
...
...
drivers/acpi/dock.c
View file @
fe0a20a3
...
@@ -615,7 +615,7 @@ void acpi_dock_add(struct acpi_device *adev)
...
@@ -615,7 +615,7 @@ void acpi_dock_add(struct acpi_device *adev)
memset
(
&
pdevinfo
,
0
,
sizeof
(
pdevinfo
));
memset
(
&
pdevinfo
,
0
,
sizeof
(
pdevinfo
));
pdevinfo
.
name
=
"dock"
;
pdevinfo
.
name
=
"dock"
;
pdevinfo
.
id
=
dock_station_count
;
pdevinfo
.
id
=
dock_station_count
;
pdevinfo
.
acpi_node
.
companion
=
adev
;
pdevinfo
.
fwnode
=
acpi_fwnode_handle
(
adev
)
;
pdevinfo
.
data
=
&
ds
;
pdevinfo
.
data
=
&
ds
;
pdevinfo
.
size_data
=
sizeof
(
ds
);
pdevinfo
.
size_data
=
sizeof
(
ds
);
dd
=
platform_device_register_full
(
&
pdevinfo
);
dd
=
platform_device_register_full
(
&
pdevinfo
);
...
...
drivers/acpi/glue.c
View file @
fe0a20a3
...
@@ -168,7 +168,7 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
...
@@ -168,7 +168,7 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
unsigned
int
node_id
;
unsigned
int
node_id
;
int
retval
=
-
EINVAL
;
int
retval
=
-
EINVAL
;
if
(
ACPI_COMPANION
(
dev
))
{
if
(
has_acpi_companion
(
dev
))
{
if
(
acpi_dev
)
{
if
(
acpi_dev
)
{
dev_warn
(
dev
,
"ACPI companion already set
\n
"
);
dev_warn
(
dev
,
"ACPI companion already set
\n
"
);
return
-
EINVAL
;
return
-
EINVAL
;
...
@@ -220,7 +220,7 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
...
@@ -220,7 +220,7 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
list_add
(
&
physical_node
->
node
,
physnode_list
);
list_add
(
&
physical_node
->
node
,
physnode_list
);
acpi_dev
->
physical_node_count
++
;
acpi_dev
->
physical_node_count
++
;
if
(
!
ACPI_COMPANION
(
dev
))
if
(
!
has_acpi_companion
(
dev
))
ACPI_COMPANION_SET
(
dev
,
acpi_dev
);
ACPI_COMPANION_SET
(
dev
,
acpi_dev
);
acpi_physnode_link_name
(
physical_node_name
,
node_id
);
acpi_physnode_link_name
(
physical_node_name
,
node_id
);
...
...
drivers/base/platform.c
View file @
fe0a20a3
...
@@ -454,7 +454,7 @@ struct platform_device *platform_device_register_full(
...
@@ -454,7 +454,7 @@ struct platform_device *platform_device_register_full(
goto
err_alloc
;
goto
err_alloc
;
pdev
->
dev
.
parent
=
pdevinfo
->
parent
;
pdev
->
dev
.
parent
=
pdevinfo
->
parent
;
ACPI_COMPANION_SET
(
&
pdev
->
dev
,
pdevinfo
->
acpi_node
.
companion
)
;
pdev
->
dev
.
fwnode
=
pdevinfo
->
fwnode
;
if
(
pdevinfo
->
dma_mask
)
{
if
(
pdevinfo
->
dma_mask
)
{
/*
/*
...
...
drivers/gpio/gpiolib.h
View file @
fe0a20a3
...
@@ -17,6 +17,8 @@
...
@@ -17,6 +17,8 @@
enum
of_gpio_flags
;
enum
of_gpio_flags
;
struct
acpi_device
;
/**
/**
* struct acpi_gpio_info - ACPI GPIO specific information
* struct acpi_gpio_info - ACPI GPIO specific information
* @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo
* @gpioint: if %true this GPIO is of type GpioInt otherwise type is GpioIo
...
...
drivers/i2c/busses/i2c-designware-platdrv.c
View file @
fe0a20a3
...
@@ -166,7 +166,7 @@ static int dw_i2c_probe(struct platform_device *pdev)
...
@@ -166,7 +166,7 @@ static int dw_i2c_probe(struct platform_device *pdev)
/* fast mode by default because of legacy reasons */
/* fast mode by default because of legacy reasons */
clk_freq
=
400000
;
clk_freq
=
400000
;
if
(
ACPI_COMPANION
(
&
pdev
->
dev
))
{
if
(
has_acpi_companion
(
&
pdev
->
dev
))
{
dw_i2c_acpi_configure
(
pdev
);
dw_i2c_acpi_configure
(
pdev
);
}
else
if
(
pdev
->
dev
.
of_node
)
{
}
else
if
(
pdev
->
dev
.
of_node
)
{
of_property_read_u32
(
pdev
->
dev
.
of_node
,
of_property_read_u32
(
pdev
->
dev
.
of_node
,
...
@@ -286,7 +286,7 @@ static int dw_i2c_remove(struct platform_device *pdev)
...
@@ -286,7 +286,7 @@ static int dw_i2c_remove(struct platform_device *pdev)
pm_runtime_put
(
&
pdev
->
dev
);
pm_runtime_put
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
pm_runtime_disable
(
&
pdev
->
dev
);
if
(
ACPI_COMPANION
(
&
pdev
->
dev
))
if
(
has_acpi_companion
(
&
pdev
->
dev
))
dw_i2c_acpi_unconfigure
(
pdev
);
dw_i2c_acpi_unconfigure
(
pdev
);
return
0
;
return
0
;
...
...
drivers/i2c/i2c-core.c
View file @
fe0a20a3
...
@@ -133,7 +133,7 @@ static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level,
...
@@ -133,7 +133,7 @@ static acpi_status acpi_i2c_add_device(acpi_handle handle, u32 level,
return
AE_OK
;
return
AE_OK
;
memset
(
&
info
,
0
,
sizeof
(
info
));
memset
(
&
info
,
0
,
sizeof
(
info
));
info
.
acpi_node
.
companion
=
adev
;
info
.
fwnode
=
acpi_fwnode_handle
(
adev
)
;
info
.
irq
=
-
1
;
info
.
irq
=
-
1
;
INIT_LIST_HEAD
(
&
resource_list
);
INIT_LIST_HEAD
(
&
resource_list
);
...
@@ -971,7 +971,7 @@ i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
...
@@ -971,7 +971,7 @@ i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
client
->
dev
.
bus
=
&
i2c_bus_type
;
client
->
dev
.
bus
=
&
i2c_bus_type
;
client
->
dev
.
type
=
&
i2c_client_type
;
client
->
dev
.
type
=
&
i2c_client_type
;
client
->
dev
.
of_node
=
info
->
of_node
;
client
->
dev
.
of_node
=
info
->
of_node
;
ACPI_COMPANION_SET
(
&
client
->
dev
,
info
->
acpi_node
.
companion
)
;
client
->
dev
.
fwnode
=
info
->
fwnode
;
i2c_dev_set_name
(
adap
,
client
);
i2c_dev_set_name
(
adap
,
client
);
status
=
device_register
(
&
client
->
dev
);
status
=
device_register
(
&
client
->
dev
);
...
...
drivers/iommu/intel-iommu.c
View file @
fe0a20a3
...
@@ -684,7 +684,7 @@ static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devf
...
@@ -684,7 +684,7 @@ static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devf
if
(
dev_is_pci
(
dev
))
{
if
(
dev_is_pci
(
dev
))
{
pdev
=
to_pci_dev
(
dev
);
pdev
=
to_pci_dev
(
dev
);
segment
=
pci_domain_nr
(
pdev
->
bus
);
segment
=
pci_domain_nr
(
pdev
->
bus
);
}
else
if
(
ACPI_COMPANION
(
dev
))
}
else
if
(
has_acpi_companion
(
dev
))
dev
=
&
ACPI_COMPANION
(
dev
)
->
dev
;
dev
=
&
ACPI_COMPANION
(
dev
)
->
dev
;
rcu_read_lock
();
rcu_read_lock
();
...
...
include/acpi/acpi_bus.h
View file @
fe0a20a3
...
@@ -386,7 +386,8 @@ static inline bool is_acpi_node(struct fwnode_handle *fwnode)
...
@@ -386,7 +386,8 @@ static inline bool is_acpi_node(struct fwnode_handle *fwnode)
static
inline
struct
acpi_device
*
acpi_node
(
struct
fwnode_handle
*
fwnode
)
static
inline
struct
acpi_device
*
acpi_node
(
struct
fwnode_handle
*
fwnode
)
{
{
return
fwnode
?
container_of
(
fwnode
,
struct
acpi_device
,
fwnode
)
:
NULL
;
return
is_acpi_node
(
fwnode
)
?
container_of
(
fwnode
,
struct
acpi_device
,
fwnode
)
:
NULL
;
}
}
static
inline
struct
fwnode_handle
*
acpi_fwnode_handle
(
struct
acpi_device
*
adev
)
static
inline
struct
fwnode_handle
*
acpi_fwnode_handle
(
struct
acpi_device
*
adev
)
...
...
include/linux/acpi.h
View file @
fe0a20a3
...
@@ -53,10 +53,16 @@ static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
...
@@ -53,10 +53,16 @@ static inline acpi_handle acpi_device_handle(struct acpi_device *adev)
return
adev
?
adev
->
handle
:
NULL
;
return
adev
?
adev
->
handle
:
NULL
;
}
}
#define ACPI_COMPANION(dev) ((dev)->acpi_node.companion)
#define ACPI_COMPANION(dev) acpi_node((dev)->fwnode)
#define ACPI_COMPANION_SET(dev, adev) ACPI_COMPANION(dev) = (adev)
#define ACPI_COMPANION_SET(dev, adev) (dev)->fwnode = (adev) ? \
acpi_fwnode_handle(adev) : NULL
#define ACPI_HANDLE(dev) acpi_device_handle(ACPI_COMPANION(dev))
#define ACPI_HANDLE(dev) acpi_device_handle(ACPI_COMPANION(dev))
static
inline
bool
has_acpi_companion
(
struct
device
*
dev
)
{
return
is_acpi_node
(
dev
->
fwnode
);
}
static
inline
void
acpi_preset_companion
(
struct
device
*
dev
,
static
inline
void
acpi_preset_companion
(
struct
device
*
dev
,
struct
acpi_device
*
parent
,
u64
addr
)
struct
acpi_device
*
parent
,
u64
addr
)
{
{
...
@@ -471,6 +477,11 @@ static inline struct fwnode_handle *acpi_fwnode_handle(struct acpi_device *adev)
...
@@ -471,6 +477,11 @@ static inline struct fwnode_handle *acpi_fwnode_handle(struct acpi_device *adev)
return
NULL
;
return
NULL
;
}
}
static
inline
bool
has_acpi_companion
(
struct
device
*
dev
)
{
return
false
;
}
static
inline
const
char
*
acpi_dev_name
(
struct
acpi_device
*
adev
)
static
inline
const
char
*
acpi_dev_name
(
struct
acpi_device
*
adev
)
{
{
return
NULL
;
return
NULL
;
...
...
include/linux/device.h
View file @
fe0a20a3
...
@@ -38,6 +38,7 @@ struct class;
...
@@ -38,6 +38,7 @@ struct class;
struct
subsys_private
;
struct
subsys_private
;
struct
bus_type
;
struct
bus_type
;
struct
device_node
;
struct
device_node
;
struct
fwnode_handle
;
struct
iommu_ops
;
struct
iommu_ops
;
struct
iommu_group
;
struct
iommu_group
;
...
@@ -650,14 +651,6 @@ struct device_dma_parameters {
...
@@ -650,14 +651,6 @@ struct device_dma_parameters {
unsigned
long
segment_boundary_mask
;
unsigned
long
segment_boundary_mask
;
};
};
struct
acpi_device
;
struct
acpi_dev_node
{
#ifdef CONFIG_ACPI
struct
acpi_device
*
companion
;
#endif
};
/**
/**
* struct device - The basic device structure
* struct device - The basic device structure
* @parent: The device's "parent" device, the device to which it is attached.
* @parent: The device's "parent" device, the device to which it is attached.
...
@@ -703,7 +696,7 @@ struct acpi_dev_node {
...
@@ -703,7 +696,7 @@ struct acpi_dev_node {
* @cma_area: Contiguous memory area for dma allocations
* @cma_area: Contiguous memory area for dma allocations
* @archdata: For arch-specific additions.
* @archdata: For arch-specific additions.
* @of_node: Associated device tree node.
* @of_node: Associated device tree node.
* @
acpi_node: Associated ACPI device nod
e.
* @
fwnode: Associated device node supplied by platform firmwar
e.
* @devt: For creating the sysfs "dev".
* @devt: For creating the sysfs "dev".
* @id: device instance
* @id: device instance
* @devres_lock: Spinlock to protect the resource of the device.
* @devres_lock: Spinlock to protect the resource of the device.
...
@@ -779,7 +772,7 @@ struct device {
...
@@ -779,7 +772,7 @@ struct device {
struct
dev_archdata
archdata
;
struct
dev_archdata
archdata
;
struct
device_node
*
of_node
;
/* associated device tree node */
struct
device_node
*
of_node
;
/* associated device tree node */
struct
acpi_dev_node
acpi_node
;
/* associated ACPI
device node */
struct
fwnode_handle
*
fwnode
;
/* firmware
device node */
dev_t
devt
;
/* dev_t, creates the sysfs "dev" */
dev_t
devt
;
/* dev_t, creates the sysfs "dev" */
u32
id
;
/* device instance */
u32
id
;
/* device instance */
...
...
include/linux/fwnode.h
0 → 100644
View file @
fe0a20a3
/*
* fwnode.h - Firmware device node object handle type definition.
*
* Copyright (C) 2015, Intel Corporation
* Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef _LINUX_FWNODE_H_
#define _LINUX_FWNODE_H_
enum
fwnode_type
{
FWNODE_INVALID
=
0
,
FWNODE_OF
,
FWNODE_ACPI
,
};
struct
fwnode_handle
{
enum
fwnode_type
type
;
};
#endif
include/linux/i2c.h
View file @
fe0a20a3
...
@@ -278,7 +278,7 @@ static inline int i2c_slave_event(struct i2c_client *client,
...
@@ -278,7 +278,7 @@ static inline int i2c_slave_event(struct i2c_client *client,
* @platform_data: stored in i2c_client.dev.platform_data
* @platform_data: stored in i2c_client.dev.platform_data
* @archdata: copied into i2c_client.dev.archdata
* @archdata: copied into i2c_client.dev.archdata
* @of_node: pointer to OpenFirmware device node
* @of_node: pointer to OpenFirmware device node
* @
acpi_node: ACPI device nod
e
* @
fwnode: device node supplied by the platform firmwar
e
* @irq: stored in i2c_client.irq
* @irq: stored in i2c_client.irq
*
*
* I2C doesn't actually support hardware probing, although controllers and
* I2C doesn't actually support hardware probing, although controllers and
...
@@ -299,7 +299,7 @@ struct i2c_board_info {
...
@@ -299,7 +299,7 @@ struct i2c_board_info {
void
*
platform_data
;
void
*
platform_data
;
struct
dev_archdata
*
archdata
;
struct
dev_archdata
*
archdata
;
struct
device_node
*
of_node
;
struct
device_node
*
of_node
;
struct
acpi_dev_node
acpi_
node
;
struct
fwnode_handle
*
fw
node
;
int
irq
;
int
irq
;
};
};
...
...
include/linux/platform_device.h
View file @
fe0a20a3
...
@@ -59,7 +59,7 @@ extern int platform_add_devices(struct platform_device **, int);
...
@@ -59,7 +59,7 @@ extern int platform_add_devices(struct platform_device **, int);
struct
platform_device_info
{
struct
platform_device_info
{
struct
device
*
parent
;
struct
device
*
parent
;
struct
acpi_dev_node
acpi_
node
;
struct
fwnode_handle
*
fw
node
;
const
char
*
name
;
const
char
*
name
;
int
id
;
int
id
;
...
...
include/linux/property.h
View file @
fe0a20a3
...
@@ -13,6 +13,7 @@
...
@@ -13,6 +13,7 @@
#ifndef _LINUX_PROPERTY_H_
#ifndef _LINUX_PROPERTY_H_
#define _LINUX_PROPERTY_H_
#define _LINUX_PROPERTY_H_
#include <linux/fwnode.h>
#include <linux/types.h>
#include <linux/types.h>
struct
device
;
struct
device
;
...
@@ -40,16 +41,6 @@ int device_property_read_string_array(struct device *dev, const char *propname,
...
@@ -40,16 +41,6 @@ int device_property_read_string_array(struct device *dev, const char *propname,
int
device_property_read_string
(
struct
device
*
dev
,
const
char
*
propname
,
int
device_property_read_string
(
struct
device
*
dev
,
const
char
*
propname
,
const
char
**
val
);
const
char
**
val
);
enum
fwnode_type
{
FWNODE_INVALID
=
0
,
FWNODE_OF
,
FWNODE_ACPI
,
};
struct
fwnode_handle
{
enum
fwnode_type
type
;
};
bool
fwnode_property_present
(
struct
fwnode_handle
*
fwnode
,
const
char
*
propname
);
bool
fwnode_property_present
(
struct
fwnode_handle
*
fwnode
,
const
char
*
propname
);
int
fwnode_property_read_u8_array
(
struct
fwnode_handle
*
fwnode
,
int
fwnode_property_read_u8_array
(
struct
fwnode_handle
*
fwnode
,
const
char
*
propname
,
u8
*
val
,
const
char
*
propname
,
u8
*
val
,
...
...
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