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
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