9 #include <linux/bitops.h>
10 #include <linux/string.h>
12 #include <asm/sn/addrs.h>
13 #include <asm/sn/arch.h>
17 static int force_fire_and_forget = 1;
29 unsigned long xtalk_addr,
size_t size)
35 if ((xtalk_addr %
SWIN_SIZE) + size <= SWIN_SIZE)
41 nasid, widget, xtalk_addr, size);
45 xtalk_addr &= ~(BWIN_SIZE-1);
72 " hub %d widget %d addr 0x%lx\n",
73 nasid, widget, xtalk_addr);
84 static void hub_setup_prb(
nasid_t nasid,
int prbnum,
int credits)
100 prb.iprb_anakctr = 0;
105 prb.iprb_ff = force_fire_and_forget ? 1 : 0;
110 prb.iprb_xtalkctr = credits;
136 static void hub_set_piomode(
nasid_t nasid)
147 if (ii_wcr.iwcr_dir_con) {
151 hub_setup_prb(nasid, 0, 3);
156 hub_setup_prb(nasid, 0, 1);
164 hub_setup_prb(nasid, i, 3);
184 hub_set_piomode(nasid);