aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ipath/ipath_init_chip.c
diff options
context:
space:
mode:
authorArthur Jones <arthur.jones@qlogic.com>2008-04-17 00:09:31 -0400
committerRoland Dreier <rolandd@cisco.com>2008-04-17 00:09:31 -0400
commitbb9171448deb1f7ece27674e2e431e4f267fd453 (patch)
treeb042155205bbbe3deb317d65a53a4180fb512435 /drivers/infiniband/hw/ipath/ipath_init_chip.c
parent8babfa4fb9bfe93d57c700410a4f8be9fbd3edd7 (diff)
IB/ipath: Misc changes to prepare for IB7220 introduction
The patch adds a number of minor changes to support newer HCAs: - New send buffer control bits - New error condition bits - Locking and initialization changes - More send buffers Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw/ipath/ipath_init_chip.c')
-rw-r--r--drivers/infiniband/hw/ipath/ipath_init_chip.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_init_chip.c b/drivers/infiniband/hw/ipath/ipath_init_chip.c
index 8d8e572baf6e..c012e05649b3 100644
--- a/drivers/infiniband/hw/ipath/ipath_init_chip.c
+++ b/drivers/infiniband/hw/ipath/ipath_init_chip.c
@@ -230,6 +230,15 @@ static int init_chip_first(struct ipath_devdata *dd)
230 int ret = 0; 230 int ret = 0;
231 u64 val; 231 u64 val;
232 232
233 spin_lock_init(&dd->ipath_kernel_tid_lock);
234 spin_lock_init(&dd->ipath_user_tid_lock);
235 spin_lock_init(&dd->ipath_sendctrl_lock);
236 spin_lock_init(&dd->ipath_sdma_lock);
237 spin_lock_init(&dd->ipath_gpio_lock);
238 spin_lock_init(&dd->ipath_eep_st_lock);
239 spin_lock_init(&dd->ipath_sdepb_lock);
240 mutex_init(&dd->ipath_eep_lock);
241
233 /* 242 /*
234 * skip cfgports stuff because we are not allocating memory, 243 * skip cfgports stuff because we are not allocating memory,
235 * and we don't want problems if the portcnt changed due to 244 * and we don't want problems if the portcnt changed due to
@@ -319,12 +328,6 @@ static int init_chip_first(struct ipath_devdata *dd)
319 else ipath_dbg("%u 2k piobufs @ %p\n", 328 else ipath_dbg("%u 2k piobufs @ %p\n",
320 dd->ipath_piobcnt2k, dd->ipath_pio2kbase); 329 dd->ipath_piobcnt2k, dd->ipath_pio2kbase);
321 330
322 spin_lock_init(&dd->ipath_user_tid_lock);
323 spin_lock_init(&dd->ipath_sendctrl_lock);
324 spin_lock_init(&dd->ipath_gpio_lock);
325 spin_lock_init(&dd->ipath_eep_st_lock);
326 mutex_init(&dd->ipath_eep_lock);
327
328done: 331done:
329 return ret; 332 return ret;
330} 333}
@@ -553,7 +556,7 @@ static void enable_chip(struct ipath_devdata *dd, int reinit)
553 556
554static int init_housekeeping(struct ipath_devdata *dd, int reinit) 557static int init_housekeeping(struct ipath_devdata *dd, int reinit)
555{ 558{
556 char boardn[32]; 559 char boardn[40];
557 int ret = 0; 560 int ret = 0;
558 561
559 /* 562 /*
@@ -800,7 +803,12 @@ int ipath_init_chip(struct ipath_devdata *dd, int reinit)
800 dd->ipath_pioupd_thresh = kpiobufs; 803 dd->ipath_pioupd_thresh = kpiobufs;
801 } 804 }
802 805
803 dd->ipath_f_early_init(dd); 806 ret = dd->ipath_f_early_init(dd);
807 if (ret) {
808 ipath_dev_err(dd, "Early initialization failure\n");
809 goto done;
810 }
811
804 /* 812 /*
805 * Cancel any possible active sends from early driver load. 813 * Cancel any possible active sends from early driver load.
806 * Follows early_init because some chips have to initialize 814 * Follows early_init because some chips have to initialize