From e46a5e3ff06b70690d567bdc81faf6c1c32e742f Mon Sep 17 00:00:00 2001 From: Jiri Slaby Date: Wed, 30 Apr 2008 00:53:37 -0700 Subject: [PATCH] Char: moxa, pci io space fixup - request region before remapping pci io space - use ioremap, iounmap istead of iomap interface, because we use readX/writeX for accessing this space because of isa support Signed-off-by: Jiri Slaby Tested-by: Oyvind Aabling Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/char/moxa.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/drivers/char/moxa.c b/drivers/char/moxa.c index 2701f7c9f93..f841b1f74bf 100644 --- a/drivers/char/moxa.c +++ b/drivers/char/moxa.c @@ -290,10 +290,17 @@ static int __devinit moxa_pci_probe(struct pci_dev *pdev, } board = &moxa_boards[i]; - board->basemem = pci_iomap(pdev, 2, 0x4000); + + retval = pci_request_region(pdev, 2, "moxa-base"); + if (retval) { + dev_err(&pdev->dev, "can't request pci region 2\n"); + goto err; + } + + board->basemem = ioremap(pci_resource_start(pdev, 2), 0x4000); if (board->basemem == NULL) { dev_err(&pdev->dev, "can't remap io space 2\n"); - goto err; + goto err_reg; } board->boardType = board_type; @@ -315,6 +322,8 @@ static int __devinit moxa_pci_probe(struct pci_dev *pdev, pci_set_drvdata(pdev, board); return (0); +err_reg: + pci_release_region(pdev, 2); err: return retval; } @@ -323,8 +332,9 @@ static void __devexit moxa_pci_remove(struct pci_dev *pdev) { struct moxa_board_conf *brd = pci_get_drvdata(pdev); - pci_iounmap(pdev, brd->basemem); + iounmap(brd->basemem); brd->basemem = NULL; + pci_release_region(pdev, 2); } static struct pci_driver moxa_pci_driver = { -- 2.41.1