Commit 282f037f authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/atm-2.6

into home.osdl.org:/home/torvalds/v2.5/linux
parents c8e0c32b b3c27429
...@@ -177,9 +177,7 @@ he_writel_internal(struct he_dev *he_dev, unsigned val, unsigned addr, ...@@ -177,9 +177,7 @@ he_writel_internal(struct he_dev *he_dev, unsigned val, unsigned addr,
unsigned flags) unsigned flags)
{ {
he_writel(he_dev, val, CON_DAT); he_writel(he_dev, val, CON_DAT);
#ifdef CONFIG_IA64_SGI_SN2 (void) he_readl(he_dev, CON_DAT); /* flush posted writes */
(void) he_readl(he_dev, CON_DAT);
#endif
he_writel(he_dev, flags | CON_CTL_WRITE | CON_CTL_ADDR(addr), CON_CTL); he_writel(he_dev, flags | CON_CTL_WRITE | CON_CTL_ADDR(addr), CON_CTL);
while (he_readl(he_dev, CON_CTL) & CON_CTL_BUSY); while (he_readl(he_dev, CON_CTL) & CON_CTL_BUSY);
} }
...@@ -1950,9 +1948,6 @@ he_service_rbrq(struct he_dev *he_dev, int group) ...@@ -1950,9 +1948,6 @@ he_service_rbrq(struct he_dev *he_dev, int group)
he_writel(he_dev, RBRQ_MASK(he_dev->rbrq_head), he_writel(he_dev, RBRQ_MASK(he_dev->rbrq_head),
G0_RBRQ_H + (group * 16)); G0_RBRQ_H + (group * 16));
#ifdef CONFIG_IA64_SGI_SN2
(void) he_readl(he_dev, G0_RBRQ_H + (group * 16));
#endif
} }
return pdus_assembled; return pdus_assembled;
...@@ -2045,9 +2040,6 @@ he_service_tbrq(struct he_dev *he_dev, int group) ...@@ -2045,9 +2040,6 @@ he_service_tbrq(struct he_dev *he_dev, int group)
he_writel(he_dev, TBRQ_MASK(he_dev->tbrq_head), he_writel(he_dev, TBRQ_MASK(he_dev->tbrq_head),
G0_TBRQ_H + (group * 16)); G0_TBRQ_H + (group * 16));
#ifdef CONFIG_IA64_SGI_SN2
(void) he_readl(he_dev, G0_TBRQ_H + (group * 16));
#endif
} }
} }
...@@ -2075,12 +2067,8 @@ he_service_rbpl(struct he_dev *he_dev, int group) ...@@ -2075,12 +2067,8 @@ he_service_rbpl(struct he_dev *he_dev, int group)
++moved; ++moved;
} }
if (moved) { if (moved)
he_writel(he_dev, RBPL_MASK(he_dev->rbpl_tail), G0_RBPL_T); he_writel(he_dev, RBPL_MASK(he_dev->rbpl_tail), G0_RBPL_T);
#ifdef CONFIG_IA64_SGI_SN2
(void) he_readl(he_dev, G0_RBPL_T);
#endif
}
} }
#ifdef USE_RBPS #ifdef USE_RBPS
...@@ -2107,12 +2095,8 @@ he_service_rbps(struct he_dev *he_dev, int group) ...@@ -2107,12 +2095,8 @@ he_service_rbps(struct he_dev *he_dev, int group)
++moved; ++moved;
} }
if (moved) { if (moved)
he_writel(he_dev, RBPS_MASK(he_dev->rbps_tail), G0_RBPS_T); he_writel(he_dev, RBPS_MASK(he_dev->rbps_tail), G0_RBPS_T);
#ifdef CONFIG_IA64_SGI_SN2
(void) he_readl(he_dev, G0_RBPS_T);
#endif
}
} }
#endif /* USE_RBPS */ #endif /* USE_RBPS */
...@@ -2209,7 +2193,7 @@ he_tasklet(unsigned long data) ...@@ -2209,7 +2193,7 @@ he_tasklet(unsigned long data)
IRQ_SIZE(CONFIG_IRQ_SIZE) | IRQ_SIZE(CONFIG_IRQ_SIZE) |
IRQ_THRESH(CONFIG_IRQ_THRESH) | IRQ_THRESH(CONFIG_IRQ_THRESH) |
IRQ_TAIL(he_dev->irq_tail), IRQ0_HEAD); IRQ_TAIL(he_dev->irq_tail), IRQ0_HEAD);
(void) he_readl(he_dev, INT_FIFO); /* 8.1.2 controller errata */ (void) he_readl(he_dev, INT_FIFO); /* 8.1.2 controller errata; flush posted writes */
} }
#ifdef USE_TASKLET #ifdef USE_TASKLET
spin_unlock_irqrestore(&he_dev->global_lock, flags); spin_unlock_irqrestore(&he_dev->global_lock, flags);
...@@ -2250,11 +2234,8 @@ he_irq_handler(int irq, void *dev_id, struct pt_regs *regs) ...@@ -2250,11 +2234,8 @@ he_irq_handler(int irq, void *dev_id, struct pt_regs *regs)
#else #else
he_tasklet((unsigned long) he_dev); he_tasklet((unsigned long) he_dev);
#endif #endif
he_writel(he_dev, INT_CLEAR_A, INT_FIFO); he_writel(he_dev, INT_CLEAR_A, INT_FIFO); /* clear interrupt */
/* clear interrupt */ (void) he_readl(he_dev, INT_FIFO); /* flush posted writes */
#ifdef CONFIG_IA64_SGI_SN2
(void) he_readl(he_dev, INT_FIFO);
#endif
} }
spin_unlock_irqrestore(&he_dev->global_lock, flags); spin_unlock_irqrestore(&he_dev->global_lock, flags);
return IRQ_RETVAL(handled); return IRQ_RETVAL(handled);
...@@ -2323,9 +2304,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid) ...@@ -2323,9 +2304,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
he_dev->tpdrq_tail = new_tail; he_dev->tpdrq_tail = new_tail;
he_writel(he_dev, TPDRQ_MASK(he_dev->tpdrq_tail), TPDRQ_T); he_writel(he_dev, TPDRQ_MASK(he_dev->tpdrq_tail), TPDRQ_T);
#ifdef CONFIG_IA64_SGI_SN2 (void) he_readl(he_dev, TPDRQ_T); /* flush posted writes */
(void) he_readl(he_dev, TPDRQ_T);
#endif
} }
static int static int
...@@ -2475,9 +2454,7 @@ he_open(struct atm_vcc *vcc) ...@@ -2475,9 +2454,7 @@ he_open(struct atm_vcc *vcc)
he_writel_tsr12(he_dev, 0x0, cid); he_writel_tsr12(he_dev, 0x0, cid);
he_writel_tsr13(he_dev, 0x0, cid); he_writel_tsr13(he_dev, 0x0, cid);
he_writel_tsr14(he_dev, 0x0, cid); he_writel_tsr14(he_dev, 0x0, cid);
#ifdef CONFIG_IA64_SGI_SN2 (void) he_readl_tsr0(he_dev, cid); /* flush posted writes */
(void) he_readl_tsr0(he_dev, cid);
#endif
spin_unlock_irqrestore(&he_dev->global_lock, flags); spin_unlock_irqrestore(&he_dev->global_lock, flags);
} }
...@@ -2531,9 +2508,7 @@ he_open(struct atm_vcc *vcc) ...@@ -2531,9 +2508,7 @@ he_open(struct atm_vcc *vcc)
the open/closed indication in rsr0 */ the open/closed indication in rsr0 */
he_writel_rsr0(he_dev, he_writel_rsr0(he_dev,
rsr0 | RSR0_START_PDU | RSR0_OPEN_CONN | aal, cid); rsr0 | RSR0_START_PDU | RSR0_OPEN_CONN | aal, cid);
#ifdef CONFIG_IA64_SGI_SN2 (void) he_readl_rsr0(he_dev, cid); /* flush posted writes */
(void) he_readl_rsr0(he_dev, cid);
#endif
spin_unlock_irqrestore(&he_dev->global_lock, flags); spin_unlock_irqrestore(&he_dev->global_lock, flags);
} }
...@@ -2587,9 +2562,7 @@ he_close(struct atm_vcc *vcc) ...@@ -2587,9 +2562,7 @@ he_close(struct atm_vcc *vcc)
set_current_state(TASK_UNINTERRUPTIBLE); set_current_state(TASK_UNINTERRUPTIBLE);
he_writel_rsr0(he_dev, RSR0_CLOSE_CONN, cid); he_writel_rsr0(he_dev, RSR0_CLOSE_CONN, cid);
#ifdef CONFIG_IA64_SGI_SN2 (void) he_readl_rsr0(he_dev, cid); /* flush posted writes */
(void) he_readl_rsr0(he_dev, cid);
#endif
he_writel_mbox(he_dev, cid, RXCON_CLOSE); he_writel_mbox(he_dev, cid, RXCON_CLOSE);
spin_unlock_irqrestore(&he_dev->global_lock, flags); spin_unlock_irqrestore(&he_dev->global_lock, flags);
...@@ -2638,9 +2611,6 @@ he_close(struct atm_vcc *vcc) ...@@ -2638,9 +2611,6 @@ he_close(struct atm_vcc *vcc)
spin_lock_irqsave(&he_dev->global_lock, flags); spin_lock_irqsave(&he_dev->global_lock, flags);
he_writel_tsr4_upper(he_dev, TSR4_FLUSH_CONN, cid); he_writel_tsr4_upper(he_dev, TSR4_FLUSH_CONN, cid);
/* also clears TSR4_SESSION_ENDED */ /* also clears TSR4_SESSION_ENDED */
#ifdef CONFIG_IA64_SGI_SN2
(void) he_readl_tsr4(he_dev, cid);
#endif
switch (vcc->qos.txtp.traffic_class) { switch (vcc->qos.txtp.traffic_class) {
case ATM_UBR: case ATM_UBR:
...@@ -2652,6 +2622,7 @@ he_close(struct atm_vcc *vcc) ...@@ -2652,6 +2622,7 @@ he_close(struct atm_vcc *vcc)
he_writel_tsr14_upper(he_dev, TSR14_DELETE, cid); he_writel_tsr14_upper(he_dev, TSR14_DELETE, cid);
break; break;
} }
(void) he_readl_tsr4(he_dev, cid); /* flush posted writes */
tpd = __alloc_tpd(he_dev); tpd = __alloc_tpd(he_dev);
if (tpd == NULL) { if (tpd == NULL) {
...@@ -2904,9 +2875,7 @@ he_phy_put(struct atm_dev *atm_dev, unsigned char val, unsigned long addr) ...@@ -2904,9 +2875,7 @@ he_phy_put(struct atm_dev *atm_dev, unsigned char val, unsigned long addr)
spin_lock_irqsave(&he_dev->global_lock, flags); spin_lock_irqsave(&he_dev->global_lock, flags);
he_writel(he_dev, val, FRAMER + (addr*4)); he_writel(he_dev, val, FRAMER + (addr*4));
#ifdef CONFIG_IA64_SGI_SN2 (void) he_readl(he_dev, FRAMER + (addr*4)); /* flush posted writes */
(void) he_readl(he_dev, FRAMER + (addr*4));
#endif
spin_unlock_irqrestore(&he_dev->global_lock, flags); spin_unlock_irqrestore(&he_dev->global_lock, flags);
} }
......
...@@ -200,9 +200,7 @@ struct atm_cirange { ...@@ -200,9 +200,7 @@ struct atm_cirange {
"SESSION", "HASSAP", "BOUND", "CLOSE" "SESSION", "HASSAP", "BOUND", "CLOSE"
#ifndef __KERNEL__ #ifdef __KERNEL__
#undef __AAL_STAT_ITEMS
#else
#include <linux/wait.h> /* wait_queue_head_t */ #include <linux/wait.h> /* wait_queue_head_t */
#include <linux/time.h> /* struct timeval */ #include <linux/time.h> /* struct timeval */
......
...@@ -56,9 +56,7 @@ struct sonet_stats { ...@@ -56,9 +56,7 @@ struct sonet_stats {
#define SONET_FRSENSE_SIZE 6 /* C1[3],H1[3] (0xff for unknown) */ #define SONET_FRSENSE_SIZE 6 /* C1[3],H1[3] (0xff for unknown) */
#ifndef __KERNEL__ #ifdef __KERNEL__
#undef __SONET_ITEMS
#else
#include <asm/atomic.h> #include <asm/atomic.h>
......
...@@ -994,14 +994,6 @@ static struct file_operations arp_seq_fops = { ...@@ -994,14 +994,6 @@ static struct file_operations arp_seq_fops = {
static int __init atm_clip_init(void) static int __init atm_clip_init(void)
{ {
#ifdef CONFIG_PROC_FS
struct proc_dir_entry *p;
p = create_proc_entry("arp", S_IRUGO, atm_proc_root);
if (p)
p->proc_fops = &arp_seq_fops;
#endif
/* we should use neigh_table_init() */ /* we should use neigh_table_init() */
clip_tbl.lock = RW_LOCK_UNLOCKED; clip_tbl.lock = RW_LOCK_UNLOCKED;
clip_tbl.kmem_cachep = kmem_cache_create(clip_tbl.id, clip_tbl.kmem_cachep = kmem_cache_create(clip_tbl.id,
...@@ -1019,6 +1011,16 @@ static int __init atm_clip_init(void) ...@@ -1019,6 +1011,16 @@ static int __init atm_clip_init(void)
clip_tbl_hook = &clip_tbl; clip_tbl_hook = &clip_tbl;
register_atm_ioctl(&clip_ioctl_ops); register_atm_ioctl(&clip_ioctl_ops);
#ifdef CONFIG_PROC_FS
{
struct proc_dir_entry *p;
p = create_proc_entry("arp", S_IRUGO, atm_proc_root);
if (p)
p->proc_fops = &arp_seq_fops;
}
#endif
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment