2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-19 16:14:13 +08:00

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: comedi: David doesn't want to get comedi patches
  Staging: rtl8187se: Fix compilation warnings and procfs directory leak
  Staging: rt2870: new device id
  Staging: w35und: unregister device from the ieee80211 stack upon ->disconnect()
This commit is contained in:
Linus Torvalds 2009-05-10 10:49:53 -07:00
commit a4d7749be5
5 changed files with 17 additions and 42 deletions

View File

@ -11,4 +11,3 @@ Please send patches to Greg Kroah-Hartman <greg@kroah.com> and
copy: copy:
Ian Abbott <abbotti@mev.co.uk> Ian Abbott <abbotti@mev.co.uk>
Frank Mori Hess <fmhess@users.sourceforge.net> Frank Mori Hess <fmhess@users.sourceforge.net>
David Schleef <ds@schleef.org>

View File

@ -145,6 +145,7 @@
{USB_DEVICE(0x0789,0x0162)}, /* Logitec */ \ {USB_DEVICE(0x0789,0x0162)}, /* Logitec */ \
{USB_DEVICE(0x0789,0x0163)}, /* Logitec */ \ {USB_DEVICE(0x0789,0x0163)}, /* Logitec */ \
{USB_DEVICE(0x0789,0x0164)}, /* Logitec */ \ {USB_DEVICE(0x0789,0x0164)}, /* Logitec */ \
{USB_DEVICE(0x7392,0x7717)}, /* Edimax */ \
{ }/* Terminating entry */ \ { }/* Terminating entry */ \
} }

View File

@ -19,7 +19,7 @@
#define R8180H #define R8180H
#define RTL8180_MODULE_NAME "rtl8180" #define RTL8180_MODULE_NAME "r8180"
#define DMESG(x,a...) printk(KERN_INFO RTL8180_MODULE_NAME ": " x "\n", ## a) #define DMESG(x,a...) printk(KERN_INFO RTL8180_MODULE_NAME ": " x "\n", ## a)
#define DMESGW(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": WW:" x "\n", ## a) #define DMESGW(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": WW:" x "\n", ## a)
#define DMESGE(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": EE:" x "\n", ## a) #define DMESGE(x,a...) printk(KERN_WARNING RTL8180_MODULE_NAME ": EE:" x "\n", ## a)

View File

@ -640,11 +640,9 @@ void rtl8180_proc_init_one(struct net_device *dev)
{ {
struct proc_dir_entry *e; struct proc_dir_entry *e;
struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev); struct r8180_priv *priv = (struct r8180_priv *)ieee80211_priv(dev);
priv->dir_dev = create_proc_entry(dev->name, priv->dir_dev = rtl8180_proc;
S_IFDIR | S_IRUGO | S_IXUGO,
rtl8180_proc);
if (!priv->dir_dev) { if (!priv->dir_dev) {
DMESGE("Unable to initialize /proc/net/rtl8180/%s\n", DMESGE("Unable to initialize /proc/net/r8180/%s\n",
dev->name); dev->name);
return; return;
} }
@ -654,7 +652,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
if (!e) { if (!e) {
DMESGE("Unable to initialize " DMESGE("Unable to initialize "
"/proc/net/rtl8180/%s/stats-hw\n", "/proc/net/r8180/%s/stats-hw\n",
dev->name); dev->name);
} }
@ -663,7 +661,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
if (!e) { if (!e) {
DMESGE("Unable to initialize " DMESGE("Unable to initialize "
"/proc/net/rtl8180/%s/stats-rx\n", "/proc/net/r8180/%s/stats-rx\n",
dev->name); dev->name);
} }
@ -673,7 +671,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
if (!e) { if (!e) {
DMESGE("Unable to initialize " DMESGE("Unable to initialize "
"/proc/net/rtl8180/%s/stats-tx\n", "/proc/net/r8180/%s/stats-tx\n",
dev->name); dev->name);
} }
#if 0 #if 0
@ -702,7 +700,7 @@ void rtl8180_proc_init_one(struct net_device *dev)
if (!e) { if (!e) {
DMESGE("Unable to initialize " DMESGE("Unable to initialize "
"/proc/net/rtl8180/%s/registers\n", "/proc/net/r8180/%s/registers\n",
dev->name); dev->name);
} }
} }
@ -977,13 +975,6 @@ void check_tx_ring(struct net_device *dev, int pri)
*tmp & (1<<15)? "ok": "err", *(tmp+4)); *tmp & (1<<15)? "ok": "err", *(tmp+4));
} }
DMESG("nic at %d",
(nic-nicbegin) / 8 /4);
DMESG("tail at %d", ((int)tail - (int)begin) /8 /4);
DMESG("head at %d", ((int)head - (int)begin) /8 /4);
DMESG("check free desc returns %d", check_nic_enought_desc(dev,pri));
DMESG("free desc is %d\n", get_curr_tx_free_desc(dev,pri));
//rtl8180_reset(dev);
return; return;
} }
@ -1736,17 +1727,7 @@ short alloc_tx_desc_ring(struct net_device *dev, int bufsize, int count,
* descriptor's buffer must be 256 byte aligned * descriptor's buffer must be 256 byte aligned
* we shouldn't be here, since we set DMA mask ! * we shouldn't be here, since we set DMA mask !
*/ */
DMESGW("Fixing TX alignment"); WARN(1, "DMA buffer is not aligned\n");
desc = (u32*)((u8*)desc + 256);
#if (defined(CONFIG_HIGHMEM64G) || defined(CONFIG_64BIT_PHYS_ADDR))
desc = (u32*)((u64)desc &~ 0xff);
dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
dma_desc = (dma_addr_t)((u64)dma_desc &~ 0xff);
#else
desc = (u32*)((u32)desc &~ 0xff);
dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
dma_desc = (dma_addr_t)((u32)dma_desc &~ 0xff);
#endif
} }
tmp=desc; tmp=desc;
for (i=0;i<count;i++) for (i=0;i<count;i++)
@ -1984,18 +1965,7 @@ short alloc_rx_desc_ring(struct net_device *dev, u16 bufsize, int count)
* descriptor's buffer must be 256 byte aligned * descriptor's buffer must be 256 byte aligned
* should never happen since we specify the DMA mask * should never happen since we specify the DMA mask
*/ */
WARN(1, "DMA buffer is not aligned\n");
DMESGW("Fixing RX alignment");
desc = (u32*)((u8*)desc + 256);
#if (defined(CONFIG_HIGHMEM64G) || defined(CONFIG_64BIT_PHYS_ADDR))
desc = (u32*)((u64)desc &~ 0xff);
dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
dma_desc = (dma_addr_t)((u64)dma_desc &~ 0xff);
#else
desc = (u32*)((u32)desc &~ 0xff);
dma_desc = (dma_addr_t)((u8*)dma_desc + 256);
dma_desc = (dma_addr_t)((u32)dma_desc &~ 0xff);
#endif
} }
priv->rxring=desc; priv->rxring=desc;

View File

@ -386,7 +386,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
if (err) if (err)
goto error_free_hw; goto error_free_hw;
usb_set_intfdata(intf, priv); usb_set_intfdata(intf, dev);
return 0; return 0;
@ -415,10 +415,15 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)
static void wb35_disconnect(struct usb_interface *intf) static void wb35_disconnect(struct usb_interface *intf)
{ {
struct wbsoft_priv *priv = usb_get_intfdata(intf); struct ieee80211_hw *hw = usb_get_intfdata(intf);
struct wbsoft_priv *priv = hw->priv;
wb35_hw_halt(priv); wb35_hw_halt(priv);
ieee80211_stop_queues(hw);
ieee80211_unregister_hw(hw);
ieee80211_free_hw(hw);
usb_set_intfdata(intf, NULL); usb_set_intfdata(intf, NULL);
usb_put_dev(interface_to_usbdev(intf)); usb_put_dev(interface_to_usbdev(intf));
} }