From: Lyude Paul <lyude@redhat.com>
To: Guenter Roeck <linux@roeck-us.net>, Wim Van Sebroeck <wim@iguana.be>
Cc: linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org,
"Zoltán Böszörményi" <zboszor@pr.hu>
Subject: Re: [06/12] watchdog: sp5100_tco: Match PCI device early
Date: Tue, 16 Jan 2018 14:58:15 -0500 [thread overview]
Message-ID: <1516132695.18904.13.camel@redhat.com> (raw)
In-Reply-To: <1514149457-20273-7-git-send-email-linux@roeck-us.net>
Reviewed-by: Lyude Paul <lyude@redhat.com>
On Sun, 2017-12-24 at 13:04 -0800, Guenter Roeck wrote:
> Match PCI device in module init function, not in the probe function.
> It is pointless trying to probe if we can determine early that the device
> is not supported.
>
> Cc: Zoltán Böszörményi <zboszor@pr.hu>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> drivers/watchdog/sp5100_tco.c | 66 ++++++++++++++++++++------------------
> -----
> 1 file changed, 31 insertions(+), 35 deletions(-)
>
> diff --git a/drivers/watchdog/sp5100_tco.c b/drivers/watchdog/sp5100_tco.c
> index 5a13ab483c50..5868c6b6bf17 100644
> --- a/drivers/watchdog/sp5100_tco.c
> +++ b/drivers/watchdog/sp5100_tco.c
> @@ -312,25 +312,6 @@ static struct miscdevice sp5100_tco_miscdev = {
> .fops = &sp5100_tco_fops,
> };
>
> -/*
> - * Data for PCI driver interface
> - *
> - * This data only exists for exporting the supported
> - * PCI ids via MODULE_DEVICE_TABLE. We do not actually
> - * register a pci_driver, because someone else might
> - * want to register another driver on the same PCI id.
> - */
> -static const struct pci_device_id sp5100_tco_pci_tbl[] = {
> - { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, PCI_ANY_ID,
> - PCI_ANY_ID, },
> - { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, PCI_ANY_ID,
> - PCI_ANY_ID, },
> - { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, PCI_ANY_ID,
> - PCI_ANY_ID, },
> - { 0, }, /* End of list */
> -};
> -MODULE_DEVICE_TABLE(pci, sp5100_tco_pci_tbl);
> -
> static u8 sp5100_tco_read_pm_reg32(u8 index)
> {
> u32 val = 0;
> @@ -347,27 +328,11 @@ static u8 sp5100_tco_read_pm_reg32(u8 index)
> */
> static int sp5100_tco_setupdevice(void)
> {
> - struct pci_dev *dev = NULL;
> const char *dev_name = NULL;
> u32 val;
> u8 base_addr;
> int ret;
>
> - /* Match the PCI device */
> - for_each_pci_dev(dev) {
> - if (pci_match_id(sp5100_tco_pci_tbl, dev) != NULL) {
> - sp5100_tco_pci = dev;
> - break;
> - }
> - }
> -
> - if (!sp5100_tco_pci)
> - return -ENODEV;
> -
> - pr_info("PCI Vendor ID: 0x%x, Device ID: 0x%x, Revision ID:
> 0x%x\n",
> - sp5100_tco_pci->vendor, sp5100_tco_pci->device,
> - sp5100_tco_pci->revision);
> -
> /*
> * Determine type of southbridge chipset.
> */
> @@ -557,10 +522,41 @@ static struct platform_driver sp5100_tco_driver = {
> },
> };
>
> +/*
> + * Data for PCI driver interface
> + *
> + * This data only exists for exporting the supported
> + * PCI ids via MODULE_DEVICE_TABLE. We do not actually
> + * register a pci_driver, because someone else might
> + * want to register another driver on the same PCI id.
> + */
> +static const struct pci_device_id sp5100_tco_pci_tbl[] = {
> + { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, PCI_ANY_ID,
> + PCI_ANY_ID, },
> + { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_HUDSON2_SMBUS, PCI_ANY_ID,
> + PCI_ANY_ID, },
> + { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_KERNCZ_SMBUS, PCI_ANY_ID,
> + PCI_ANY_ID, },
> + { 0, }, /* End of list */
> +};
> +MODULE_DEVICE_TABLE(pci, sp5100_tco_pci_tbl);
> +
> static int __init sp5100_tco_init_module(void)
> {
> + struct pci_dev *dev = NULL;
> int err;
>
> + /* Match the PCI device */
> + for_each_pci_dev(dev) {
> + if (pci_match_id(sp5100_tco_pci_tbl, dev) != NULL) {
> + sp5100_tco_pci = dev;
> + break;
> + }
> + }
> +
> + if (!sp5100_tco_pci)
> + return -ENODEV;
> +
> pr_info("SP5100/SB800 TCO WatchDog Timer Driver v%s\n",
> TCO_VERSION);
>
> err = platform_driver_register(&sp5100_tco_driver);
--
Cheers,
Lyude Paul
next prev parent reply other threads:[~2018-01-16 19:58 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-24 21:04 [PATCH 00/12] watchdog: sp5100_tco: Various improvements Guenter Roeck
2017-12-24 21:04 ` [PATCH 01/12] watchdog: sp5100_tco: Always use SP5100_IO_PM_{INDEX_REG,DATA_REG} Guenter Roeck
2017-12-24 21:04 ` [PATCH 02/12] watchdog: sp5100_tco: Fix watchdog disable bit Guenter Roeck
2017-12-24 21:04 ` [PATCH 03/12] watchdog: sp5100_tco: Use request_muxed_region where possible Guenter Roeck
2018-01-16 19:44 ` [03/12] " Lyude Paul
2018-01-16 20:16 ` Guenter Roeck
2017-12-24 21:04 ` [PATCH 04/12] watchdog: sp5100_tco: Use standard error codes Guenter Roeck
2018-01-16 19:46 ` [04/12] " Lyude Paul
2017-12-24 21:04 ` [PATCH 05/12] watchdog: sp5100_tco: Clean up sp5100_tco_setupdevice Guenter Roeck
2018-01-16 19:55 ` [05/12] " Lyude Paul
2018-01-16 20:22 ` Guenter Roeck
2018-01-17 1:28 ` Guenter Roeck
2017-12-24 21:04 ` [PATCH 06/12] watchdog: sp5100_tco: Match PCI device early Guenter Roeck
2018-01-16 19:58 ` Lyude Paul [this message]
2017-12-24 21:04 ` [PATCH 07/12] watchdog: sp5100_tco: Use dev_ print functions where possible Guenter Roeck
2018-01-16 20:00 ` [07/12] " Lyude Paul
2017-12-24 21:04 ` [PATCH 08/12] watchdog: sp5100_tco: Clean up function and variable names Guenter Roeck
2018-01-16 20:05 ` [08/12] " Lyude Paul
2017-12-24 21:04 ` [PATCH 09/12] watchdog: sp5100_tco: Convert to use watchdog subsystem Guenter Roeck
2017-12-24 21:04 ` [PATCH 10/12] watchdog: sp5100_tco: Use bit operations Guenter Roeck
2017-12-24 21:04 ` [PATCH 11/12] watchdog: sp5100-tco: Abort if watchdog is disabled by hardware Guenter Roeck
2018-01-09 22:58 ` [11/12] " Lyude Paul
2018-01-09 23:37 ` Guenter Roeck
2018-01-09 23:58 ` Gabriel C
2018-01-10 0:05 ` Guenter Roeck
2018-01-10 1:26 ` Gabriel C
2018-01-10 2:09 ` Guenter Roeck
2018-01-10 2:41 ` Gabriel C
2018-01-10 5:02 ` Guenter Roeck
2018-01-10 0:04 ` Lyude Paul
2018-01-10 0:11 ` Guenter Roeck
2018-01-10 0:30 ` Lyude Paul
2017-12-24 21:04 ` [PATCH 12/12] watchdog: sp5100_tco: Add support for recent FCH versions Guenter Roeck
2018-01-04 12:01 ` Boszormenyi Zoltan
2018-01-04 19:21 ` Guenter Roeck
2018-01-10 8:34 ` Boszormenyi Zoltan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1516132695.18904.13.camel@redhat.com \
--to=lyude@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=wim@iguana.be \
--cc=zboszor@pr.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.