Skip to content

Commit 349a11a

Browse files
committed
Revert "regmap: Synchronize cache for the page selector"
This reverts commit 1fd60ed. The patch is not longer available upstream Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
1 parent 4c9625c commit 349a11a

1 file changed

Lines changed: 6 additions & 22 deletions

File tree

drivers/base/regmap/regmap.c

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1559,40 +1559,24 @@ static int _regmap_select_page(struct regmap *map, unsigned int *reg,
15591559
return -EINVAL;
15601560
}
15611561

1562-
/*
1563-
* It is possible to have selector register inside data window.
1564-
* In that case, selector register is located on every page and it
1565-
* needs no page switching, when accessed alone.
1566-
*
1567-
* Nevertheless we should synchronize the cache values for it.
1568-
*/
1562+
/* It is possible to have selector register inside data window.
1563+
In that case, selector register is located on every page and
1564+
it needs no page switching, when accessed alone. */
15691565
if (val_num > 1 ||
15701566
range->window_start + win_offset != range->selector_reg) {
1571-
unsigned int page_off = win_page * range->window_len;
1572-
unsigned int sel_offset = range->selector_reg - range->window_start;
1573-
unsigned int sel_register = range->range_min + page_off + sel_offset;
1574-
unsigned int val = win_page << range->selector_shift;
1575-
unsigned int mask = range->selector_mask;
1576-
15771567
/* Use separate work_buf during page switching */
15781568
orig_work_buf = map->work_buf;
15791569
map->work_buf = map->selector_work_buf;
15801570

1581-
ret = _regmap_update_bits(map, range->selector_reg, mask, val,
1571+
ret = _regmap_update_bits(map, range->selector_reg,
1572+
range->selector_mask,
1573+
win_page << range->selector_shift,
15821574
&page_chg, false);
15831575

15841576
map->work_buf = orig_work_buf;
15851577

15861578
if (ret != 0)
15871579
return ret;
1588-
1589-
/*
1590-
* If selector register has been just updated, update the respective
1591-
* virtual copy as well.
1592-
*/
1593-
if (page_chg &&
1594-
in_range(range->selector_reg, range->window_start, range->window_len))
1595-
_regmap_update_bits(map, sel_register, mask, val, NULL, false);
15961580
}
15971581

15981582
*reg = range->window_start + win_offset;

0 commit comments

Comments
 (0)