Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: Staging: stlc45xx: convert config_interface to bss_info_changed, fixing a build error Staging: comedi: s626: use subvendor:subdevice ids for SAA7146 board Staging: prevent rtl8192su from crashing dev_ioctl in SIOCGIWNAME Staging: prevent rtl8187se from crashing dev_ioctl() in SIOCGIWNAME Staging: rtl8192su: convert to net_device_ops Staging: serqt_usb2: declare qt_open static in serqt_usb2 Staging: serqt_usb2: fix qt_close parameters in serqt_usb2 Staging: comedi: jr3_pci.c: add required includes Staging: meilhaus: add email address to TODO Staging: rspiusb: use NULL virtual address instead of a bogus one Staging: vt6655: compile fix Staging: rt2870: Add USB ID for Sitecom WL-608
This commit is contained in:
commit
4a390e07fc
14 changed files with 80 additions and 79 deletions
|
@ -45,6 +45,8 @@ Devices: [JR3] PCI force sensor board (jr3_pci)
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/ctype.h>
|
#include <linux/ctype.h>
|
||||||
#include <linux/firmware.h>
|
#include <linux/firmware.h>
|
||||||
|
#include <linux/jiffies.h>
|
||||||
|
#include <linux/timer.h>
|
||||||
#include "comedi_pci.h"
|
#include "comedi_pci.h"
|
||||||
#include "jr3_pci.h"
|
#include "jr3_pci.h"
|
||||||
|
|
||||||
|
|
|
@ -111,9 +111,13 @@ static const struct s626_board s626_boards[] = {
|
||||||
#define PCI_VENDOR_ID_S626 0x1131
|
#define PCI_VENDOR_ID_S626 0x1131
|
||||||
#define PCI_DEVICE_ID_S626 0x7146
|
#define PCI_DEVICE_ID_S626 0x7146
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For devices with vendor:device id == 0x1131:0x7146 you must specify
|
||||||
|
* also subvendor:subdevice ids, because otherwise it will conflict with
|
||||||
|
* Philips SAA7146 media/dvb based cards.
|
||||||
|
*/
|
||||||
static DEFINE_PCI_DEVICE_TABLE(s626_pci_table) = {
|
static DEFINE_PCI_DEVICE_TABLE(s626_pci_table) = {
|
||||||
{PCI_VENDOR_ID_S626, PCI_DEVICE_ID_S626, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
{PCI_VENDOR_ID_S626, PCI_DEVICE_ID_S626, 0x6000, 0x0272, 0, 0, 0},
|
||||||
0},
|
|
||||||
{0}
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -499,25 +503,26 @@ static int s626_attach(struct comedi_device *dev, struct comedi_devconfig *it)
|
||||||
resource_size_t resourceStart;
|
resource_size_t resourceStart;
|
||||||
dma_addr_t appdma;
|
dma_addr_t appdma;
|
||||||
struct comedi_subdevice *s;
|
struct comedi_subdevice *s;
|
||||||
struct pci_dev *pdev;
|
const struct pci_device_id *ids;
|
||||||
|
struct pci_dev *pdev = NULL;
|
||||||
|
|
||||||
if (alloc_private(dev, sizeof(struct s626_private)) < 0)
|
if (alloc_private(dev, sizeof(struct s626_private)) < 0)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
for (pdev = pci_get_device(PCI_VENDOR_ID_S626, PCI_DEVICE_ID_S626,
|
for (i = 0; i < (ARRAY_SIZE(s626_pci_table) - 1) && !pdev; i++) {
|
||||||
NULL); pdev != NULL;
|
ids = &s626_pci_table[i];
|
||||||
pdev = pci_get_device(PCI_VENDOR_ID_S626,
|
do {
|
||||||
PCI_DEVICE_ID_S626, pdev)) {
|
pdev = pci_get_subsys(ids->vendor, ids->device, ids->subvendor,
|
||||||
if (it->options[0] || it->options[1]) {
|
ids->subdevice, pdev);
|
||||||
if (pdev->bus->number == it->options[0] &&
|
|
||||||
PCI_SLOT(pdev->devfn) == it->options[1]) {
|
if ((it->options[0] || it->options[1]) && pdev) {
|
||||||
/* matches requested bus/slot */
|
/* matches requested bus/slot */
|
||||||
|
if (pdev->bus->number == it->options[0] &&
|
||||||
|
PCI_SLOT(pdev->devfn) == it->options[1])
|
||||||
|
break;
|
||||||
|
} else
|
||||||
break;
|
break;
|
||||||
}
|
} while (1);
|
||||||
} else {
|
|
||||||
/* no bus/slot specified */
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
devpriv->pdev = pdev;
|
devpriv->pdev = pdev;
|
||||||
|
|
||||||
|
|
|
@ -7,4 +7,4 @@ TODO:
|
||||||
- possible comedi merge
|
- possible comedi merge
|
||||||
|
|
||||||
Please send cleanup patches to Greg Kroah-Hartman <greg@kroah.com>
|
Please send cleanup patches to Greg Kroah-Hartman <greg@kroah.com>
|
||||||
and CC: David Kiliani <mail@davidkiliani.de>
|
and CC: David Kiliani <mail@davidkiliani.de> and Meilhaus Support <support@meilhaus.de>
|
||||||
|
|
|
@ -444,8 +444,7 @@ static void piusb_write_bulk_callback(struct urb *urb)
|
||||||
__func__, status);
|
__func__, status);
|
||||||
|
|
||||||
pdx->pendingWrite = 0;
|
pdx->pendingWrite = 0;
|
||||||
usb_buffer_free(urb->dev, urb->transfer_buffer_length,
|
kfree(urb->transfer_buffer);
|
||||||
urb->transfer_buffer, urb->transfer_dma);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int piusb_output(struct ioctl_struct *io, unsigned char *uBuf, int len,
|
int piusb_output(struct ioctl_struct *io, unsigned char *uBuf, int len,
|
||||||
|
@ -457,9 +456,7 @@ int piusb_output(struct ioctl_struct *io, unsigned char *uBuf, int len,
|
||||||
|
|
||||||
urb = usb_alloc_urb(0, GFP_KERNEL);
|
urb = usb_alloc_urb(0, GFP_KERNEL);
|
||||||
if (urb != NULL) {
|
if (urb != NULL) {
|
||||||
kbuf =
|
kbuf = kmalloc(len, GFP_KERNEL);
|
||||||
usb_buffer_alloc(pdx->udev, len, GFP_KERNEL,
|
|
||||||
&urb->transfer_dma);
|
|
||||||
if (!kbuf) {
|
if (!kbuf) {
|
||||||
dev_err(&pdx->udev->dev, "buffer_alloc failed\n");
|
dev_err(&pdx->udev->dev, "buffer_alloc failed\n");
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -470,7 +467,6 @@ int piusb_output(struct ioctl_struct *io, unsigned char *uBuf, int len,
|
||||||
}
|
}
|
||||||
usb_fill_bulk_urb(urb, pdx->udev, pdx->hEP[io->endpoint], kbuf,
|
usb_fill_bulk_urb(urb, pdx->udev, pdx->hEP[io->endpoint], kbuf,
|
||||||
len, piusb_write_bulk_callback, pdx);
|
len, piusb_write_bulk_callback, pdx);
|
||||||
urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
|
||||||
err = usb_submit_urb(urb, GFP_KERNEL);
|
err = usb_submit_urb(urb, GFP_KERNEL);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(&pdx->udev->dev,
|
dev_err(&pdx->udev->dev,
|
||||||
|
@ -641,7 +637,7 @@ static int MapUserBuffer(struct ioctl_struct *io, struct device_extension *pdx)
|
||||||
numPagesRequired =
|
numPagesRequired =
|
||||||
((uaddr & ~PAGE_MASK) + count + ~PAGE_MASK) >> PAGE_SHIFT;
|
((uaddr & ~PAGE_MASK) + count + ~PAGE_MASK) >> PAGE_SHIFT;
|
||||||
dbg("Number of pages needed = %d", numPagesRequired);
|
dbg("Number of pages needed = %d", numPagesRequired);
|
||||||
maplist_p = vmalloc(numPagesRequired * sizeof(struct page));
|
maplist_p = vmalloc(numPagesRequired * sizeof(struct page *));
|
||||||
if (!maplist_p) {
|
if (!maplist_p) {
|
||||||
dbg("Can't Allocate Memory for maplist_p");
|
dbg("Can't Allocate Memory for maplist_p");
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -712,9 +708,7 @@ static int MapUserBuffer(struct ioctl_struct *io, struct device_extension *pdx)
|
||||||
usb_fill_bulk_urb(pdx->PixelUrb[frameInfo][i],
|
usb_fill_bulk_urb(pdx->PixelUrb[frameInfo][i],
|
||||||
pdx->udev,
|
pdx->udev,
|
||||||
epAddr,
|
epAddr,
|
||||||
(dma_addr_t *) sg_dma_address(&pdx->
|
NULL, // non-DMA HC? buy a better hardware
|
||||||
sgl[frameInfo]
|
|
||||||
[i]),
|
|
||||||
sg_dma_len(&pdx->sgl[frameInfo][i]),
|
sg_dma_len(&pdx->sgl[frameInfo][i]),
|
||||||
piusb_readPIXEL_callback, (void *)pdx);
|
piusb_readPIXEL_callback, (void *)pdx);
|
||||||
pdx->PixelUrb[frameInfo][i]->transfer_dma =
|
pdx->PixelUrb[frameInfo][i]->transfer_dma =
|
||||||
|
|
|
@ -89,6 +89,7 @@
|
||||||
{USB_DEVICE(0x0DF6,0x002C)}, /* Sitecom */ \
|
{USB_DEVICE(0x0DF6,0x002C)}, /* Sitecom */ \
|
||||||
{USB_DEVICE(0x0DF6,0x002D)}, /* Sitecom */ \
|
{USB_DEVICE(0x0DF6,0x002D)}, /* Sitecom */ \
|
||||||
{USB_DEVICE(0x0DF6,0x0039)}, /* Sitecom */ \
|
{USB_DEVICE(0x0DF6,0x0039)}, /* Sitecom */ \
|
||||||
|
{USB_DEVICE(0x0DF6,0x003F)}, /* Sitecom WL-608 */ \
|
||||||
{USB_DEVICE(0x14B2,0x3C06)}, /* Conceptronic */ \
|
{USB_DEVICE(0x14B2,0x3C06)}, /* Conceptronic */ \
|
||||||
{USB_DEVICE(0x14B2,0x3C28)}, /* Conceptronic */ \
|
{USB_DEVICE(0x14B2,0x3C28)}, /* Conceptronic */ \
|
||||||
{USB_DEVICE(0x2019,0xED06)}, /* Planex Communications, Inc. */ \
|
{USB_DEVICE(0x2019,0xED06)}, /* Planex Communications, Inc. */ \
|
||||||
|
|
|
@ -461,19 +461,19 @@ int ieee80211_wx_get_name(struct ieee80211_device *ieee,
|
||||||
struct iw_request_info *info,
|
struct iw_request_info *info,
|
||||||
union iwreq_data *wrqu, char *extra)
|
union iwreq_data *wrqu, char *extra)
|
||||||
{
|
{
|
||||||
strcpy(wrqu->name, "802.11");
|
strlcpy(wrqu->name, "802.11", IFNAMSIZ);
|
||||||
if(ieee->modulation & IEEE80211_CCK_MODULATION){
|
if(ieee->modulation & IEEE80211_CCK_MODULATION){
|
||||||
strcat(wrqu->name, "b");
|
strlcat(wrqu->name, "b", IFNAMSIZ);
|
||||||
if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
||||||
strcat(wrqu->name, "/g");
|
strlcat(wrqu->name, "/g", IFNAMSIZ);
|
||||||
}else if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
}else if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
||||||
strcat(wrqu->name, "g");
|
strlcat(wrqu->name, "g", IFNAMSIZ);
|
||||||
|
|
||||||
if((ieee->state == IEEE80211_LINKED) ||
|
if((ieee->state == IEEE80211_LINKED) ||
|
||||||
(ieee->state == IEEE80211_LINKED_SCANNING))
|
(ieee->state == IEEE80211_LINKED_SCANNING))
|
||||||
strcat(wrqu->name," linked");
|
strlcat(wrqu->name," link", IFNAMSIZ);
|
||||||
else if(ieee->state != IEEE80211_NOLINK)
|
else if(ieee->state != IEEE80211_NOLINK)
|
||||||
strcat(wrqu->name," link..");
|
strlcat(wrqu->name," .....", IFNAMSIZ);
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
config RTL8192SU
|
config RTL8192SU
|
||||||
tristate "RealTek RTL8192SU Wireless LAN NIC driver"
|
tristate "RealTek RTL8192SU Wireless LAN NIC driver"
|
||||||
depends on PCI
|
depends on PCI
|
||||||
depends on WIRELESS_EXT && COMPAT_NET_DEV_OPS
|
depends on WIRELESS_EXT
|
||||||
default N
|
default N
|
||||||
---help---
|
---help---
|
||||||
|
|
|
@ -118,7 +118,6 @@ struct net_device *alloc_ieee80211(int sizeof_priv)
|
||||||
#else
|
#else
|
||||||
ieee = (struct ieee80211_device *)dev->priv;
|
ieee = (struct ieee80211_device *)dev->priv;
|
||||||
#endif
|
#endif
|
||||||
dev->hard_start_xmit = ieee80211_xmit;
|
|
||||||
|
|
||||||
memset(ieee, 0, sizeof(struct ieee80211_device)+sizeof_priv);
|
memset(ieee, 0, sizeof(struct ieee80211_device)+sizeof_priv);
|
||||||
ieee->dev = dev;
|
ieee->dev = dev;
|
||||||
|
|
|
@ -548,21 +548,21 @@ int ieee80211_wx_get_name(struct ieee80211_device *ieee,
|
||||||
struct iw_request_info *info,
|
struct iw_request_info *info,
|
||||||
union iwreq_data *wrqu, char *extra)
|
union iwreq_data *wrqu, char *extra)
|
||||||
{
|
{
|
||||||
strcpy(wrqu->name, "802.11");
|
strlcpy(wrqu->name, "802.11", IFNAMSIZ);
|
||||||
if(ieee->modulation & IEEE80211_CCK_MODULATION){
|
if(ieee->modulation & IEEE80211_CCK_MODULATION){
|
||||||
strcat(wrqu->name, "b");
|
strlcat(wrqu->name, "b", IFNAMSIZ);
|
||||||
if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
||||||
strcat(wrqu->name, "/g");
|
strlcat(wrqu->name, "/g", IFNAMSIZ);
|
||||||
}else if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
}else if(ieee->modulation & IEEE80211_OFDM_MODULATION)
|
||||||
strcat(wrqu->name, "g");
|
strlcat(wrqu->name, "g", IFNAMSIZ);
|
||||||
if (ieee->mode & (IEEE_N_24G | IEEE_N_5G))
|
if (ieee->mode & (IEEE_N_24G | IEEE_N_5G))
|
||||||
strcat(wrqu->name, "/n");
|
strlcat(wrqu->name, "/n", IFNAMSIZ);
|
||||||
|
|
||||||
if((ieee->state == IEEE80211_LINKED) ||
|
if((ieee->state == IEEE80211_LINKED) ||
|
||||||
(ieee->state == IEEE80211_LINKED_SCANNING))
|
(ieee->state == IEEE80211_LINKED_SCANNING))
|
||||||
strcat(wrqu->name," linked");
|
strlcat(wrqu->name, " link", IFNAMSIZ);
|
||||||
else if(ieee->state != IEEE80211_NOLINK)
|
else if(ieee->state != IEEE80211_NOLINK)
|
||||||
strcat(wrqu->name," link..");
|
strlcat(wrqu->name, " .....", IFNAMSIZ);
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -12132,6 +12132,19 @@ static void HalUsbSetQueuePipeMapping8192SUsb(struct usb_interface *intf, struct
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static const struct net_device_ops rtl8192_netdev_ops = {
|
||||||
|
.ndo_open = rtl8192_open,
|
||||||
|
.ndo_stop = rtl8192_close,
|
||||||
|
.ndo_get_stats = rtl8192_stats,
|
||||||
|
.ndo_tx_timeout = tx_timeout,
|
||||||
|
.ndo_do_ioctl = rtl8192_ioctl,
|
||||||
|
.ndo_set_multicast_list = r8192_set_multicast,
|
||||||
|
.ndo_set_mac_address = r8192_set_mac_adr,
|
||||||
|
.ndo_validate_addr = eth_validate_addr,
|
||||||
|
.ndo_change_mtu = eth_change_mtu,
|
||||||
|
.ndo_start_xmit = ieee80211_xmit,
|
||||||
|
};
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
|
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
|
||||||
static int __devinit rtl8192_usb_probe(struct usb_interface *intf,
|
static int __devinit rtl8192_usb_probe(struct usb_interface *intf,
|
||||||
const struct usb_device_id *id)
|
const struct usb_device_id *id)
|
||||||
|
@ -12186,15 +12199,7 @@ static void * __devinit rtl8192_usb_probe(struct usb_device *udev,
|
||||||
priv->ops = &rtl8192u_ops;
|
priv->ops = &rtl8192u_ops;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
dev->open = rtl8192_open;
|
dev->netdev_ops = &rtl8192_netdev_ops;
|
||||||
dev->stop = rtl8192_close;
|
|
||||||
//dev->hard_start_xmit = rtl8192_8023_hard_start_xmit;
|
|
||||||
dev->tx_timeout = tx_timeout;
|
|
||||||
//dev->wireless_handlers = &r8192_wx_handlers_def;
|
|
||||||
dev->do_ioctl = rtl8192_ioctl;
|
|
||||||
dev->set_multicast_list = r8192_set_multicast;
|
|
||||||
dev->set_mac_address = r8192_set_mac_adr;
|
|
||||||
dev->get_stats = rtl8192_stats;
|
|
||||||
|
|
||||||
//DMESG("Oops: i'm coming\n");
|
//DMESG("Oops: i'm coming\n");
|
||||||
#if WIRELESS_EXT >= 12
|
#if WIRELESS_EXT >= 12
|
||||||
|
|
|
@ -35,7 +35,9 @@ int rtl8192U_suspend(struct usb_interface *intf, pm_message_t state)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
dev->stop(dev);
|
if (dev->netdev_ops->ndo_stop)
|
||||||
|
dev->netdev_ops->ndo_stop(dev);
|
||||||
|
|
||||||
mdelay(10);
|
mdelay(10);
|
||||||
|
|
||||||
netif_device_detach(dev);
|
netif_device_detach(dev);
|
||||||
|
@ -61,7 +63,9 @@ int rtl8192U_resume (struct usb_interface *intf)
|
||||||
}
|
}
|
||||||
|
|
||||||
netif_device_attach(dev);
|
netif_device_attach(dev);
|
||||||
dev->open(dev);
|
|
||||||
|
if (dev->netdev_ops->ndo_open)
|
||||||
|
dev->netdev_ops->ndo_open(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -866,7 +866,7 @@ static void qt_release(struct usb_serial *serial)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int qt_open(struct tty_struct *tty,
|
static int qt_open(struct tty_struct *tty,
|
||||||
struct usb_serial_port *port, struct file *filp)
|
struct usb_serial_port *port, struct file *filp)
|
||||||
{
|
{
|
||||||
struct usb_serial *serial;
|
struct usb_serial *serial;
|
||||||
|
@ -1041,17 +1041,19 @@ static void qt_block_until_empty(struct tty_struct *tty,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qt_close(struct tty_struct *tty, struct usb_serial_port *port,
|
static void qt_close( struct usb_serial_port *port)
|
||||||
struct file *filp)
|
|
||||||
{
|
{
|
||||||
struct usb_serial *serial = port->serial;
|
struct usb_serial *serial = port->serial;
|
||||||
struct quatech_port *qt_port;
|
struct quatech_port *qt_port;
|
||||||
struct quatech_port *port0;
|
struct quatech_port *port0;
|
||||||
|
struct tty_struct *tty;
|
||||||
int status;
|
int status;
|
||||||
unsigned int index;
|
unsigned int index;
|
||||||
status = 0;
|
status = 0;
|
||||||
|
|
||||||
dbg("%s - port %d\n", __func__, port->number);
|
dbg("%s - port %d\n", __func__, port->number);
|
||||||
|
|
||||||
|
tty = tty_port_tty_get(&port->port);
|
||||||
index = tty->index - serial->minor;
|
index = tty->index - serial->minor;
|
||||||
|
|
||||||
qt_port = qt_get_port_private(port);
|
qt_port = qt_get_port_private(port);
|
||||||
|
|
|
@ -2235,24 +2235,6 @@ static void stlc45xx_op_remove_interface(struct ieee80211_hw *hw,
|
||||||
stlc45xx_debug(DEBUG_FUNC, "%s", __func__);
|
stlc45xx_debug(DEBUG_FUNC, "%s", __func__);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int stlc45xx_op_config_interface(struct ieee80211_hw *hw,
|
|
||||||
struct ieee80211_vif *vif,
|
|
||||||
struct ieee80211_if_conf *conf)
|
|
||||||
{
|
|
||||||
struct stlc45xx *stlc = hw->priv;
|
|
||||||
|
|
||||||
stlc45xx_debug(DEBUG_FUNC, "%s", __func__);
|
|
||||||
|
|
||||||
mutex_lock(&stlc->mutex);
|
|
||||||
|
|
||||||
memcpy(stlc->bssid, conf->bssid, ETH_ALEN);
|
|
||||||
stlc45xx_tx_setup(stlc);
|
|
||||||
|
|
||||||
mutex_unlock(&stlc->mutex);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int stlc45xx_op_config(struct ieee80211_hw *hw, u32 changed)
|
static int stlc45xx_op_config(struct ieee80211_hw *hw, u32 changed)
|
||||||
{
|
{
|
||||||
struct stlc45xx *stlc = hw->priv;
|
struct stlc45xx *stlc = hw->priv;
|
||||||
|
@ -2295,6 +2277,14 @@ static void stlc45xx_op_bss_info_changed(struct ieee80211_hw *hw,
|
||||||
{
|
{
|
||||||
struct stlc45xx *stlc = hw->priv;
|
struct stlc45xx *stlc = hw->priv;
|
||||||
|
|
||||||
|
stlc45xx_debug(DEBUG_FUNC, "%s", __func__);
|
||||||
|
mutex_lock(&stlc->mutex);
|
||||||
|
|
||||||
|
memcpy(stlc->bssid, info->bssid, ETH_ALEN);
|
||||||
|
stlc45xx_tx_setup(stlc);
|
||||||
|
|
||||||
|
mutex_unlock(&stlc->mutex);
|
||||||
|
|
||||||
if (changed & BSS_CHANGED_ASSOC) {
|
if (changed & BSS_CHANGED_ASSOC) {
|
||||||
stlc->associated = info->assoc;
|
stlc->associated = info->assoc;
|
||||||
if (info->assoc)
|
if (info->assoc)
|
||||||
|
@ -2357,7 +2347,6 @@ static const struct ieee80211_ops stlc45xx_ops = {
|
||||||
.add_interface = stlc45xx_op_add_interface,
|
.add_interface = stlc45xx_op_add_interface,
|
||||||
.remove_interface = stlc45xx_op_remove_interface,
|
.remove_interface = stlc45xx_op_remove_interface,
|
||||||
.config = stlc45xx_op_config,
|
.config = stlc45xx_op_config,
|
||||||
.config_interface = stlc45xx_op_config_interface,
|
|
||||||
.configure_filter = stlc45xx_op_configure_filter,
|
.configure_filter = stlc45xx_op_configure_filter,
|
||||||
.tx = stlc45xx_op_tx,
|
.tx = stlc45xx_op_tx,
|
||||||
.bss_info_changed = stlc45xx_op_bss_info_changed,
|
.bss_info_changed = stlc45xx_op_bss_info_changed,
|
||||||
|
|
|
@ -344,7 +344,7 @@ static CHIP_INFO chip_info_table[]= {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct pci_device_id device_id_table[] __devinitdata = {
|
static struct pci_device_id device_id_table[] __devinitdata = {
|
||||||
{ 0x1106, 0x3253, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (int)&chip_info_table[0]},
|
{ 0x1106, 0x3253, PCI_ANY_ID, PCI_ANY_ID, 0, 0, (long)&chip_info_table[0]},
|
||||||
{ 0, }
|
{ 0, }
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -369,7 +369,7 @@ static int device_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
static int device_notify_reboot(struct notifier_block *, unsigned long event, void *ptr);
|
static int device_notify_reboot(struct notifier_block *, unsigned long event, void *ptr);
|
||||||
static int viawget_suspend(struct pci_dev *pcid, u32 state);
|
static int viawget_suspend(struct pci_dev *pcid, pm_message_t state);
|
||||||
static int viawget_resume(struct pci_dev *pcid);
|
static int viawget_resume(struct pci_dev *pcid);
|
||||||
struct notifier_block device_notifier = {
|
struct notifier_block device_notifier = {
|
||||||
notifier_call: device_notify_reboot,
|
notifier_call: device_notify_reboot,
|
||||||
|
@ -3941,7 +3941,7 @@ device_notify_reboot(struct notifier_block *nb, unsigned long event, void *p)
|
||||||
while ((pdev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) {
|
while ((pdev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) {
|
||||||
if(pci_dev_driver(pdev) == &device_driver) {
|
if(pci_dev_driver(pdev) == &device_driver) {
|
||||||
if (pci_get_drvdata(pdev))
|
if (pci_get_drvdata(pdev))
|
||||||
viawget_suspend(pdev, 3);
|
viawget_suspend(pdev, PMSG_HIBERNATE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3949,7 +3949,7 @@ device_notify_reboot(struct notifier_block *nb, unsigned long event, void *p)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
viawget_suspend(struct pci_dev *pcid, u32 state)
|
viawget_suspend(struct pci_dev *pcid, pm_message_t state)
|
||||||
{
|
{
|
||||||
int power_status; // to silence the compiler
|
int power_status; // to silence the compiler
|
||||||
|
|
||||||
|
@ -3971,7 +3971,7 @@ viawget_suspend(struct pci_dev *pcid, u32 state)
|
||||||
memset(pMgmt->abyCurrBSSID, 0, 6);
|
memset(pMgmt->abyCurrBSSID, 0, 6);
|
||||||
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
pMgmt->eCurrState = WMAC_STATE_IDLE;
|
||||||
pci_disable_device(pcid);
|
pci_disable_device(pcid);
|
||||||
power_status = pci_set_power_state(pcid, state);
|
power_status = pci_set_power_state(pcid, pci_choose_state(pcid, state));
|
||||||
spin_unlock_irq(&pDevice->lock);
|
spin_unlock_irq(&pDevice->lock);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue