2019-05-23 12:14:43 +03:00
// SPDX-License-Identifier: GPL-2.0-or-later
2005-04-17 02:20:36 +04:00
/*** -*- linux-c -*- **********************************************************
Driver for Atmel at76c502 at76c504 and at76c506 wireless cards .
Copyright 2004 Simon Kelley .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# include <linux/pci.h>
# include <linux/kernel.h>
# include <linux/module.h>
# include <linux/netdevice.h>
# include "atmel.h"
MODULE_AUTHOR ( " Simon Kelley " ) ;
MODULE_DESCRIPTION ( " Support for Atmel at76c50x 802.11 wireless ethernet cards. " ) ;
MODULE_LICENSE ( " GPL " ) ;
2014-08-08 17:56:03 +04:00
static const struct pci_device_id card_ids [ ] = {
2005-04-17 02:20:36 +04:00
{ 0x1114 , 0x0506 , PCI_ANY_ID , PCI_ANY_ID } ,
{ 0 , }
} ;
MODULE_DEVICE_TABLE ( pci , card_ids ) ;
static int atmel_pci_probe ( struct pci_dev * , const struct pci_device_id * ) ;
static void atmel_pci_remove ( struct pci_dev * ) ;
static struct pci_driver atmel_driver = {
. name = " atmel " ,
. id_table = card_ids ,
. probe = atmel_pci_probe ,
2012-12-03 18:56:29 +04:00
. remove = atmel_pci_remove ,
2005-04-17 02:20:36 +04:00
} ;
2012-12-03 18:56:29 +04:00
static int atmel_pci_probe ( struct pci_dev * pdev ,
2005-04-17 02:20:36 +04:00
const struct pci_device_id * pent )
{
struct net_device * dev ;
2006-10-08 08:14:30 +04:00
2005-04-17 02:20:36 +04:00
if ( pci_enable_device ( pdev ) )
return - ENODEV ;
2006-10-08 08:14:30 +04:00
2005-04-17 02:20:36 +04:00
pci_set_master ( pdev ) ;
2006-10-08 08:14:30 +04:00
dev = init_atmel_card ( pdev - > irq , pdev - > resource [ 1 ] . start ,
2005-04-17 02:20:36 +04:00
ATMEL_FW_TYPE_506 ,
& pdev - > dev , NULL , NULL ) ;
2018-05-23 13:34:45 +03:00
if ( ! dev ) {
pci_disable_device ( pdev ) ;
2005-04-17 02:20:36 +04:00
return - ENODEV ;
2018-05-23 13:34:45 +03:00
}
2006-10-08 08:14:30 +04:00
2005-04-17 02:20:36 +04:00
pci_set_drvdata ( pdev , dev ) ;
return 0 ;
}
2012-12-03 18:56:29 +04:00
static void atmel_pci_remove ( struct pci_dev * pdev )
2005-04-17 02:20:36 +04:00
{
2005-10-30 18:50:15 +03:00
stop_atmel_card ( pci_get_drvdata ( pdev ) ) ;
2005-04-17 02:20:36 +04:00
}
2012-04-14 06:38:36 +04:00
module_pci_driver ( atmel_driver ) ;