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
/
sunxi
/
pinctrl-sunxi.h
diff --git
a/kernel/drivers/pinctrl/sunxi/pinctrl-sunxi.h
b/kernel/drivers/pinctrl/sunxi/pinctrl-sunxi.h
index
e248e81
..
0afce1a
100644
(file)
--- a/
kernel/drivers/pinctrl/sunxi/pinctrl-sunxi.h
+++ b/
kernel/drivers/pinctrl/sunxi/pinctrl-sunxi.h
@@
-97,6
+97,7
@@
struct sunxi_pinctrl_desc {
int npins;
unsigned pin_base;
unsigned irq_banks;
int npins;
unsigned pin_base;
unsigned irq_banks;
+ unsigned irq_bank_base;
bool irq_read_needs_mux;
};
bool irq_read_needs_mux;
};
@@
-233,12
+234,12
@@
static inline u32 sunxi_pull_offset(u16 pin)
return pin_num * PULL_PINS_BITS;
}
return pin_num * PULL_PINS_BITS;
}
-static inline u32 sunxi_irq_cfg_reg(u16 irq)
+static inline u32 sunxi_irq_cfg_reg(u16 irq
, unsigned bank_base
)
{
u8 bank = irq / IRQ_PER_BANK;
u8 reg = (irq % IRQ_PER_BANK) / IRQ_CFG_IRQ_PER_REG * 0x04;
{
u8 bank = irq / IRQ_PER_BANK;
u8 reg = (irq % IRQ_PER_BANK) / IRQ_CFG_IRQ_PER_REG * 0x04;
- return IRQ_CFG_REG +
bank
* IRQ_MEM_SIZE + reg;
+ return IRQ_CFG_REG +
(bank_base + bank)
* IRQ_MEM_SIZE + reg;
}
static inline u32 sunxi_irq_cfg_offset(u16 irq)
}
static inline u32 sunxi_irq_cfg_offset(u16 irq)
@@
-247,16
+248,16
@@
static inline u32 sunxi_irq_cfg_offset(u16 irq)
return irq_num * IRQ_CFG_IRQ_BITS;
}
return irq_num * IRQ_CFG_IRQ_BITS;
}
-static inline u32 sunxi_irq_ctrl_reg_from_bank(u8 bank)
+static inline u32 sunxi_irq_ctrl_reg_from_bank(u8 bank
, unsigned bank_base
)
{
{
- return IRQ_CTRL_REG +
bank
* IRQ_MEM_SIZE;
+ return IRQ_CTRL_REG +
(bank_base + bank)
* IRQ_MEM_SIZE;
}
}
-static inline u32 sunxi_irq_ctrl_reg(u16 irq)
+static inline u32 sunxi_irq_ctrl_reg(u16 irq
, unsigned bank_base
)
{
u8 bank = irq / IRQ_PER_BANK;
{
u8 bank = irq / IRQ_PER_BANK;
- return sunxi_irq_ctrl_reg_from_bank(bank);
+ return sunxi_irq_ctrl_reg_from_bank(bank
, bank_base
);
}
static inline u32 sunxi_irq_ctrl_offset(u16 irq)
}
static inline u32 sunxi_irq_ctrl_offset(u16 irq)
@@
-265,16
+266,16
@@
static inline u32 sunxi_irq_ctrl_offset(u16 irq)
return irq_num * IRQ_CTRL_IRQ_BITS;
}
return irq_num * IRQ_CTRL_IRQ_BITS;
}
-static inline u32 sunxi_irq_status_reg_from_bank(u8 bank)
+static inline u32 sunxi_irq_status_reg_from_bank(u8 bank
, unsigned bank_base
)
{
{
- return IRQ_STATUS_REG +
bank
* IRQ_MEM_SIZE;
+ return IRQ_STATUS_REG +
(bank_base + bank)
* IRQ_MEM_SIZE;
}
}
-static inline u32 sunxi_irq_status_reg(u16 irq)
+static inline u32 sunxi_irq_status_reg(u16 irq
, unsigned bank_base
)
{
u8 bank = irq / IRQ_PER_BANK;
{
u8 bank = irq / IRQ_PER_BANK;
- return sunxi_irq_status_reg_from_bank(bank);
+ return sunxi_irq_status_reg_from_bank(bank
, bank_base
);
}
static inline u32 sunxi_irq_status_offset(u16 irq)
}
static inline u32 sunxi_irq_status_offset(u16 irq)