Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Upgrade to 4.4.50-rt62
[kvmfornfv.git]
/
kernel
/
drivers
/
pinctrl
/
pinctrl-single.c
diff --git
a/kernel/drivers/pinctrl/pinctrl-single.c
b/kernel/drivers/pinctrl/pinctrl-single.c
index
ef04b96
..
73d8d47
100644
(file)
--- a/
kernel/drivers/pinctrl/pinctrl-single.c
+++ b/
kernel/drivers/pinctrl/pinctrl-single.c
@@
-1273,9
+1273,9
@@
static int pcs_parse_bits_in_pinctrl_entry(struct pcs_device *pcs,
/* Parse pins in each row from LSB */
while (mask) {
/* Parse pins in each row from LSB */
while (mask) {
- bit_pos = ffs(mask);
+ bit_pos =
__
ffs(mask);
pin_num_from_lsb = bit_pos / pcs->bits_per_pin;
pin_num_from_lsb = bit_pos / pcs->bits_per_pin;
- mask_pos = ((pcs->fmask) <<
(bit_pos - 1)
);
+ mask_pos = ((pcs->fmask) <<
bit_pos
);
val_pos = val & mask_pos;
submask = mask & mask_pos;
val_pos = val & mask_pos;
submask = mask & mask_pos;
@@
-1576,6
+1576,9
@@
static inline void pcs_irq_set(struct pcs_soc_data *pcs_soc,
else
mask &= ~soc_mask;
pcs->write(mask, pcswi->reg);
else
mask &= ~soc_mask;
pcs->write(mask, pcswi->reg);
+
+ /* flush posted write */
+ mask = pcs->read(pcswi->reg);
raw_spin_unlock(&pcs->lock);
}
raw_spin_unlock(&pcs->lock);
}
@@
-1847,7
+1850,7
@@
static int pcs_probe(struct platform_device *pdev)
ret = of_property_read_u32(np, "pinctrl-single,function-mask",
&pcs->fmask);
if (!ret) {
ret = of_property_read_u32(np, "pinctrl-single,function-mask",
&pcs->fmask);
if (!ret) {
- pcs->fshift =
ffs(pcs->fmask) - 1
;
+ pcs->fshift =
__ffs(pcs->fmask)
;
pcs->fmax = pcs->fmask >> pcs->fshift;
} else {
/* If mask property doesn't exist, function mux is invalid. */
pcs->fmax = pcs->fmask >> pcs->fshift;
} else {
/* If mask property doesn't exist, function mux is invalid. */