|
@@ -139,10 +139,11 @@ static const unsigned long mfpr_edge[] = {
|
|
|
#define mfp_configured(p) ((p)->config != -1)
|
|
|
|
|
|
/*
|
|
|
- * perform a read-back of any MFPR register to make sure the
|
|
|
+ * perform a read-back of any valid MFPR register to make sure the
|
|
|
* previous writings are finished
|
|
|
*/
|
|
|
-#define mfpr_sync() (void)__raw_readl(mfpr_mmio_base + 0)
|
|
|
+static unsigned long mfpr_off_readback;
|
|
|
+#define mfpr_sync() (void)__raw_readl(mfpr_mmio_base + mfpr_off_readback)
|
|
|
|
|
|
static inline void __mfp_config_run(struct mfp_pin *p)
|
|
|
{
|
|
@@ -248,6 +249,9 @@ void __init mfp_init_addr(struct mfp_addr_map *map)
|
|
|
|
|
|
spin_lock_irqsave(&mfp_spin_lock, flags);
|
|
|
|
|
|
+ /* mfp offset for readback */
|
|
|
+ mfpr_off_readback = map[0].offset;
|
|
|
+
|
|
|
for (p = map; p->start != MFP_PIN_INVALID; p++) {
|
|
|
offset = p->offset;
|
|
|
i = p->start;
|