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
90e51e6d
Commit
90e51e6d
authored
Feb 03, 2017
by
Mark Brown
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branches 'regmap/topic/doc' and 'regmap/topic/rbtree' into regmap-next
parents
3b94bdd1
2cf8e2df
671a911b
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
184 additions
and
149 deletions
+184
-149
drivers/base/regmap/regcache-rbtree.c
drivers/base/regmap/regcache-rbtree.c
+3
-4
drivers/base/regmap/regcache.c
drivers/base/regmap/regcache.c
+10
-10
drivers/base/regmap/regmap-irq.c
drivers/base/regmap/regmap-irq.c
+33
-29
drivers/base/regmap/regmap.c
drivers/base/regmap/regmap.c
+71
-58
include/linux/regmap.h
include/linux/regmap.h
+67
-48
No files found.
drivers/base/regmap/regcache-rbtree.c
View file @
90e51e6d
...
...
@@ -81,7 +81,7 @@ static struct regcache_rbtree_node *regcache_rbtree_lookup(struct regmap *map,
node
=
rbtree_ctx
->
root
.
rb_node
;
while
(
node
)
{
rbnode
=
container_of
(
node
,
struct
regcache_rbtree_node
,
node
);
rbnode
=
rb_entry
(
node
,
struct
regcache_rbtree_node
,
node
);
regcache_rbtree_get_base_top_reg
(
map
,
rbnode
,
&
base_reg
,
&
top_reg
);
if
(
reg
>=
base_reg
&&
reg
<=
top_reg
)
{
...
...
@@ -108,8 +108,7 @@ static int regcache_rbtree_insert(struct regmap *map, struct rb_root *root,
parent
=
NULL
;
new
=
&
root
->
rb_node
;
while
(
*
new
)
{
rbnode_tmp
=
container_of
(
*
new
,
struct
regcache_rbtree_node
,
node
);
rbnode_tmp
=
rb_entry
(
*
new
,
struct
regcache_rbtree_node
,
node
);
/* base and top registers of the current rbnode */
regcache_rbtree_get_base_top_reg
(
map
,
rbnode_tmp
,
&
base_reg_tmp
,
&
top_reg_tmp
);
...
...
@@ -152,7 +151,7 @@ static int rbtree_show(struct seq_file *s, void *ignored)
for
(
node
=
rb_first
(
&
rbtree_ctx
->
root
);
node
!=
NULL
;
node
=
rb_next
(
node
))
{
n
=
container_of
(
node
,
struct
regcache_rbtree_node
,
node
);
n
=
rb_entry
(
node
,
struct
regcache_rbtree_node
,
node
);
mem_size
+=
sizeof
(
*
n
);
mem_size
+=
(
n
->
blklen
*
map
->
cache_word_size
);
mem_size
+=
BITS_TO_LONGS
(
n
->
blklen
)
*
sizeof
(
long
);
...
...
drivers/base/regmap/regcache.c
View file @
90e51e6d
...
...
@@ -224,7 +224,7 @@ void regcache_exit(struct regmap *map)
}
/**
* regcache_read
:
Fetch the value of a given register from the cache.
* regcache_read
-
Fetch the value of a given register from the cache.
*
* @map: map to configure.
* @reg: The register index.
...
...
@@ -255,7 +255,7 @@ int regcache_read(struct regmap *map,
}
/**
* regcache_write
:
Set the value of a given register in the cache.
* regcache_write
-
Set the value of a given register in the cache.
*
* @map: map to configure.
* @reg: The register index.
...
...
@@ -328,7 +328,7 @@ static int regcache_default_sync(struct regmap *map, unsigned int min,
}
/**
* regcache_sync
:
Sync the register cache with the hardware.
* regcache_sync
-
Sync the register cache with the hardware.
*
* @map: map to configure.
*
...
...
@@ -396,7 +396,7 @@ int regcache_sync(struct regmap *map)
EXPORT_SYMBOL_GPL
(
regcache_sync
);
/**
* regcache_sync_region
:
Sync part of the register cache with the hardware.
* regcache_sync_region
-
Sync part of the register cache with the hardware.
*
* @map: map to sync.
* @min: first register to sync
...
...
@@ -452,7 +452,7 @@ int regcache_sync_region(struct regmap *map, unsigned int min,
EXPORT_SYMBOL_GPL
(
regcache_sync_region
);
/**
* regcache_drop_region
:
Discard part of the register cache
* regcache_drop_region
-
Discard part of the register cache
*
* @map: map to operate on
* @min: first register to discard
...
...
@@ -483,10 +483,10 @@ int regcache_drop_region(struct regmap *map, unsigned int min,
EXPORT_SYMBOL_GPL
(
regcache_drop_region
);
/**
* regcache_cache_only
:
Put a register map into cache only mode
* regcache_cache_only
-
Put a register map into cache only mode
*
* @map: map to configure
* @
cache_only
: flag if changes should be written to the hardware
* @
enable
: flag if changes should be written to the hardware
*
* When a register map is marked as cache only writes to the register
* map API will only update the register cache, they will not cause
...
...
@@ -505,7 +505,7 @@ void regcache_cache_only(struct regmap *map, bool enable)
EXPORT_SYMBOL_GPL
(
regcache_cache_only
);
/**
* regcache_mark_dirty
:
Indicate that HW registers were reset to default values
* regcache_mark_dirty
-
Indicate that HW registers were reset to default values
*
* @map: map to mark
*
...
...
@@ -527,10 +527,10 @@ void regcache_mark_dirty(struct regmap *map)
EXPORT_SYMBOL_GPL
(
regcache_mark_dirty
);
/**
* regcache_cache_bypass
:
Put a register map into cache bypass mode
* regcache_cache_bypass
-
Put a register map into cache bypass mode
*
* @map: map to configure
* @
cache_bypass
: flag if changes should not be written to the cache
* @
enable
: flag if changes should not be written to the cache
*
* When a register map is marked with the cache bypass option, writes
* to the register map API will only update the hardware and not the
...
...
drivers/base/regmap/regmap-irq.c
View file @
90e51e6d
...
...
@@ -398,13 +398,14 @@ static const struct irq_domain_ops regmap_domain_ops = {
};
/**
* regmap_add_irq_chip()
:
Use standard regmap IRQ controller handling
* regmap_add_irq_chip()
-
Use standard regmap IRQ controller handling
*
* map: The regmap for the device.
* irq: The IRQ the device uses to signal interrupts
* irq_flags: The IRQF_ flags to use for the primary interrupt.
* chip: Configuration for the interrupt controller.
* data: Runtime data structure for the controller, allocated on success
* @map: The regmap for the device.
* @irq: The IRQ the device uses to signal interrupts.
* @irq_flags: The IRQF_ flags to use for the primary interrupt.
* @irq_base: Allocate at specific IRQ number if irq_base > 0.
* @chip: Configuration for the interrupt controller.
* @data: Runtime data structure for the controller, allocated on success.
*
* Returns 0 on success or an errno on failure.
*
...
...
@@ -659,12 +660,12 @@ int regmap_add_irq_chip(struct regmap *map, int irq, int irq_flags,
EXPORT_SYMBOL_GPL
(
regmap_add_irq_chip
);
/**
* regmap_del_irq_chip()
:
Stop interrupt handling for a regmap IRQ chip
* regmap_del_irq_chip()
-
Stop interrupt handling for a regmap IRQ chip
*
* @irq: Primary IRQ for the device
* @d:
regmap_irq_chip_data allocated by regmap_add_irq_chip()
* @d:
&
regmap_irq_chip_data allocated by regmap_add_irq_chip()
*
* This function also dispose
all mapped irq on
chip.
* This function also dispose
s of all mapped IRQs on the
chip.
*/
void
regmap_del_irq_chip
(
int
irq
,
struct
regmap_irq_chip_data
*
d
)
{
...
...
@@ -723,18 +724,19 @@ static int devm_regmap_irq_chip_match(struct device *dev, void *res, void *data)
}
/**
* devm_regmap_add_irq_chip()
:
Resource manager regmap_add_irq_chip()
* devm_regmap_add_irq_chip()
-
Resource manager regmap_add_irq_chip()
*
* @dev:
The device pointer on which irq_chip belongs to.
* @map:
The regmap for the device.
* @irq:
The IRQ the device uses to signal interrupts
* @dev: The device pointer on which irq_chip belongs to.
* @map: The regmap for the device.
* @irq: The IRQ the device uses to signal interrupts
* @irq_flags: The IRQF_ flags to use for the primary interrupt.
* @chip: Configuration for the interrupt controller.
* @data: Runtime data structure for the controller, allocated on success
* @irq_base: Allocate at specific IRQ number if irq_base > 0.
* @chip: Configuration for the interrupt controller.
* @data: Runtime data structure for the controller, allocated on success
*
* Returns 0 on success or an errno on failure.
*
* The
regmap_irq_chip data automatically be
released when the device is
* The
®map_irq_chip_data will be automatically
released when the device is
* unbound.
*/
int
devm_regmap_add_irq_chip
(
struct
device
*
dev
,
struct
regmap
*
map
,
int
irq
,
...
...
@@ -765,11 +767,13 @@ int devm_regmap_add_irq_chip(struct device *dev, struct regmap *map, int irq,
EXPORT_SYMBOL_GPL
(
devm_regmap_add_irq_chip
);
/**
* devm_regmap_del_irq_chip()
:
Resource managed regmap_del_irq_chip()
* devm_regmap_del_irq_chip()
-
Resource managed regmap_del_irq_chip()
*
* @dev: Device for which which resource was allocated.
* @irq: Primary IRQ for the device
* @d: regmap_irq_chip_data allocated by regmap_add_irq_chip()
* @irq: Primary IRQ for the device.
* @data: ®map_irq_chip_data allocated by regmap_add_irq_chip().
*
* A resource managed version of regmap_del_irq_chip().
*/
void
devm_regmap_del_irq_chip
(
struct
device
*
dev
,
int
irq
,
struct
regmap_irq_chip_data
*
data
)
...
...
@@ -786,11 +790,11 @@ void devm_regmap_del_irq_chip(struct device *dev, int irq,
EXPORT_SYMBOL_GPL
(
devm_regmap_del_irq_chip
);
/**
* regmap_irq_chip_get_base()
:
Retrieve interrupt base for a regmap IRQ chip
* regmap_irq_chip_get_base()
-
Retrieve interrupt base for a regmap IRQ chip
*
*
Useful for drivers to request their own IRQs
.
*
@data: regmap irq controller to operate on
.
*
*
@data: regmap_irq controller to operate on
.
*
Useful for drivers to request their own IRQs
.
*/
int
regmap_irq_chip_get_base
(
struct
regmap_irq_chip_data
*
data
)
{
...
...
@@ -800,12 +804,12 @@ int regmap_irq_chip_get_base(struct regmap_irq_chip_data *data)
EXPORT_SYMBOL_GPL
(
regmap_irq_chip_get_base
);
/**
* regmap_irq_get_virq()
:
Map an interrupt on a chip to a virtual IRQ
* regmap_irq_get_virq()
-
Map an interrupt on a chip to a virtual IRQ
*
* Useful for drivers to request their own IRQs.
* @data: regmap irq controller to operate on.
* @irq: index of the interrupt requested in the chip IRQs.
*
* @data: regmap_irq controller to operate on.
* @irq: index of the interrupt requested in the chip IRQs
* Useful for drivers to request their own IRQs.
*/
int
regmap_irq_get_virq
(
struct
regmap_irq_chip_data
*
data
,
int
irq
)
{
...
...
@@ -818,14 +822,14 @@ int regmap_irq_get_virq(struct regmap_irq_chip_data *data, int irq)
EXPORT_SYMBOL_GPL
(
regmap_irq_get_virq
);
/**
* regmap_irq_get_domain(): Retrieve the irq_domain for the chip
* regmap_irq_get_domain() - Retrieve the irq_domain for the chip
*
* @data: regmap_irq controller to operate on.
*
* Useful for drivers to request their own IRQs and for integration
* with subsystems. For ease of integration NULL is accepted as a
* domain, allowing devices to just call this even if no domain is
* allocated.
*
* @data: regmap_irq controller to operate on.
*/
struct
irq_domain
*
regmap_irq_get_domain
(
struct
regmap_irq_chip_data
*
data
)
{
...
...
drivers/base/regmap/regmap.c
View file @
90e51e6d
This diff is collapsed.
Click to expand it.
include/linux/regmap.h
View file @
90e51e6d
This diff is collapsed.
Click to expand it.
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