public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/4] Char: mxser_new, pci_request_region for pci regions
@ 2006-09-30 22:34 Jiri Slaby
  2006-10-04 13:45 ` Rolf Eike Beer
  0 siblings, 1 reply; 4+ messages in thread
From: Jiri Slaby @ 2006-09-30 22:34 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel, support

mxser_new, pci_request_region for pci regions

Use pci_request_region instead of standard request_region for pci device
regions. More checking, simplier use.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>

---
commit 1a717bdb06cef859dfbd426f46ea24a9c740e5c5
tree 85460f01008e9fa2edea675a73b394c48139df4a
parent d4f99406c592fb7ce2a65645d7c1f98ebe599238
author Jiri Slaby <jirislaby@gmail.com> Sat, 30 Sep 2006 01:20:12 +0200
committer Jiri Slaby <xslaby@anemoi.localdomain> Sat, 30 Sep 2006 01:20:12 +0200

 drivers/char/mxser_new.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
index dfef9ce..c566cd0 100644
--- a/drivers/char/mxser_new.c
+++ b/drivers/char/mxser_new.c
@@ -526,8 +526,8 @@ static void __exit mxser_module_exit(voi
 			pdev = mxser_boards[i].pdev;
 			free_irq(mxser_boards[i].irq, &mxser_boards[i]);
 			if (pdev != NULL) {	/* PCI */
-				release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2));
-				release_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3));
+				pci_release_region(pdev, 2);
+				pci_release_region(pdev, 3);
 				pci_dev_put(pdev);
 			} else {
 				release_region(mxser_boards[i].ports[0].ioaddr, 8 * mxser_boards[i].nports);
@@ -627,16 +627,14 @@ static int __init mxser_get_PCI_conf(int
 	brd->board_type = board_type;
 	brd->nports = mxser_numports[board_type - 1];
 	ioaddress = pci_resource_start(pdev, 2);
-	request_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2),
-			"mxser(IO)");
+	pci_request_region(pdev, 2, "mxser(IO)");
 
 	for (i = 0; i < brd->nports; i++)
 		brd->ports[i].ioaddr = ioaddress + 8 * i;
 
 	/* vector */
 	ioaddress = pci_resource_start(pdev, 3);
-	request_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3),
-			"mxser(vector)");
+	pci_request_region(pdev, 3, "mxser(vector)");
 	brd->vector = ioaddress;
 
 	/* irq */

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/4] Char: mxser_new, pci_request_region for pci regions
  2006-09-30 22:34 [PATCH 3/4] Char: mxser_new, pci_request_region for pci regions Jiri Slaby
@ 2006-10-04 13:45 ` Rolf Eike Beer
  2006-10-04 16:03   ` Jiri Slaby
  0 siblings, 1 reply; 4+ messages in thread
From: Rolf Eike Beer @ 2006-10-04 13:45 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: Andrew Morton, linux-kernel, support

[-- Attachment #1: Type: text/plain, Size: 2240 bytes --]

Jiri Slaby wrote:
> mxser_new, pci_request_region for pci regions
>
> Use pci_request_region instead of standard request_region for pci device
> regions. More checking, simplier use.
>
> Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
>
> ---
> commit 1a717bdb06cef859dfbd426f46ea24a9c740e5c5
> tree 85460f01008e9fa2edea675a73b394c48139df4a
> parent d4f99406c592fb7ce2a65645d7c1f98ebe599238
> author Jiri Slaby <jirislaby@gmail.com> Sat, 30 Sep 2006 01:20:12 +0200
> committer Jiri Slaby <xslaby@anemoi.localdomain> Sat, 30 Sep 2006 01:20:12
> +0200
>
>  drivers/char/mxser_new.c |   10 ++++------
>  1 files changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
> index dfef9ce..c566cd0 100644
> --- a/drivers/char/mxser_new.c
> +++ b/drivers/char/mxser_new.c
> @@ -526,8 +526,8 @@ static void __exit mxser_module_exit(voi
>  			pdev = mxser_boards[i].pdev;
>  			free_irq(mxser_boards[i].irq, &mxser_boards[i]);
>  			if (pdev != NULL) {	/* PCI */
> -				release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev,
> 2)); -				release_region(pci_resource_start(pdev, 3),
> pci_resource_len(pdev, 3)); +				pci_release_region(pdev, 2);
> +				pci_release_region(pdev, 3);
>  				pci_dev_put(pdev);
>  			} else {
>  				release_region(mxser_boards[i].ports[0].ioaddr, 8 *
> mxser_boards[i].nports);
> @@ -627,16 +627,14 @@ static int __init 
> mxser_get_PCI_conf(int
>  	brd->board_type = board_type;
>  	brd->nports = mxser_numports[board_type - 1];
>  	ioaddress = pci_resource_start(pdev, 2);
> -	request_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2),
> -			"mxser(IO)");
> +	pci_request_region(pdev, 2, "mxser(IO)");
>
>  	for (i = 0; i < brd->nports; i++)
>  		brd->ports[i].ioaddr = ioaddress + 8 * i;
>
>  	/* vector */
>  	ioaddress = pci_resource_start(pdev, 3);
> -	request_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3),
> -			"mxser(vector)");
> +	pci_request_region(pdev, 3, "mxser(vector)");
>  	brd->vector = ioaddress;
>
>  	/* irq */

Correct me if I'm wrong, but that use of ioaddress looks totally wrong to me. 
Isn't there a pci_iomap() or something missing?

Eike

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/4] Char: mxser_new, pci_request_region for pci regions
  2006-10-04 13:45 ` Rolf Eike Beer
@ 2006-10-04 16:03   ` Jiri Slaby
  2006-10-05  5:27     ` Rolf Eike Beer
  0 siblings, 1 reply; 4+ messages in thread
From: Jiri Slaby @ 2006-10-04 16:03 UTC (permalink / raw)
  To: Rolf Eike Beer; +Cc: Andrew Morton, linux-kernel, support

Rolf Eike Beer wrote:
> Jiri Slaby wrote:
>> mxser_new, pci_request_region for pci regions
>>
>> Use pci_request_region instead of standard request_region for pci device
>> regions. More checking, simplier use.
>>
>> Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
>>
>> ---
>> commit 1a717bdb06cef859dfbd426f46ea24a9c740e5c5
>> tree 85460f01008e9fa2edea675a73b394c48139df4a
>> parent d4f99406c592fb7ce2a65645d7c1f98ebe599238
>> author Jiri Slaby <jirislaby@gmail.com> Sat, 30 Sep 2006 01:20:12 +0200
>> committer Jiri Slaby <xslaby@anemoi.localdomain> Sat, 30 Sep 2006 01:20:12
>> +0200
>>
>>  drivers/char/mxser_new.c |   10 ++++------
>>  1 files changed, 4 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
>> index dfef9ce..c566cd0 100644
>> --- a/drivers/char/mxser_new.c
>> +++ b/drivers/char/mxser_new.c
>> @@ -526,8 +526,8 @@ static void __exit mxser_module_exit(voi
>>  			pdev = mxser_boards[i].pdev;
>>  			free_irq(mxser_boards[i].irq, &mxser_boards[i]);
>>  			if (pdev != NULL) {	/* PCI */
>> -				release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev,
>> 2)); -				release_region(pci_resource_start(pdev, 3),
>> pci_resource_len(pdev, 3)); +				pci_release_region(pdev, 2);
>> +				pci_release_region(pdev, 3);
>>  				pci_dev_put(pdev);
>>  			} else {
>>  				release_region(mxser_boards[i].ports[0].ioaddr, 8 *
>> mxser_boards[i].nports);
>> @@ -627,16 +627,14 @@ static int __init 
>> mxser_get_PCI_conf(int
>>  	brd->board_type = board_type;
>>  	brd->nports = mxser_numports[board_type - 1];
>>  	ioaddress = pci_resource_start(pdev, 2);
>> -	request_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2),
>> -			"mxser(IO)");
>> +	pci_request_region(pdev, 2, "mxser(IO)");
>>
>>  	for (i = 0; i < brd->nports; i++)
>>  		brd->ports[i].ioaddr = ioaddress + 8 * i;
>>
>>  	/* vector */
>>  	ioaddress = pci_resource_start(pdev, 3);
>> -	request_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3),
>> -			"mxser(vector)");
>> +	pci_request_region(pdev, 3, "mxser(vector)");
>>  	brd->vector = ioaddress;
>>
>>  	/* irq */
> 
> Correct me if I'm wrong, but that use of ioaddress looks totally wrong to me. 
> Isn't there a pci_iomap() or something missing?

Both brd->vector and brd->ports[i].ioaddr are used in inb and outb function 
calls. They themselves remap a small range (one byte in these cases) and require 
ulong addresses as a parameter, not pointer to virtual space, correct?

thanks,
-- 
http://www.fi.muni.cz/~xslaby/            Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8  22A0 32CC 55C3 39D4 7A7E

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 3/4] Char: mxser_new, pci_request_region for pci regions
  2006-10-04 16:03   ` Jiri Slaby
@ 2006-10-05  5:27     ` Rolf Eike Beer
  0 siblings, 0 replies; 4+ messages in thread
From: Rolf Eike Beer @ 2006-10-05  5:27 UTC (permalink / raw)
  To: Jiri Slaby; +Cc: Andrew Morton, linux-kernel, support

[-- Attachment #1: Type: text/plain, Size: 2959 bytes --]

Jiri Slaby wrote:
> Rolf Eike Beer wrote:
> > Jiri Slaby wrote:
> >> mxser_new, pci_request_region for pci regions
> >>
> >> Use pci_request_region instead of standard request_region for pci device
> >> regions. More checking, simplier use.
> >>
> >> Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
> >>
> >> ---
> >> commit 1a717bdb06cef859dfbd426f46ea24a9c740e5c5
> >> tree 85460f01008e9fa2edea675a73b394c48139df4a
> >> parent d4f99406c592fb7ce2a65645d7c1f98ebe599238
> >> author Jiri Slaby <jirislaby@gmail.com> Sat, 30 Sep 2006 01:20:12 +0200
> >> committer Jiri Slaby <xslaby@anemoi.localdomain> Sat, 30 Sep 2006
> >> 01:20:12 +0200
> >>
> >>  drivers/char/mxser_new.c |   10 ++++------
> >>  1 files changed, 4 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/drivers/char/mxser_new.c b/drivers/char/mxser_new.c
> >> index dfef9ce..c566cd0 100644
> >> --- a/drivers/char/mxser_new.c
> >> +++ b/drivers/char/mxser_new.c
> >> @@ -526,8 +526,8 @@ static void __exit mxser_module_exit(voi
> >>  			pdev = mxser_boards[i].pdev;
> >>  			free_irq(mxser_boards[i].irq, &mxser_boards[i]);
> >>  			if (pdev != NULL) {	/* PCI */
> >> -				release_region(pci_resource_start(pdev, 2), pci_resource_len(pdev,
> >> 2)); -				release_region(pci_resource_start(pdev, 3),
> >> pci_resource_len(pdev, 3)); +				pci_release_region(pdev, 2);
> >> +				pci_release_region(pdev, 3);
> >>  				pci_dev_put(pdev);
> >>  			} else {
> >>  				release_region(mxser_boards[i].ports[0].ioaddr, 8 *
> >> mxser_boards[i].nports);
> >> @@ -627,16 +627,14 @@ static int __init
> >> mxser_get_PCI_conf(int
> >>  	brd->board_type = board_type;
> >>  	brd->nports = mxser_numports[board_type - 1];
> >>  	ioaddress = pci_resource_start(pdev, 2);
> >> -	request_region(pci_resource_start(pdev, 2), pci_resource_len(pdev, 2),
> >> -			"mxser(IO)");
> >> +	pci_request_region(pdev, 2, "mxser(IO)");
> >>
> >>  	for (i = 0; i < brd->nports; i++)
> >>  		brd->ports[i].ioaddr = ioaddress + 8 * i;
> >>
> >>  	/* vector */
> >>  	ioaddress = pci_resource_start(pdev, 3);
> >> -	request_region(pci_resource_start(pdev, 3), pci_resource_len(pdev, 3),
> >> -			"mxser(vector)");
> >> +	pci_request_region(pdev, 3, "mxser(vector)");
> >>  	brd->vector = ioaddress;
> >>
> >>  	/* irq */
> >
> > Correct me if I'm wrong, but that use of ioaddress looks totally wrong to
> > me. Isn't there a pci_iomap() or something missing?
>
> Both brd->vector and brd->ports[i].ioaddr are used in inb and outb function
> calls. They themselves remap a small range (one byte in these cases) and
> require ulong addresses as a parameter, not pointer to virtual space,
> correct?

Possible. I try to ignore that interface completely :) I would feel much more 
comfortable if this would be done the other way. But this would probably 
introduce more code because this one seems to work on non-PCI devices also. 
So just ignore me :)

Eike

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-10-05  5:26 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-30 22:34 [PATCH 3/4] Char: mxser_new, pci_request_region for pci regions Jiri Slaby
2006-10-04 13:45 ` Rolf Eike Beer
2006-10-04 16:03   ` Jiri Slaby
2006-10-05  5:27     ` Rolf Eike Beer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox