| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 1 | /* | 
 | 2 |  * Broadcom 43xx PCI-SSB bridge module | 
 | 3 |  * | 
| Joe Perches | b8c268d | 2008-02-03 17:30:25 +0200 | [diff] [blame] | 4 |  * This technically is a separate PCI driver module, but | 
| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 5 |  * because of its small size we include it in the SSB core | 
 | 6 |  * instead of creating a standalone module. | 
 | 7 |  * | 
 | 8 |  * Copyright 2007  Michael Buesch <mb@bu3sch.de> | 
 | 9 |  * | 
 | 10 |  * Licensed under the GNU/GPL. See COPYING for details. | 
 | 11 |  */ | 
 | 12 |  | 
 | 13 | #include <linux/pci.h> | 
 | 14 | #include <linux/ssb/ssb.h> | 
 | 15 |  | 
| Michael Buesch | 6b9bafe | 2007-09-19 18:55:12 +0200 | [diff] [blame] | 16 | #include "ssb_private.h" | 
 | 17 |  | 
| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 18 |  | 
 | 19 | static const struct pci_device_id b43_pci_bridge_tbl[] = { | 
 | 20 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) }, | 
| Michael Buesch | dd970e4 | 2009-03-24 10:36:48 +0100 | [diff] [blame] | 21 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4306) }, | 
| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 22 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4307) }, | 
 | 23 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4311) }, | 
 | 24 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4312) }, | 
| Michael Buesch | 6b1c7c6 | 2008-12-25 00:39:28 +0100 | [diff] [blame] | 25 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4315) }, | 
| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 26 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4318) }, | 
| Daniel Klaffenbach | 1d8638d | 2010-11-19 21:25:21 -0600 | [diff] [blame] | 27 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BCM_GVC,  0x4318) }, | 
| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 28 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4319) }, | 
 | 29 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4320) }, | 
 | 30 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4321) }, | 
 | 31 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) }, | 
 | 32 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4325) }, | 
| Larry Finger | c272ef4 | 2007-11-09 16:56:25 -0600 | [diff] [blame] | 33 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4328) }, | 
| Michael Buesch | ca08a96 | 2008-01-03 19:03:09 +0100 | [diff] [blame] | 34 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4329) }, | 
| Johannes Berg | 92d6128 | 2008-12-24 12:44:09 +0100 | [diff] [blame] | 35 | 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x432b) }, | 
| Michael Buesch | 61e115a | 2007-09-18 15:12:50 -0400 | [diff] [blame] | 36 | 	{ 0, }, | 
 | 37 | }; | 
 | 38 | MODULE_DEVICE_TABLE(pci, b43_pci_bridge_tbl); | 
 | 39 |  | 
 | 40 | static struct pci_driver b43_pci_bridge_driver = { | 
 | 41 | 	.name = "b43-pci-bridge", | 
 | 42 | 	.id_table = b43_pci_bridge_tbl, | 
 | 43 | }; | 
 | 44 |  | 
 | 45 |  | 
 | 46 | int __init b43_pci_ssb_bridge_init(void) | 
 | 47 | { | 
 | 48 | 	return ssb_pcihost_register(&b43_pci_bridge_driver); | 
 | 49 | } | 
 | 50 |  | 
 | 51 | void __exit b43_pci_ssb_bridge_exit(void) | 
 | 52 | { | 
 | 53 | 	ssb_pcihost_unregister(&b43_pci_bridge_driver); | 
 | 54 | } |