提交 9b170b8f 编写于 作者: J Jim Cromie 提交者: Linus Torvalds

[PATCH] chardev: GPIO for SCx200 & PC-8736x: refactor scx200_probe to better...

[PATCH] chardev: GPIO for SCx200 & PC-8736x: refactor scx200_probe to better segregate _gpio initialization

Pull shadow-reg initialization into separate function now, rather than doing
it 2x later (scx200, pc8736x).  When we revisit 2nd drvr below, it will be to
reimplement an init function, rather than another refactor.
Signed-off-by: NJim Cromie <jim.cromie@gmail.com>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 9550a339
......@@ -47,9 +47,17 @@ static struct pci_driver scx200_pci_driver = {
static DEFINE_SPINLOCK(scx200_gpio_config_lock);
static int __devinit scx200_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
static void __devinit scx200_init_shadow(void)
{
int bank;
/* read the current values driven on the GPIO signals */
for (bank = 0; bank < 2; ++bank)
scx200_gpio_shadow[bank] = inl(scx200_gpio_base + 0x10 * bank);
}
static int __devinit scx200_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
{
unsigned base;
if (pdev->device == PCI_DEVICE_ID_NS_SCx200_BRIDGE ||
......@@ -63,10 +71,7 @@ static int __devinit scx200_probe(struct pci_dev *pdev, const struct pci_device_
}
scx200_gpio_base = base;
/* read the current values driven on the GPIO signals */
for (bank = 0; bank < 2; ++bank)
scx200_gpio_shadow[bank] = inl(scx200_gpio_base + 0x10 * bank);
scx200_init_shadow();
} else {
/* find the base of the Configuration Block */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册