char: Convert pci_table entries to PCI_VDEVICE (if PCI_ANY_ID is used)
Subsystems (2)
PATCH 12/25 char: Convert pci_table entries to PCI_VDEVICE (if PCI_ANY_ID is used)
From: Peter Huewe <[email protected]>
This patch converts pci_table entries, where .subvendor=PCI_ANY_ID and .subdevice=PCI_ANY_ID, .class=0 and .class_mask=0, to use the PCI_VDEVICE macro, and thus improves readability.
--- drivers/char/epca.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
drivers/char/epca.c +4 -4
@@ -2762,10 +2762,10 @@ err_out:static struct pci_device_id epca_pci_tbl[] = { - {PCI_VENDOR_DIGI ,PCI_DEVICE_XR ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_xr }, - {PCI_VENDOR_DIGI ,PCI_DEVICE_XEM ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_xem }, - {PCI_VENDOR_DIGI ,PCI_DEVICE_CX ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_cx }, - {PCI_VENDOR_DIGI ,PCI_DEVICE_XRJ ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_xrj }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_XR ), brd_xr }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_XEM ), brd_xem }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_CX ), brd_cx }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_XRJ ), brd_xrj }, {0 , } };
Signature · 1 line
1.7.1
Quoted 17 lines · Peter Huewe
From: Peter Huewe <[email protected]>
This patch converts
pci_tableentries, where .subvendor=PCI_ANY_ID and .subdevice=PCI_ANY_ID, .class=0 and .class_mask=0, to use thePCI_VDEVICEmacro, and thus improves readability.Signed-off-by Peter Huewe <[email protected]>--- drivers/char/epca.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)drivers/char/epca.c +0
-0@@ -2762,10 +2762,10 @@ err_out:
drivers/char/epca.c err_out: · line 2768
Quoted 10 lines
drivers/char/epca.c +4
-4static struct pci_device_id epca_pci_tbl[] = { - {PCI_VENDOR_DIGI ,PCI_DEVICE_XR ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_xr }, - {PCI_VENDOR_DIGI ,PCI_DEVICE_XEM ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_xem }, - {PCI_VENDOR_DIGI ,PCI_DEVICE_CX ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_cx }, - {PCI_VENDOR_DIGI ,PCI_DEVICE_XRJ ,PCI_ANY_ID ,PCI_ANY_ID ,0 ,0 , brd_xrj }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_XR ), brd_xr }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_XEM ), brd_xem }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_CX ), brd_cx }, + {PCI_VDEVICE (DIGI ,PCI_DEVICE_XRJ ), brd_xrj },
The main reason I hate this macro, is that it now makes it almost impossible to grep for any users of the PCI_VENDOR_DIGI pci vendor id. I much prefer the PCI_DEVICE() macro instead, and as such, I'm not willing to take any of these patches, sorry.
greg k-h
Quoted 2 lines · Greg KH
I much prefer the
PCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.
grepping for pci device ids using constants and
expecting the result to be comprehensive isn't
sensible.
$ grep -rwP --include=*.[ch] -w PCI_VDEVICE drivers/char | wc -l 32
The current drivers/ use of PCI_VDEVICE to PCI_DEVICE is ~50/50
$ grep --include=*.[ch] -rwP PCI_DEVICE drivers | wc -l 866 $ grep --include=*.[ch] -rwP PCI_VDEVICE drivers | wc -l 768
Quoted 7 lines · Joe Perches
Quoted 2 lines · Greg KH
I much prefer the
PCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.grepping for pci device ids using constants and
expecting the result to be comprehensive isn't
sensible.
But it's a nice goal :)
Quoted 2 lines
$ grep -rwP --include=*.[ch] -w PCI_VDEVICE drivers/char | wc -l 32
drivers/char is not exactly a large collection of PCI drivers, only some old serial port ones.
Quoted 6 lines
The current
drivers/use ofPCI_VDEVICEtoPCI_DEVICEis ~50/50$ grep --include=*.[ch] -rwP PCI_DEVICE drivers | wc -l 866 $ grep --include=*.[ch] -rwP PCI_VDEVICE drivers | wc -l 768
Hey, anything to increase that ratio is good :)
thanks,
greg k-h
Quoted 8 lines · Greg KH
Quoted 6 lines · Joe Perches
Quoted 2 lines · Greg KH
I much prefer the
PCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.grepping for pci device ids using constants and
expecting the result to be comprehensive isn't
sensible.But it's a nice goal :)
I think your goal is not a good one.
For instance:
$ grep -rP --include=*.[ch] "\bPCI_VDEVICE\s*\(\s*INTEL" drivers | wc -l 201 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(PCI_VENDOR_ID_INTEL" drivers | wc -l 45 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(\s*0x8086" drivers | wc -l 38
I'd much rather do a search for "PCI_VDEVICE.*INTEL"
Quoted 14 lines · Joe Perches
Quoted 8 lines · Greg KH
Quoted 6 lines · Joe Perches
Quoted 2 lines · Greg KH
I much prefer the
PCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.grepping for pci device ids using constants and
expecting the result to be comprehensive isn't
sensible.But it's a nice goal :)
I think your goal is not a good one.
For instance:
Quoted 8 lines
$ grep -rP --include=*.[ch] "\bPCI_VDEVICE\s*\(\s*INTEL" drivers | wc -l 201 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(PCI_VENDOR_ID_INTEL" drivers | wc -l 45 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(\s*0x8086" drivers | wc -l 38I'd much rather do a search for "PCI_VDEVICE.*INTEL"
I'd much rather use 'cscope' or 'ctags' than trying to remember regular expressions like the above.
greg k-h
Quoted 21 lines · Greg KH
Quoted 13 lines · Joe Perches
Quoted 8 lines · Greg KH
Quoted 6 lines · Joe Perches
Quoted 2 lines · Greg KH
I much prefer the
PCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.grepping for pci device ids using constants and
expecting the result to be comprehensive isn't
sensible.But it's a nice goal :)
I think your goal is not a good one.
For instance:
Quoted 7 lines
$ grep -rP --include=*.[ch] "\bPCI_VDEVICE\s*\(\s*INTEL" drivers | wc -l 201 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(PCI_VENDOR_ID_INTEL" drivers | wc -l 45 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(\s*0x8086" drivers | wc -l 38 I'd much rather do a search for "PCI_VDEVICE.*INTEL"
Quoted 2 lines
I'd much rather use 'cscope' or 'ctags' than trying to remember regular expressions like the above.
Then it appears your original argument doesn't have much merit.
Quoted 22 lines · Joe Perches
Quoted 21 lines · Greg KH
Quoted 20 lines · Joe Perches
Quoted 8 lines · Greg KH
Quoted 6 lines · Joe Perches
Quoted 2 lines · Greg KH
I much prefer the
PCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.grepping for pci device ids using constants and
expecting the result to be comprehensive isn't
sensible.But it's a nice goal :)
I think your goal is not a good one.
For instance:
$ grep -rP --include=*.[ch] "\bPCI_VDEVICE\s*\(\s*INTEL" drivers | wc -l 201 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(PCI_VENDOR_ID_INTEL" drivers | wc -l 45 $ grep -rP --include=*.[ch] "\bPCI_DEVICE\s*\(\s*0x8086" drivers | wc -l 38 I'd much rather do a search for "PCI_VDEVICE.*INTEL"
Quoted 4 lines
Quoted 2 lines
I'd much rather use 'cscope' or 'ctags' than trying to remember regular expressions like the above.
Then it appears your original argument doesn't have much merit.
I'd rather people not use PCI_VDEVICE() as then you can't easily scan for the PCI_VENDOR_ID_FOO value usage with a tool like cscope, so I think my original point stands.
nevermind.
Am Donnerstag 15 Juli 2010 22:45:40 schrieb Greg KH:
Quoted 4 lines
The main reason I hate this macro, is that it now makes it almost impossible to grep for any users of the
PCI_VENDOR_DIGIpci vendor id. I much prefer thePCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.
No problem ;)
Patches are just proposals - nothing else.
The only question that remains is, do you see any point in converting the patches to use PCI_DEVICE?
Since you have to address/set the .driver_data explicitly I guess there's no point in doing it.
It's
{ PCI_VENDOR_DIGI, PCI_DEVICE_XRJ, PCI_ANY_ID, PCI_ANY_ID, 0, 0, brd_xrj }, vs.
{ PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR), .driver_data=brd_xrj },
and I guess it isn't really an improvement.
Maybe there should be a version of PCI_DEVICE that addresses this issue? But I have to admit, something like:
{ PCI_DEVICE_DD(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR), brd_xrj }, doesn't look that much better.
Thanks,
Peter
Quoted 14 lines · Peter H?we
Am Donnerstag 15 Juli 2010 22:45:40 schrieb Greg KH:
Quoted 4 lines
The main reason I hate this macro, is that it now makes it almost impossible to grep for any users of the
PCI_VENDOR_DIGIpci vendor id. I much prefer thePCI_DEVICE()macro instead, and as such, I'm not willing to take any of these patches, sorry.No problem ;)
Patches are just proposals - nothing else.The only question that remains is, do you see any point in converting the patches to use
PCI_DEVICE?
Since you have to address/set the .driver_data explicitly I guess there's no point in doing it.
Quoted 5 lines
It's
{PCI_VENDOR_DIGI,PCI_DEVICE_XRJ,PCI_ANY_ID,PCI_ANY_ID, 0, 0,brd_xrj}, vs.
{PCI_DEVICE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR), .driver_data=brd_xrj },
and I guess it isn't really an improvement.
It's a bit nicer, yes. But only do it if you want to.
Quoted 4 lines
Maybe there should be a version of
PCI_DEVICEthat addresses this issue? But I have to admit, something like:
{PCI_DEVICE_DD(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR),brd_xrj}, doesn't look that much better.
You can do:
{ PCI_DEVICE_TABLE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR), brd_xrj },
just fine today, so do that if you want to.
thanks,
greg k-h
Am Freitag 16 Juli 2010 06:28:45 schrieb Greg KH:
Quoted 8 lines
Quoted 4 lines
Maybe there should be a version of
PCI_DEVICEthat addresses this issue? But I have to admit, something like:
{PCI_DEVICE_DD(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR),brd_xrj}, doesn't look that much better.You can do:
{PCI_DEVICE_TABLE(PCI_VENDOR_ID_DIGI, PCI_DEVICE_XR),brd_xrj},
just fine today, so do that if you want to.
Hi Greg,
unfortunately I can't find the definition of this macro - can you perhaps pinpoint me to it? And maybe an example in the kernel?
Thanks,
Peter